加密

阅读 / 问答 / 标签

RSA加密算法原理

RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。 它的原理较为简单,假设有消息发送方A和消息接收方B,通过下面的几个步骤,就可以完成消息的加密传递:消息发送方A在本地构建密钥对,公钥和私钥;消息发送方A将产生的公钥发送给消息接收方B;B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。 由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。 如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。 当然,这种方式可能存在数据传递被模拟的隐患,但可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。

常见的加密算法、原理、优缺点、用途

在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标: 而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。 在加密传输中最初是采用对称密钥方式,也就是加密和解密都用相同的密钥。 1.对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方 2.接收方收到加密后的报文后,结合解密算法使用相同密钥解密组合后得出原始数据。 图示: 非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥(不能公开)才能解密,反之亦然。N 个用户通信,需要2N个密钥。 非对称密钥加密适合对密钥或身份信息等敏感信息加密,从而在安全性上满足用户的需求。 1.甲使用乙的公钥并结合相应的非对称算法将明文加密后发送给乙,并将密文发送给乙。 2.乙收到密文后,结合自己的私钥和非对称算法解密得到明文,得到最初的明文。 图示: 单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应(少量消息位的变化会引起信息摘要的许多位变化)。 单向加密算法常用于提取数据指纹,验证数据的完整性、数字摘要、数字签名等等。 1.发送者将明文通过单向加密算法加密生成定长的密文串,然后传递给接收方。 2.接收方将用于比对验证的明文使用相同的单向加密算法进行加密,得出加密后的密文串。 3.将之与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。 图示: MD5、sha1、sha224等等 密钥交换IKE(Internet Key Exchange)通常是指双方通过交换密钥来实现数据加密和解密 常见的密钥交换方式有下面两种: 将公钥加密后通过网络传输到对方进行解密,这种方式缺点在于具有很大的可能性被拦截破解,因此不常用 DH算法是一种密钥交换算法,其既不用于加密,也不产生数字签名。 DH算法通过双方共有的参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,此结果即为密钥。 如: 安全性 在整个过程中,第三方人员只能获取p、g两个值,AB双方交换的是计算后的结果,因此这种方式是很安全的。 答案:使用公钥证书 公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合 用于实现基于公钥密码机制的密钥和证书的生成、管理、存储、分发和撤销的功能 签证机构CA、注册机构RA、证书吊销列表CRL和证书存取库CB。 公钥证书是以数字签名的方式声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务身份。公钥证书的生成遵循X.509协议的规定,其内容包括:证书名称、证书版本、序列号、算法标识、颁发者、有效期、有效起始日期、有效终止日期、公钥 、证书签名等等的内容。 1.客户A准备好要传送的数字信息(明文)。(准备明文) 2.客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。(准备摘要) 3.客户A用CA的私钥(SK)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。(用私钥对数字信息进行数字签名) 4.客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。 (生成密文) 5.客户A用双方共有的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。(非对称加密,用公钥对DES密钥进行加密) 6.银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。(用私钥对DES密钥解密) 7.银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。(解密文) 8.银行B用双方共有的公钥(PK)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。(用公钥解密数字签名) 9.银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。(对比信息摘要和信息) 答案是没法保证CA的公钥没有被篡改。通常操作系统和浏览器会预制一些CA证书在本地。所以发送方应该去那些通过认证的CA处申请数字证书。这样是有保障的。 但是如果系统中被插入了恶意的CA证书,依然可以通过假冒的数字证书发送假冒的发送方公钥来验证假冒的正文信息。所以安全的前提是系统中不能被人插入非法的CA证书。 END

常见加密算法原理及概念

在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标: 而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据。由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容。 对称加密算法拥有着算法公开、计算量小、加密速度和效率高得特定,但是也有着密钥单一、密钥管理困难等缺点。 常见的对称加密算法有: DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。 3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。 AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。 Blowfish:Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。 非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥才能解密,反之亦然。 下图为简单非对称加密算法的常见流程: 发送方Bob从接收方Alice获取其对应的公钥,并结合相应的非对称算法将明文加密后发送给Alice;Alice接收到加密的密文后,结合自己的私钥和非对称算法解密得到明文。这种简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。 非对称加密算法具有安全性高、算法强度负复杂的优点,其缺点为加解密耗时长、速度慢,只适合对少量数据进行加密,其常见算法包括: RSA :RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。 DSA :数字签名算法,仅能用于签名,不能用于加解密。 DSS :数字签名标准,技能用于签名,也可以用于加解密。 ELGamal :利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。 单向加密算法常用于提取数据指纹,验证数据的完整性。发送者将明文通过单向加密算法加密生成定长的密文串,然后传递给接收方。接收方在收到加密的报文后进行解密,将解密获取到的明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后将之与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。常见的算法包括:MD5、sha1、sha224等等,其常见用途包括:数字摘要、数字签名等等。 密钥交换IKE(Internet Key Exchange)通常是指双方通过交换密钥来实现数据加密和解密,常见的密钥交换方式有下面两种: 1、公钥加密,将公钥加密后通过网络传输到对方进行解密,这种方式缺点在于具有很大的可能性被拦截破解,因此不常用; 2、Diffie-Hellman,DH算法是一种密钥交换算法,其既不用于加密,也不产生数字签名。DH算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。DH算法通过双方共有的参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,此结果即为密钥。 如: 在整个过程中,第三方人员只能获取p、g两个值,AB双方交换的是计算后的结果,因此这种方式是很安全的。 公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用于实现基于公钥密码机制的密钥和证书的生成、管理、存储、分发和撤销的功能,其组成包括:签证机构CA、注册机构RA、证书吊销列表CRL和证书存取库CB。 PKI采用证书管理公钥,通过第三方可信任CA中心,把用户的公钥和其他用户信息组生成证书,用于验证用户的身份。 公钥证书是以数字签名的方式声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务身份。公钥证书的生成遵循X.509协议的规定,其内容包括:证书名称、证书版本、序列号、算法标识、颁发者、有效期、有效起始日期、有效终止日期、公钥 、证书签名等等的内容。 CA证书认证的流程如下图,Bob为了向Alice证明自己是Bob和某个公钥是自己的,她便向一个Bob和Alice都信任的CA机构申请证书,Bob先自己生成了一对密钥对(私钥和公钥),把自己的私钥保存在自己电脑上,然后把公钥给CA申请证书,CA接受申请于是给Bob颁发了一个数字证书,证书中包含了Bob的那个公钥以及其它身份信息,当然,CA会计算这些信息的消息摘要并用自己的私钥加密消息摘要(数字签名)一并附在Bob的证书上,以此来证明这个证书就是CA自己颁发的。Alice得到Bob的证书后用CA的证书(自签署的)中的公钥来解密消息摘要,随后将摘要和Bob的公钥发送到CA服务器上进行核对。CA在接收到Alice的核对请求后,会根据Alice提供的信息核对Bob的证书是否合法,如果确认合法则回复Alice证书合法。Alice收到CA的确认回复后,再去使用从证书中获取的Bob的公钥加密邮件然后发送给Bob,Bob接收后再以自己的私钥进行解密。

RSA加密、解密、签名、验签的原理及方法

RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。 加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说,加密是为了防止信息被泄露,而签名是为了防止信息被篡改。这里举2个例子说明。 RSA的加密过程如下: RSA签名的过程如下: 总结:公钥加密、私钥解密、私钥签名、公钥验签。 RSA加密对明文的长度有所限制,规定需加密的明文最大长度=密钥长度-11(单位是字节,即byte),所以在加密和解密的过程中需要分块进行。而密钥默认是1024位,即1024位/8位-11=128-11=117字节。所以默认加密前的明文最大长度117字节,解密密文最大长度为128字。那么为啥两者相差11字节呢?是因为RSA加密使用到了填充模式(padding),即内容不足117字节时会自动填满,用到填充模式自然会占用一定的字节,而且这部分字节也是参与加密的。

【简译】公钥加密是如何工作的

最近在学习非对称加密的时候,在外网看到的一篇不错的“扫盲”文,遂简译过来分享给大家。 公钥加密,又称作非对称加密,使用的是两个key而不是一个共享的key。这两个key分别称作:公钥(public key)和私钥(private key)。公钥加密在网络安全领域是非常重要的技术。 公钥加密是一个是用到两个不同的key的加密数据的方法,这其中,公钥是公开的,允许任何人使用的,相反的,私钥是保密的、私有的。使用公钥加密的数据 只能够 被私钥解密,反过来同样,使用私钥加密的数据 只能够 被公钥解密( 木:"注意这里很多人误以为只能公钥加密私钥解密。" )。公钥加密同样被称作非对称加密,它的使用非常广泛,典型的例子就是TLS/SSL,它让HTTPS成为了可能。 在密码学中,一串key可以用来打乱数据从而让数据看起来变得杂乱无章,通常这串key是一个非常大的数字,或者一串数字字母组合。当把未加密的数据,即明文数据,放到一个含有key的加密算法中,在结果中就会得到一串看起来非常随机和杂乱的“数据”。这时候,只有一个拥有正确的key的人才可以将它变回原形,解密并且得到正确的明文数据。 举个例子,假设明文信息是 “hello”,然后使用一个key来对它加密,比如说这个key是 "2jd8932kd8"。加密后,“hello” 会变成 “X5xJCSycg14=”,看起来就很像随机的垃圾数据,但如果使用正确的key解密,我们就可以再次得到 “hello”。 公钥密码学对未接触过的人来说看起来很复杂,不过幸运的是,一位作者 Panayotis Vryonis 想到了一个类比的办法可以大致地说明这个流程。 想象一下,有一个箱子,Bob和Alice两个人需要用它来秘密地传递文件。为了安全起见,他们给箱子配上了一把锁,这把锁有两种状态:上锁态和解锁态。如果箱子被锁上了,任何一个有这把钥匙或者钥匙复制品的人都可以解锁这个箱子,反之亦然。当Bob锁住了这个箱子,然后把箱子交给Alice的时候,他是知道Alice有一把复制钥匙,所以是能够打开这个箱子的。这就是本质上的 对称加密 了:一个key既可以用来加密也可以用来解密,同时交互的两方使用的是同一个key。 现在,继续想象一下,不一样的是,这次Bob给箱子安了一个特制的锁,这把锁有三种状态: 另外,不同的是,这把锁需要用到两把不同的钥匙: 这意味着如果箱子被锁上了,同时锁孔被转到了A的位置,那就意味着只能用2号钥匙来解锁这个箱子了(往右转到中间位置解锁)。类似的,如果箱子被锁上了,同时锁孔转动到了C位置,那就只能用1号钥匙来解锁这个箱子了(往左转到中间位置解锁)。 换句话说,1号 2号钥匙都能锁住这个箱子,但是一旦被锁住,只能使用另一把来解锁箱子。 现在,Bob 复制了一批 2号钥匙,并把它们分给了所有他认识的和想要这把钥匙的人 ——— 这就是 公钥 了,Bob自己则保留着唯一的一把1号钥匙 ——— 这就是他的 私钥 了。 这样做究竟意味着什么? 到这里,我们把箱子换成明文密码,把钥匙换成密码学的公私钥,这就是公钥加密/非对称加密的工作流程和原理了。私钥加密的信息,只有公钥的拥有者可以解密,同时,公钥加密的数据,只有私钥的拥有者可以解密。这样,任何人都可以安全的把数据发送给私钥的拥有者,同时任何人都可以验证信息来源是私钥的拥有者而不是其他模仿者。 公钥加密/非对称加密对互联网的安全交互是非常有用的(通过HTTPS)。一个网站的 SSL/TLS 证书,就是公开出去的公钥,同时私钥是保存在来源服务器上的 —— 它是被网站所“拥有”的。 TLS 握手就是使用非对称加密来验证来源服务器的身份的,同时交换了必要的数据,来生成Sessiong Key。比如RSA 或者 Diffie-Hellman 算法就是使用了非对称加密的公私钥对来交换数据得到 Session Key,握手结束后,Session Key就会被当作对称加密的密钥来进行沟通。每一次会话,客户端与服务端都认同并接受新的session key,这样居心叵测的人 —— 哪怕他识别或者盗窃了其中一条session key,也不能够解密所有的交互数据( 木:“这是非常经典的非对称加密和对称加密混合使用的例子。” )。 这是一篇简单翻译的针对非对称加密的技术文,分享出来的主要原因就是文中对于公私钥加解密的举例非常巧妙,适合新人“扫盲”。希望大家有所收获。 原文链接: https://www.cloudflare.com/learning/ssl/how-does-public-key-encryption-work/

公钥和私钥加密主要算法有哪些,其基本思想是什么

加密算法nbsp;nbsp;nbsp;nbsp;加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。nbsp;nbsp;nbsp;nbsp;对称加密算法nbsp;nbsp;对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。nbsp;nbsp;nbsp;nbsp;不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。nbsp;nbsp;nbsp;nbsp;不可逆加密算法nbsp;nbsp;不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Securenbsp;Hashnbsp;Standard:安全杂乱信息标准)等。加密技术nbsp;nbsp;nbsp;nbsp;加密算法是加密技术的基础,任何一种成熟的加密技术都是建立多种加密算法组合,或者加密算法和其他应用软件有机结合的基础之上的。下面我们介绍几种在计算机网络应用领域广泛应用的加密技术。nbsp;nbsp;nbsp;nbsp;非否认(Non-repudiation)技术nbsp;nbsp;该技术的核心是不对称加密算法的公钥技术,通过产生一个与用户认证数据有关的数字签名来完成。当用户执行某一交易时,这种签名能够保证用户今后无法否认该交易发生的事实。由于非否认技术的操作过程简单,而且直接包含在用户的某类正常的电子交易中,因而成为当前用户进行电子商务、取得商务信任的重要保证。nbsp;nbsp;nbsp;nbsp;PGP(Prettynbsp;Goodnbsp;Privacy)技术nbsp;nbsp;PGP技术是一个基于不对称加密算法RSA公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软件。PGP技术不但可以对电子邮件加密,防止非授权者阅读信件;还能对电子邮件附加数字签名,使收信人能明确了解发信人的真实身份;也可以在不

公钥、私钥、哈希、加密算法基础概念

生活中我们对文件要签名,签名的字迹每个人不一样,确保了独特性,当然这还会有模仿,那么对于重要文件再加盖个手印,指纹是独一无二的,保证了这份文件是我们个人所签署的。 那么在区块链世界里,对应的就是数字签名,数字签名涉及到公钥、私钥、哈希、加密算法这些基础概念。 首先加密算法分为对称加密算法、非对称加密算法、哈希函数加密算法三类。 所谓非对称加密算法,是指加密和解密用到的公钥和私钥是不同的,非对称加密算法依赖于求解一数学问题困难而验证一数学问题简单。 非对称加密系统,加密的称为公钥,解密的称为私钥,公钥加密,私钥解密、私钥签名,公钥验证。 比特币加密算法一共有两类:非对称加密算法(椭圆曲线加密算法)和哈希算法(SHA256,RIMPED160算法) 举一个例子来说明这个加密的过程:A给B发一个文件,B怎么知道他接收的文件是A发的原始文件? A可以这样做,先对文件进行摘要处理(又称Hash,常见的哈希算法有MD5、SHA等)得到一串摘要信息,然后用自己的私钥将摘要信息加密同文件发给B,B收到加密串和文件后,再用A的公钥来解密加密串,得到原始文件的摘要信息,与此同时,对接收到的文件进行摘要处理,然后两个摘要信息进行对比,如果自己算出的摘要信息与收到的摘要信息一致,说明文件是A发过来的原始文件,没有被篡改。否则,就是被改过的。 数字签名有两个作用: 一是能确定消息确实是由发送方签名并发出来的; 二是数字签名能确定消息的完整性。 私钥用来创建一个数字签名,公钥用来让其他人核对私人密钥, 而数字签名做为一个媒介,证明你拥有密码,同时并不要求你将密码展示出来。 以下为概念的定义: 哈希(Hash): 二进制输入数据的一种数字指纹。 它是一种函数,通过它可以把任何数字或者字符串输入转化成一个固定长度的输出,它是单向输出,即非常难通过反向推导出输入值。 举一个简单的哈希函数的例子,比如数字17202的平方根是131.15639519291463,通过一个简单的哈希函数的输出,它给出这个计算结果的后面几位小数,如后几位的9291463,通过结果9291463我们几乎不可能推算出它是哪个输入值的输出。 现代加密哈希比如像SHA-256,比上面这个例子要复杂的多,相应它的安全性也更高,哈希用于指代这样一个函数的输出值。 私钥(Private key): 用来解锁对应(钱包)地址的一串字符,例如5J76sF8L5jTtzE96r66Sf8cka9y44wdpJjMwCxR3tzLh3ibVPxh+。 公钥(Public keycryptography): 加密系统是一种加密手段,它的每一个私钥都有一个相对应的公钥,从公钥我们不能推算出私钥,并且被用其中一个密钥加密了的数据,可以被另外一个相对应的密钥解密。这套系统使得你可以先公布一个公钥给所有人,然后所有人就可以发送加密后的信息给你,而不需要预先交换密钥。 数字签名(Digital signature): Digital signature数字签名是这样一个东西,它可以被附着在一条消息后面,证明这条消息的发送者就是和某个公钥相对应的一个私钥的所有人,同时可以保证私钥的秘密性。某人在检查签名的时候,将会使用公钥来解密被加密了的哈希值(译者注:这个哈希值是数据通过哈希运算得到的),并检查结果是否和这条信息的哈希值相吻合。如果信息被改动过,或者私钥是错误的话,哈希值就不会匹配。在比特币网络以外的世界,签名常常用于验证信息发送者的身份 – 人们公布他们自己的公钥,然后发送可以被公钥所验证的,已经通过私钥加密过的信息。 加密算法(encryption algorithm): 是一个函数,它使用一个加密钥匙,把一条信息转化成一串不可阅读的看似随机的字符串,这个流程是不可逆的,除非是知道私钥匙的人来操作。加密使得私密数据通过公共的因特网传输的时候不需要冒严重的被第三方知道传输的内容的风险。 哈希算法的大致加密流程 1、对原文进行补充和分割处理(一般分给为多个512位的文本,并进一步分割为16个32位的整数)。 2、初始化哈希值(一般分割为多个32位整数,例如SHA256就是256位的哈希值分解成8个32位整数)。 3、对哈希值进行计算(依赖于不同算法进行不同轮数的计算,每个512位文本都要经过这些轮数的计算)。 区块链中每一个数据块中包含了一次网络交易的信息,产生相关联数据块所使用的就是非对称加密技术。非对密加密技术的作用是验证信息的有效性和生成下一个区块,区块链上网络交易的信息是公开透明的,但是用户的身份信息是被高度加密的,只有经过用户授权,区块链才能得到该身份信息,从而保证了数据的安生性和个人信息的隐私性。 公钥和私钥在非对称加密机制里是成对存在的,公钥和私钥可以去相互验证对方,那么在比特币的世界里面,我们可以把地址理解为公钥,可以把签名、输密码的过程理解为私钥的签名。 每个矿工在拿到一笔转账交易时候都可以验证公钥和私钥到底是不是匹配的,如果他们是匹配的,这笔交易就是合法的,这样每一个人只需要保管好TA自己的私钥,知道自己的比特币地址和对方的比特币地址就能够安全的将比特币进行转账,不需要一个中心化的机构来验证对方发的比特币是不是真的。

公钥和私钥加密主要算法有哪些,其基本思想是什么

加密算法 加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。 对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。 不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。 不可逆加密算法 不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。加密技术 加密算法是加密技术的基础,任何一种成熟的加密技术都是建立多种加密算法组合,或者加密算法和其他应用软件有机结合的基础之上的。下面我们介绍几种在计算机网络应用领域广泛应用的加密技术。 非否认(Non-repudiation)技术 该技术的核心是不对称加密算法的公钥技术,通过产生一个与用户认证数据有关的数字签名来完成。当用户执行某一交易时,这种签名能够保证用户今后无法否认该交易发生的事实。由于非否认技术的操作过程简单,而且直接包含在用户的某类正常的电子交易中,因而成为当前用户进行电子商务、取得商务信任的重要保证。 PGP(Pretty Good Privacy)技术 PGP技术是一个基于不对称加密算法RSA公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软件。PGP技术不但可以对电子邮件加密,防止非授权者阅读信件;还能对电子邮件附加数字签名,使收信人能明确了解发信人的真实身份;也可以在不需要通过任何保密渠道传递密钥的情况下,使人们安全地进行保密通信。PGP技术创造性地把RSA不对称加密算法的方便性和传统加密体系结合起来,在数字签名和密钥认证管理机制方面采用了无缝结合的巧妙设计,使其几乎成为最为流行的公钥加密软件包。 数字签名(Digital Signature)技术 数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。 PKI(Public Key Infrastructure)技术 PKI技术是一种以不对称加密技术为核心、可以为网络提供安全服务的公钥基础设施。PKI技术最初主要应用在Internet环境中,为复杂的互联网系统提供统一的身份认证、数据加密和完整性保障机制。由于PKI技术在网络安全领域所表现出的巨大优势,因而受到银行、证券、政府等核心应用系统的青睐。PKI技术既是信息安全技术的核心,也是电子商务的关键和基础技术。由于通过网络进行的电子商务、电子政务等活动缺少物理接触,因而使得利用电子方式验证信任关系变得至关重要,PKI技术恰好能够有效解决电子商务应用中的机密性、真实性、完整性、不可否认性和存取控制等安全问题。一个实用的PKI体系还必须充分考虑互操作性和可扩展性。PKI体系所包含的认证中心(CA)、注册中心(RA)、策略管理、密钥与证书管理、密钥备份与恢复、撤销系统等功能模块应该有机地结合在一起。加密的未来趋势 尽管双钥密码体制比单钥密码体制更为可靠,但由于计算过于复杂,双钥密码体制在进行大信息量通信时,加密速率仅为单钥体制的1/100,甚至是 1/1000。正是由于不同体制的加密算法各有所长,所以在今后相当长的一段时期内,各类加密体制将会共同发展。而在由IBM等公司于1996年联合推出的用于电子商务的协议标准SET(Secure Electronic Transaction)中和1992年由多国联合开发的PGP技术中,均采用了包含单钥密码、双钥密码、单向杂凑算法和随机数生成算法在内的混合密码系统的动向来看,这似乎从一个侧面展示了今后密码技术应用的未来。 在单钥密码领域,一次一密被认为是最为可靠的机制,但是由于流密码体制中的密钥流生成器在算法上未能突破有限循环,故一直未被广泛应用。如果找到一个在算法上接近无限循环的密钥流生成器,该体制将会有一个质的飞跃。近年来,混沌学理论的研究给在这一方向产生突破带来了曙光。此外,充满生气的量子密码被认为是一个潜在的发展方向,因为它是基于光学和量子力学理论的。该理论对于在光纤通信中加强信息安全、对付拥有量子计算能力的破译无疑是一种理想的解决方法。 由于电子商务等民用系统的应用需求,认证加密算法也将有较大发展。此外,在传统密码体制中,还将会产生类似于IDEA这样的新成员,新成员的一个主要特征就是在算法上有创新和突破,而不仅仅是对传统算法进行修正或改进。密码学是一个正在不断发展的年轻学科,任何未被认识的加/解密机制都有可能在其中占有一席之地。 目前,对信息系统或电子邮件的安全问题,还没有一个非常有效的解决方案,其主要原因是由于互联网固有的异构性,没有一个单一的信任机构可以满足互联网全程异构性的所有需要,也没有一个单一的协议能够适用于互联网全程异构性的所有情况。解决的办法只有依靠软件代理了,即采用软件代理来自动管理用户所持有的证书(即用户所属的信任结构)以及用户所有的行为。每当用户要发送一则消息或一封电子邮件时,代理就会自动与对方的代理协商,找出一个共同信任的机构或一个通用协议来进行通信。在互联网环境中,下一代的安全信息系统会自动为用户发送加密邮件,同样当用户要向某人发送电子邮件时,用户的本地代理首先将与对方的代理交互,协商一个适合双方的认证机构。当然,电子邮件也需要不同的技术支持,因为电子邮件不是端到端的通信,而是通过多个中间机构把电子邮件分程传递到各自的通信机器上,最后到达目的地。

RSA加密原理

RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。公钥加密--私钥解密,私钥加密--公钥解密 在 整数 中, 离散对数 是一种基于 同余 运算和 原根 的一种 对数 运算。而在实数中对数的定义 log b a 是指对于给定的 a 和 b ,有一个数 x ,使得 b x = a 。相同地在任何群 G 中可为所有整数 k 定义一个幂数为 b K ,而 离散对数 log b a 是指使得 b K = a 的整数 k 。 当3为17的 原根 时,我们会发现一个规律 对 正整数 n,欧拉函数是小于或等于n的正整数中与n 互质 的数的数目(因此φ(1)=1)。有以下几个特点 服务端根据生成一个随机数15,根据 3 15 mod 17 计算出6,服务端将6传递给客户端,客户端生成一个随机数13,根据 3 13 mod 17 计算出12后,将12再传回给服务端,客户端收到服务端传递的6后,根据 6 13 mod 17 计算出 10 ,服务端收到客户端传递的12后,根据 12 15 mod 17 计算出 10 ,我们会发现我们通过 迪菲赫尔曼密钥交换 将 10 进行了加密传递 说明: 安全性: 除了 公钥 用到 n 和 e ,其余的4个数字是 不公开 的(p1、p2、φ(n)、d) 目前破解RSA得到的方式如下: 缺点 RSA加密 效率不高 ,因为是纯粹的数学算法,大数据不适合RSA加密,所以我们在加密大数据的时候,我们先用 对称加密 算法加密大数据得到 KEY ,然后再用 RSA 加密 KEY ,再把大数据和KEY一起进行传递 因为Mac系统内置了OpenSSL(开源加密库),所以我们开源直接在终端进行RSA加密解密 生成RSA私钥,密钥名为private.pem,密钥长度为1024bit 因为在iOS中是无法使用 .pem 文件进行加密和解密的,需要进行下面几个步骤 生成一个10年期限的crt证书 crt证书格式转换成der证书

rvd文件夹加密如何解密

首先建议您可以和这款软件的作者和客服人员联系一下,看是否有解决办法。您以后可以选择专业的加密软件来给您的文件和文件夹加密。文件夹加密超级大师是文件加密软件中非常不错的选择。文件夹加密超级大师是专业的文件加密软件,文件加密后如果需要使用,只需要输入正确密码,点击打开,使用完毕后,文件就自动回复到加密状态了。文件夹加密超级大师的功能相当的强大,您可以到百度上搜索文件夹加密超级大师给您的文件和文件夹加密试试,看看加密效果怎么样?

关于用PGP 新建虚拟磁盘 加密的问题

看看pgp图标是不是图片上的那种,要是的话说明你开口令缓存了,相当于记住密码,这样的话当然就能直接装载了。此时解决方法有两种:1.pgp图标右键,清除缓存。2.选项,常规,我的口令,不保存我的口令。若非上述情况,在下个新版吧,10.1.1就不错。希望能帮到你。

pgp主要基于什么算法来实现加密解密

点击 解密 PGP信息 6) 输入密码后,点击 确定 7) 邮件内容签名被认证和被解密二结果分析 1 PGP主要基于什么算法来实现加密解密? PGP主要基于非对称加密算法 因为RSA算法计算量很大而且在速度上也不适合加密大量数据,所以PGP实际上用来加密... 在使用上几乎没有什么差别。但是事实上它们是完全不同的,主要体现在格式上

pgp为什么不能加密全盘,磁盘可能未含有效卷是什么意思?

需要创建有效卷才可以。卷硬盘上的存储区域。驱动器使用一种文件系统(如 FAT 或 NTFS)格式化卷,并给它指派一个驱动器号。单击“Windows 资源管理器”或“我的电脑”中相应的图标可以查看驱动器的内容。一个硬盘包括好多卷,一卷也可以跨越许多磁

office outlook 使用pgp工具加密邮件

1、打开outlookexpress,撰写一份给合作伙伴的邮件,内容为helloworld!2、在发送之前,选中邮件所有内容,右键单击任务栏中的pgpencryption图标3、选取currentwindow>encrypt,对邮件进行加密,结果如下:如果这种方法出错,可以先把要加密的信息进行复制或剪切,然后右键点pgpencryption图标,从弹出的菜单中选中encryptfromclipboard,这样信息会在内存中加密,然后我们再回到输写正文的窗口中,点击鼠标右键,选粘贴。4、在提示输入密码时,输入你自己的私钥的passphrase5、收到邮件双击打开后,单击decryptpgpmessage图标,解密邮件

在保密和认证同时使用时,PGP是先加密后签名还是先签名后加密?为什么?

先签名后加密。如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名。

gpg 加密的 pgp能解密吗

GPG加密和解密随着网络与计算机技术的发展,数据存储与数据交换的安全性已经变得越来越重要,加密技术已经很早就用于数据存储和数据交换。为了确保网络数据交换时的双方身份的正确性,签证体系也已经成熟。GPG就是用来加密数据与制作证书的一套工具,它是一个完全免费、源代码公开,并且与PGP完全兼容的软件产品。GPG软件作为用于加密和数字签名的开放源码工具,许多Linux发行版本都自带了该软件。下面,让我们一起来看看,gpg如何加密和解密的吧。创建密钥gpg --gen-key你要求输入一下内容,这些内容,基本英文,还是很好明白root@g140:~# gpg --gen-keygpg (GnuPG) 1.4.11; Copyright (C) 2010 Free SoftwareFoundation, Inc.This is free software: you are free to change andredistribute it.There is NO WARRANTY, to the extent permitted by law.gpg: directory `/root/.gnupg" createdgpg: new configuration file `/root/.gnupg/gpg.conf"createdgpg: WARNING: options in `/root/.gnupg/gpg.conf" are notyet active during this rungpg: keyring `/root/.gnupg/secring.gpg" createdgpg: keyring `/root/.gnupg/pubring.gpg" createdPlease select what kind of key you want:(1) RSA and RSA (default)(2) DSA and Elgamal(3) DSA (sign only)(4) RSA (sign only)Your selection?RSA keys may be between 1024 and 4096 bits long.What keysize do you want? (2048)Requested keysize is 2048 bitsPlease specify how long the key should be valid.0 = key does not expire= key expires in n daysw = key expires in n weeksm = key expires in n monthsy = key expires in n yearsKey is valid for? (0)Key does not expire at allIs this correct? (y/N) yYou need a user ID to identify your key; the softwareconstructs the user IDfrom the Real Name, Comment and Email Address in thisform:"Heinrich Heine (Der Dichter) "Real name: chenshakeEmail address: shake.chen@gmail.comComment:You selectedthis USER-ID:"chenshake "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? OYou need a Passphrase to protect your secret key.We need to generate a lot of random bytes. It is a goodidea to performsome other action (type on the keyboard, move the mouse,utilize thedisks) during the prime generation; this gives the randomnumbergenerator a better chance to gain enough entropy.gpg: /root/.gnupg/trustdb.gpg: trustdb createdgpg: key AEAA16F3 marked as ultimately trustedpublic and secret key created and signed.gpg: checking the trustdbgpg: 3 marginal(s) needed, 1 complete(s) needed, PGPtrust modelgpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m,0f, 1upub 2048R/AEAA16F3 2013-10-21Key fingerprint = B93B 05F8 9D63 5464 6DEE 6A08 EB9E D2BBAEAA 16F3uid chenshakesub 2048R/02B4038D 2013-10-21就是上面这个过程在这个生成密钥的过程中,有个步骤很重要,就是生成内存随机数,命令如下:ddif=/dev/zero of=test.dbf bs=9000 count=1000k .直到生成key为止。查看私钥# gpg -k/root/.gnupg/pubring.gpg------------------------pub 2048R/AEAA16F3 2013-10-21uid chenshakesub 2048R/02B4038D 2013-10-21查看公钥# gpg --list-keys/root/.gnupg/pubring.gpg------------------------pub 2048R/AEAA16F3 2013-10-21uid chenshakesub 2048R/02B4038D 2013-10-21导出公钥gpg -o chenshake.gpg -a --export chenshake其中chenshake为用户IDchenshake.gpg为导出的公钥文件导出私钥gpg -o chenshake-private.gpg --export-secret-keyschenshake导入秘钥公钥和私钥的导入,都是一样。gpg --import filename公钥(另外一台机器)当然你需要通过scp把公钥复制到远程的机器# gpg --import chenshake.gpggpg: directory `/root/.gnupg" createdgpg: new configuration file `/root/.gnupg/gpg.conf"createdgpg: WARNING: options in `/root/.gnupg/gpg.conf" are notyet active during this rungpg: keyring `/root/.gnupg/secring.gpg" createdgpg: keyring `/root/.gnupg/pubring.gpg" createdgpg: /root/.gnupg/trustdb.gpg: trustdb createdgpg: key AEAA16F3: public key "chenshake "importedgpg: Total number processed: 1gpg: imported: 1 (RSA: 1)你也可以查看到导入的公钥# gpg --list-keys/root/.gnupg/pubring.gpg------------------------pub 2048R/AEAA16F3 2013-10-21uid chenshakesub 2048R/02B4038D 2013-10-21公钥加密一个文件,我这里是加密cobbler.ks 这个文件,加密后是 cobbler.ks.gpg文件,需要私钥才能查看。# gpg -o cobbler.ks.gpg -er chenshake cobbler.ksgpg: 02B4038D: There is no assurance this key belongs tothe named userpub 2048R/02B4038D 2013-10-21 chenshakePrimary key fingerprint: B93B 05F8 9D63 5464 6DEE 6A08EB9E D2BB AEAA 16F3Subkey fingerprint: FCCA 50DD C98D 644E 00FB 804C 4CD29544 02B4 038DIt is NOT certain that the key belongs to the personnamedin the user ID. If you *really* know what you are doing,you may answer the next question with yes.Use this key anyway? (y/N) y私钥解密私钥查看 cobbler.ks.gpg# gpg -o cobbler.ks -d cobbler.ks.gpgYou need a passphrase to unlock the secret key foruser: "chenshake "2048-bit RSA key, ID 02B4038D, created 2013-10-21 (mainkey ID AEAA16F3)gpg: gpg-agent is not available in this sessiongpg: encrypted with 2048-bit RSA key, ID 02B4038D,created 2013-10-21"chenshake "需要你输入你当初创建秘钥的时候设置的那个密码。这个时候,你就可以查看到加密的文件。【编辑推荐】如何对LUKS加密的磁盘/分区执行远程增量备份?找回MD5加密的密码及MD5加密数据库中数据对称加密之AES及压缩加密解密解压综合实战

使用PGP加密系统对文件进行签名,将签名后的.sjg文件发送给对方的同时,为什么还要发送原始文件给对方?

你好,首先签名不是加密。签名是为了证明这个文件是真的没有被人修改过。你发送的sjp文件是签名算法的结果,对于任何一个文件,他的签名算法结果是唯一的。发送原始文件给对方,对方再利用签名算法计算出签名的结果。如何签名算法结果一致就说明文件没有被修改过。

十万火急!!我用PGP加密的文件后缀是asc的,但是解密后文件无法正常打开。

首先建议您可以和这款软件的作者和客服人员联系一下,看是否有解决办法。您以后可以选择专业的加密软件来给您的文件和文件夹加密。文件夹加密超级大师是文件加密软件中非常不错的选择。文件夹加密超级大师是专业的文件加密软件,文件加密后如果需要使用,只需要输入正确密码,点击打开,使用完毕后,文件就自动回复到加密状态了。文件夹加密超级大师的功能相当的强大,您可以到百度上搜索文件夹加密超级大师给您的文件和文件夹加密试试,看看加密效果怎么样?

PGP加密软件采用的加密算法()

PGP加密软件采用的加密算法() A.DESB.RSAC.背包算法D.IDEA正确答案:C

重做系统时忘了备份PGP私钥,记得原来的密码,请问加密的文件还能解密吗?

OK

在 Windows 上如何使用 PGP 加密文件?

首先建议您可以和这款软件的作者和客服人员联系一下,看是否有解决办法。您以后可以选择专业的加密软件来给您的文件和文件夹加密。文件夹加密超级大师是文件加密软件中非常不错的选择。文件夹加密超级大师是专业的文件加密软件,文件加密后如果需要使用,只需要输入正确密码,点击打开,使用完毕后,文件就自动回复到加密状态了。文件夹加密超级大师的功能相当的强大,您可以到百度上搜索文件夹加密超级大师给您的文件和文件夹加密试试,看看加密效果怎么样?

PGP桌面版程序损坏,已加密的文件不能打开,怎样才能找回已加密的文件

可以解决的:1、重装系统,注意保留我的文档下pgp文件夹,这个文件夹下放着你的公钥和私钥。2、系统装完后再重装PGP软件,问你密钥时选择已有密钥并从上面这个文件夹中选择公钥、私钥。这样,你就又可以打开你的加密文件了,密码也不变。

怎样使用PGP加密软件加密!(详细点)谢谢了!!!!追加分啊!!

1首先生成你的PGP密匙。在DOS命令行输入:pgp-kg2程序会提示你一步步进行密匙生成工作:①选择密匙长度。建议用1024位,安全性相当有保障。②输入用户名。要尽量避免混淆。③选择口令。和所有密码一样,尽量取得难猜一点。PGP是区分口令大小写的,在生成过程中程序为了得到随机数,会请你随意地在键盘上敲一系列的键,注意尽量多敲些不同的键,时间间隔不要太短。现在你就拥有自己的一对PGP密匙了。文件SECRING.PGP是私匙,PUBRING.PGP是公匙。3PGP的基本命令①加密命令:pgp-e[a]源文件收件人ID[其他收件人ID]用公匙环中收件人的公匙加密源文件,得到密文。加上a参数后将得到7bits编码的密文(.asc后缀),否则是二进制形式密文(.pgp后缀)。②解密命令:pgp[-d][-p]密文-d参数用来保留密文(缺省删除密文),-p参数用来恢复源文件加密时的文件名。PGP的命令参数很多,详细用法请参见该软件的SETUP.TXT文件。

加密技术02-对称加密-AES原理

AES 全称 Advanced Encryption Standard(高级加密标准)。它的出现主要是为了取代 DES 加密算法的,因为 DES 算法的密钥长度是 56 位,因此算法的理论安全强度是 2^56。但二十世纪中后期正是计算机飞速发展的阶段,元器件制造工艺的进步使得计算机的处理能力越来越强,所以还是不能满足人们对安全性的要求。于是 1997 年 1 月 2 号,美国国家标准技术研究所宣布希望征集高级加密标准,用以取代 DES。AES 也得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终有5个候选算法进入最后一轮:Rijndael,Serpent,Twofish,RC6 和 MARS。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael 算法获胜。 AES 密码与分组密码 Rijndael 基本上完全一致,Rijndael 分组大小和密钥大小都可以为 128 位、192 位和 256 位。然而 AES 只要求分组大小为 128 位,因此只有分组长度为 128 位的 Rijndael 才称为 AES 算法。本文只对分组大小 128 位,密钥长度也为 128 位的 Rijndael 算法进行分析。密钥长度为 192 位和 256 位的处理方式和 128 位的处理方式类似,只不过密钥长度每增加 64 位,算法的循环次数就增加 2 轮,128 位循环 10 轮、192 位循环 12 轮、256 位循环 14 轮。 给定一个 128 位的明文和一个 128 位的密钥,输出一个 128 位的密文。这个密文可以用相同的密钥解密。虽然 AES 一次只能加密 16 个字节,但我们只需要把明文划分成每 16 个字节一组的块,就可以实现任意长度明文的加密。如果明文长度不是 16 个字节的倍数,则需要填充,目前填充方式主要是 PKCS7 / PKCS5。 下来主要分析 16 个字节的加解密过程,下图是 AES 算法框架。 密钥生成流程 G 函数 关于轮常量的生成下文会介绍。 主要作用:一是增加密钥编排中的非线性;二是消除AES中的对称性。这两种属性都是抵抗某些分组密码攻击必要的。 接下来详细解释一下几个关键步骤。 明文矩阵和当前回次的子密钥矩阵进行异或运算。 字节代换层的主要功能是通过 S 盒完成一个字节到另外一个字节的映射。 依次遍历 4 * 4 的明文矩阵 P 中元素,元素高四位值为行号,低四位值为列号,然后在 S 盒中取出对应的值。 行位移操作最为简单,它是用来将输入数据作为一个 4 * 4 的字节矩阵进行处理的,然后将这个矩阵的字节进行位置上的置换。ShiftRows 子层属于 AES 手动的扩散层,目的是将单个位上的变换扩散到影响整个状态当,从而达到雪崩效应。它之所以称作行位移,是因为它只在 4 * 4 矩阵的行间进行操作,每行 4 字节的数据。在加密时,保持矩阵的第一行不变,第二行向左移动 1 个字节、第三行向左移动 2 个字节、第四行向左移动 3 个字节。 列混淆层是 AES 算法中最为复杂的部分,属于扩散层,列混淆操作是 AES 算法中主要的扩散元素,它混淆了输入矩阵的每一列,使输入的每个字节都会影响到 4 个输出字节。行位移层和列混淆层的组合使得经过三轮处理以后,矩阵的每个字节都依赖于 16 个明文字节成可能。其实质是在有限域 GF(2^8) 上的多项式乘法运算,也称伽罗瓦域上的乘法。 伽罗瓦域 伽罗瓦域上的乘法在包括加/解密编码和存储编码中经常使用,AES 算法就使用了伽罗瓦域 GF(2^8) 中的运算。以 2^n 形式的伽罗瓦域来说,加减法都是异或运算,乘法相对较复杂一些,下面介绍 GF(2^n) 上有限域的乘法运算。 本原多项式: 域中不可约多项式,是不能够进行因子分解的多项式,本原多项式是一种特殊的不可约多项式。当一个域上的本原多项式确定了,这个域上的运算也就确定了,本原多项式一般通过查表可得,同一个域往往有多个本原多项式。通过将域中的元素化为多项式的形式,可以将域上的乘法运算转化为普通的多项式乘法模以本原多项式的计算。比如 g(x) = x^3+x+1 是 GF(2^3) 上的本原多项式,那么 GF(2^3) 域上的元素 3*7 可以转化为多项式乘法: 乘二运算: 无论是普通计算还是伽罗瓦域上运算,乘二计算是一种非常特殊的运算。普通计算在计算机上通过向高位的移位计算即可实现,伽罗瓦域上乘二也不复杂,一次移位和一次异或即可。从多项式的角度来看,伽罗瓦域上乘二对应的是一个多项式乘以 x,如果这个多项式最高指数没有超过本原多项式最高指数,那么相当于一次普通计算的乘二计算,如果结果最高指数等于本原多项式最高指数,那么需要将除去本原多项式最高项的其他项和结果进行异或。 比如:GF(2^8)(g(x) = x^8 + x^4 + x^3 + x^2 + 1)上 15*15 = 85 计算过程。 15 写成生成元指数和异或的形式 2^3 + 2^2 + 2^1 + 1,那么: 乘二运算计算过程: 列混淆 :就是把两个矩阵的相乘,里面的运算,加法对应异或运算,乘法对应伽罗瓦域 GF(2^8) 上的乘法(本原多项式为:x^8 + x^4 + x^3 + x^1 + 1)。 Galois 函数为伽罗瓦域上的乘法。 解码过程和 DES 解码类似,也是一个逆过程。基本的数学原理也是:一个数进行两次异或运算就能恢复,S ^ e ^ e = S。 密钥加法层 通过异或的特性,再次异或就能恢复原数。 逆Shift Rows层 恢复 Shift Rows层 的移动。 逆Mix Column层 通过乘上正矩阵的逆矩阵进行矩阵恢复。 一个矩阵先乘上一个正矩阵,然后再乘上他的逆矩阵,相当于没有操作。 逆字节代换层 通过再次代换恢复字节代换层的代换操作。 比如:0x00 字节的置换过程 轮常量生成规则如下: 算法原理和 AES128 一样,只是每次加解密的数据和密钥大小为 192 位和 256 位。加解密过程几乎是一样的,只是循环轮数增加,所以子密钥个数也要增加,最后轮常量 RC 长度增加。

为什么发送加密邮件需要对方的数字证书?其加密原理是什么

首先为什么需要对方的数字证书是因为加密邮件目前采用S/MIME国际标准实现端到端加密,邮件从邮件客户端发出之前就用证书加密成密文,不仅保证邮件在传输链路上的安全,而且能保证邮件内容永久安全加密存放在云端邮件服务器上。而鉴于目前的欺诈邮件泛滥,邮件数字签名为每一封电子邮件带上可信身份,是解决邮件欺诈问题的唯一解决方案,因为数字签名是不可假冒和伪造的。密信加密邮件客户端的原理是 发件人的公钥加密,私钥签名,收件人则使用私钥解密,公钥验签。

电子合同中,对称加密、非对称加密、哈希算法、CA、时间戳、数字签名这些是什么,有什么用,你们知道吗

算法,因为只要你有足够的时间,完全可以用穷举法来进行试探,如果说一个加密算法是牢固的,一般就是指在现有的计算条件下,需要花费相当长的时间才能够穷举成功(比如100年)。一、主动攻击和被动攻击数据在传输过程中或者在日常的工作中,如果没有密码的保护,很容易造成文件的泄密,造成比较严重的后果。一般来说,攻击分为主动攻击和被动攻击。被动攻击指的是从传输信道上或者从磁盘介质上非法获取了信息,造成了信息的泄密。主动攻击则要严重的多,不但获取了信息,而且还有可能对信息进行删除,篡改,危害后果及其严重。 二、对称加密基于密钥的算法通常分为对称加密算法和非对称加密算法(公钥算法)。对成加密算法就是加密用的密钥和解密用的密钥是相等的。比如著名的恺撒密码,其加密原理就是所有的字母向后移动三位,那么3就是这个算法的密钥,向右循环移位就是加密的算法。那么解密的密钥也是3,解密算法就是向左循环移动3位。很显而易见的是,这种算法理解起来比较简单,容易实现,加密速度快,但是对称加密的安全性完全依赖于密钥,如果密钥丢失,那么整个加密就完全不起作用了。比较著名的对称加密算法就是DES,其分组长度位64位,实际的密钥长度为56位,还有8位的校验码。DES算法由于其密钥较短,随着计算机速度的不断提高,使其使用穷举法进行破解成为可能。三、非对称加密非对称加密算法的核心就是加密密钥不等于解密密钥,且无法从任意一个密钥推导出另一个密钥,这样就大大加强了信息保护的力度,而且基于密钥对的原理很容易的实现数字签名和电子信封。比较典型的非对称加密算法是RSA算法,它的数学原理是大素数的分解,密钥是成对出现的,一个为公钥,一个是私钥。公钥是公开的,可以用私钥去解公钥加密过的信息,也可以用公钥去解私钥加密过的信息。比如A向B发送信息,由于B的公钥是公开的,那么A用B的公钥对信息进行加密,发送出去,因为只有B有对应的私钥,所以信息只能为B所读取。牢固的RSA算法需要其密钥长度为1024位,加解密的速度比较慢是它的弱点。另外一种比较典型的非对称加密算法是ECC算法,基于的数学原理是椭圆曲线离散对数系统,这种算法的标准我国尚未确定,但是其只需要192 bit 就可以实现牢固的加密。所以,应该是优于RSA算法的。优越性:ECC > RSA > DES

“数字签名技术采用的是公钥体制,它是用私钥进行加密”的对不?

b数据电文的摘要。数字签名(电子签名)的原理,可以参考https://www.wosign.com/basic/aboutpki.htm中,“数字签名:结合使用公钥与散列算法”那条,解释的很详细。"发件人将一种散列算法应用于数据,并生成一个散列值(数据摘要)。发件人使用私钥将散列值(数据摘要)转换为数字签名(即对摘要进行加密和签名)。然后,发件人将数据、签名及发件人的证书发给收件人。"

开发中常见的加密方式及应用

开发中常见的加密方式及应用 一、base64 简述:Base64是网络上最常见的用于传输8Bit 字节码 的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。所有的数据都能被编码为并只用65个字符就能表示的文本文件。( 65字符:A~Z a~z 0~9 + / = )编码后的数据~=编码前数据的4/3,会大1/3左右(图片转化为base64格式会比原图大一些)。 应用:Base64编码是从二进制到字符的过程,可用于在 HTTP 环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一 标识符 (一般为128-bit的UUID)编码为一个字符串,用作HTTP 表单 和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制 数据编码 为适合放在URL(包括隐藏 表单域 )中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。 命令行进行Base64编码和解码 编码:base64 123.png -o 123.txt 解码:base64 123.txt -o test.png -D Base64编码的原理 原理: 1)将所有字符转化为ASCII码; 2)将ASCII码转化为8位二进制; 3)将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位; 4)统一在6位二进制前补两个0凑足8位; 5)将补0后的二进制转为十进制; 6)从Base64编码表获取十进制对应的Base64编码; Base64编码的说明: a.转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。 b.数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。 c.不断进行,直到全部输入数据转换完成。 d.如果最后剩下两个输入数据,在编码结果后加1个“=”; e.如果最后剩下一个输入数据,编码结果后加2个“=”; f.如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。 二、HASH加密/单向散列函数 简述:Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度(32个字符)的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。对用相同数据,加密之后的密文相同。 常见的Hash算法有MD5和SHA。由于加密结果固定,所以基本上原始的哈希加密已经不再安全,于是衍生出了加盐的方式。加盐:先对原始数据拼接固定的字符串再进行MD5加密。 特点: 1) 加密 后密文的长度是定长(32个字符的密文)的 2)如果明文不一样,那么散列后的结果一定不一样 3)如果明文一样,那么加密后的密文一定一样(对相同数据加密,加密后的密文一样) 4)所有的加密算法是公开的 5)不可以逆推反算(不能根据密文推算出明文),但是可以暴力 破解 ,碰撞监测 原理:MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要。 1)数据填充 对消息进行数据填充,使消息的长度对512取模得448,设消息长度为X,即满足X mod 512=448。根据此公式得出需要填充的数据长度。 填充方法:在消息后面进行填充,填充第一位为1,其余为0。 2)添加信息长度 在第一步结果之后再填充上原消息的长度,可用来进行的存储长度为64位。如果消息长度大于264,则只使用其低64位的值,即(消息长度 对264取模)。 在此步骤进行完毕后,最终消息长度就是512的整数倍。 3)数据处理 准备需要用到的数据: 4个常数:A = 0x67452301, B = 0x0EFCDAB89, C = 0x98BADCFE, D = 0x10325476; 4个函数:F(X,Y,Z)=(X & Y) | ((~X) & Z);G(X,Y,Z)=(X & Z) | (Y & (~Z));H(X,Y,Z)=X ^ Y ^ Z;I(X,Y,Z)=Y ^ (X | (~Z)); 把消息分以512位为一分组进行处理,每一个分组进行4轮变换,以上面所说4个常数为起始变量进行计算,重新输出4个变量,以这4个变量再进行下一分组的运算,如果已经是最后一个分组,则这4个变量为最后的结果,即MD5值。 三、对称加密 经典算法: 1)DES数据加密标准 DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。 2)3DES使用3个密钥,对消息进行(密钥1·加密)+(密钥2·解密)+(密钥3·加密) 3)AES高级加密标准如图,加密/解密使用相同的密码,并且是可逆的 四、非对称加密 特点: 1)使用公钥加密,使用私钥解密 2)公钥是公开的,私钥保密 3)加密处理安全,但是性能极差经典算法RSA: 1)RSA原理 (1)求N,准备两个质数p和q,N = p x q (2)求L,L是p-1和q-1的最小公倍数。L = lcm(p-1,q-1) (3)求E,E和L的最大公约数为1(E和L互质) (4)求D,E x D mode L = 1 五、数字签名 原理以及应用场景: 1)数字签名的应用场景 需要严格验证发送方身份信息情况 2)数字签名原理 (1)客户端处理 对"消息"进行HASH得到"消息摘要" 发送方使用自己的私钥对"消息摘要"加密(数字签名) 把数字签名附着在"报文"的末尾一起发送给接收方 (2)服务端处理 对"消息" HASH得到"报文摘要" 使用公钥对"数字签名"解密 对结果进行匹配 六、数字证书 简单说明: 证书和驾照很相似,里面记有姓名、组织、地址等个人信息,以及属于此人的公钥,并有认证机构施加数字签名,只要看到公钥证书,我们就可以知道认证机构认证该公钥的确属于此人。 数字证书的内容: 1)公钥 2)认证机构的数字签名 证书的生成步骤: 1)生成私钥openssl genrsa -out private.pem 1024 2)创建证书请求openssl req -new -key private.pem -out rsacert.csr 3)生成证书并签名,有效期10年openssl x509 -req -days 3650 -in rsacert.csr -signkey private.pem -out rsacert.crt 4)将PEM格式文件转换成DER格式openssl x509 -outform der -in rsacert.crt -out rsacert.der 5)导出P12文件openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt iOS开发中的注意点: 1)在iOS开发中,不能直接使用PEM格式的证书,因为其内部进行了Base64编码,应该使用的是DER的证书,是二进制格式的; 2)OpenSSL默认生成的都是PEM格式的证书。 七、https HTTPS和HTTP的区别: 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 HTTPS和HTTP的区别主要为以下四点: 1)https协议需要到ca申请证书,一般免费证书很少,需要交费。 2)http是 超文本传输协议 ,信息是明文传输,https则是具有 安全性 的 ssl 加密传输协议。 3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的 网络协议 ,比http协议安全。 5)SSL:Secure Sockets Layer安全套接字层;用数据加密(Encryption)技术,可确保数据在网络上传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape 浏览器 即可支持SSL。目前版本为3.0。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

在非对称密钥体系中,单纯用数字签名能否实现加密?为什么?

非对称加密是加密和解密用的不是相同的密钥。数字签名的基本原理是:发送方生成报文的报文摘要,用自己的私钥对摘要进行加密来构成发送方的数字签名。但是,这个数字签名将作为报文的附件和报文1起发送给接收方。接收方首先从接收到的原始报文中用一样的算法计算出新的报文摘要,再用发送方的公钥对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就可以确认该数。

数字签名就是加密算法吗?

数字签名是一种哈希算法,也叫散列表法。就是把一些的不定长的字符变成定长的(叫做文件的指纹,和人的指纹类似)。可能会产生碰撞,但是只限于偶然(概率非常小),要是故意让两个不相同的文件经过MD5加密产生相同的散列值,那几乎是不可能的,要想破解MD5的明文,至少需要TB级的计算机,而且是经过几千年才能解出来。不过我最近听说现在最新的量子计算机能在几天之内解出来。最出名的有MD5加密。还有RSA、DES。你可以看下这里的介绍。http://www.iplaysoft.com/encrypt-arithmetic.html

简述数字签名和加密的基本原理及其区别? 急!急!急!

数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。另外,数字签名只采用了非对称密钥加密算法,它能保证发送信息的完整性、身份认证和不可否认性,而数字加密采用了对称密钥加密算法和非对称密钥加密算法相结合的方法。

数据加密和数据签名的原理作用

加密可以帮助保护数据不被查看和修改,并且可以帮助在本不安全的信道上提供安全的通信方式。例如,可以使用加密算法对数据进行加密,在加密状态下传输数据,然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据,解密数据是很困难的。在一个使用加密的典型场合中,双方(小红和小明)在不安全的信道上通信。小红和小明想要确保任何可能正在侦听的人无法理解他们之间的通信。而且,由于小红和小明相距遥远,因此小红必须确保她从小明处收到的信息没有在传输期间被任何人修改。此外,她必须确定信息确实是发自小明而不是有人模仿小明发出的。加密用于达到以下目的: 保密性:帮助保护用户的标识或数据不被读取。 数据完整性:帮助保护数据不更改。 身份验证:确保数据发自特定的一方。 为了达到这些目的,您可以使用算法和惯例的组合(称作加密基元)来创建加密方案。下表列出了加密基元及它们的用法。加密基元 使用 私钥加密(对称加密) 对数据执行转换,使第三方无法读取该数据。此类型的加密使用单个共享的机密密钥来加密和解密数据。 公钥加密(不对称加密) 对数据执行转换,使第三方无法读取该数据。此类加密使用公钥/私钥对来加密和解密数据。 加密签名 通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。此过程还使用哈希函数。 加密哈希 将数据从任意长度映射为定长字节序列。哈希在统计上是唯一的;不同的双字节序列不会哈希为同一个值。 私钥加密私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。通常,私钥算法(称为块密码)用于一次加密一个数据块。块密码(如 RC2、DES、TrippleDES 和 Rijndael)通过加密将 n 字节的输入块转换为加密字节的输出块。如果要加密或解密字节序列,必须逐块进行。由于 n 很小(对于 RC2、DES 和 TripleDES,n = 8 字节;n = 16 [默认值];n = 24;对于 Rijndael,n = 32),因此必须对大于 n 的值一次加密一个块。 基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个不使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流中有重复的块,那么在密文流中将存在重复的块。如果未经授权的用户知道有关明文块的结构的任何信息,就可以使用这些信息解密已知的密文块并有可能发现您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。可以危及用此类型密码加密的数据的一个方法是,对每个可能的密钥执行穷举搜索。根据用于执行加密的密钥大小,即使使用最快的计算机执行这种搜索,也极其耗时,因此难以实施。使用较大的密钥大小将使解密更加困难。虽然从理论上说加密不会使对手无法检索加密的数据,但这确实极大增加了这样做的成本。如果执行彻底搜索来检索只在几天内有意义的数据需要花费三个月的时间,那么穷举搜索的方法是不实用的。私钥加密的缺点是它假定双方已就密钥和 IV 达成协议,并且互相传达了密钥和 IV 的值。并且,密钥必须对未经授权的用户保密。由于存在这些问题,私钥加密通常与公钥加密一起使用,来秘密地传达密钥和 IV 的值。假设小红和小明是要在不安全的信道上进行通信的双方,他们可能按以下方式使用私钥加密。小红和小明都同意使用一种具有特定密钥和 IV 的特定算法(如 Rijndael)。小红撰写一条消息并创建要在其上发送该消息的网络流。接下来,她使用该密钥和 IV 加密该文本,并通过 Internet 发送该文本。她没有将密钥和 IV 发送给小明。小明收到该加密文本并使用预先商定的密钥和 IV 对它进行解密。如果传输的内容被人截获,截获者将无法恢复原始消息,因为截获者并不知道密钥或 IV。在这个方案中,密钥必须保密,但 IV 不需要保密。在一个实际方案中,将由小红或小明生成私钥并使用公钥(不对称)加密将私钥(对称)传递给对方。有关更多信息,请参见本主题后面的有关公钥加密的部分。.NET Framework 提供以下实现私钥加密算法的类: DESCryptoServiceProvider RC2CryptoServiceProvider RijndaelManaged TripleDESCryptoServiceProvider 公钥加密公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人;公钥用于对要发送到私钥持有者的数据进行加密。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。公钥加密算法使用固定的缓冲区大小,而私钥加密算法使用长度可变的缓冲区。公钥算法无法像私钥算法那样将数据链接起来成为流,原因是它只可以加密少量数据。因此,不对称操作不使用与对称操作相同的流模型。双方(小红和小明)可以按照下列方式使用公钥加密。首先,小红生成一个公钥/私钥对。如果小明想要给小红发送一条加密的消息,他将向她索要她的公钥。小红通过不安全的网络将她的公钥发送给小明,小明接着使用该密钥加密消息。(如果小明在不安全的信道如公共网络上收到小红的密钥,则小明必须同小红验证他具有她的公钥的正确副本。)小明将加密的消息发送给小红,而小红使用她的私钥解密该消息。但是,在传输小红的公钥期间,未经授权的代理可能截获该密钥。而且,同一代理可能截获来自小明的加密消息。但是,该代理无法用公钥解密该消息。该消息只能用小红的私钥解密,而该私钥没有被传输。小红不使用她的私钥加密给小明的答复消息,原因是任何具有公钥的人都可以解密该消息。如果小红想要将消息发送回小明,她将向小明索要他的公钥并使用该公钥加密她的消息。然后,小明使用与他相关联的私钥来解密该消息。在一个实际方案中,小红和小明使用公钥(不对称)加密来传输私(对称)钥,而对他们的会话的其余部分使用私钥加密。公钥加密具有更大的密钥空间(或密钥的可能值范围),因此不大容易受到对每个可能密钥都进行尝试的穷举攻击。由于不必保护公钥,因此它易于分发。公钥算法可用于创建数字签名以验证数据发送方的身份。但是,公钥算法非常慢(与私钥算法相比),不适合用来加密大量数据。公钥算法仅对传输很少量的数据有用。公钥加密通常用于加密一个私钥算法将要使用的密钥和 IV。传输密钥和 IV 后,会话的其余部分将使用私钥加密。.NET Framework 提供以下实现公钥加密算法的类: DSACryptoServiceProvider RSACryptoServiceProvider 数字签名公钥算法还可用于构成数字签名。数字签名验证发送方的身份(如果您信任发送方的公钥)并帮助保护数据的完整性。使用由小红生成的公钥,小红的数据的接收者可以通过将数字签名与小红的数据和小红的公钥进行比较来验证是否是小红发送了该数据。为了使用公钥加密对消息进行数字签名,小红首先将哈希算法应用于该消息以创建消息摘要。该消息摘要是数据的紧凑且唯一的表示形式。然后,小红用她的私钥加密该消息摘要以创建她的个人签名。在收到消息和签名时,小明使用小红的公钥解密签名以恢复消息摘要,并使用与小红所使用的相同的哈希算法来散列消息。如果小明计算的消息摘要与从小红那里收到的消息摘要完全一致,小明就可以确定该消息来自私钥的持有人,并且数据未被修改过。如果小明相信小红是私钥的持有人,则他知道该消息来自小红。请注意,由于发送方的公钥为大家所周知,并且它通常包含在数字签名格式中,因此任何人都可以验证签名。此方法不保守消息的机密;若要使消息保密,还必须对消息进行加密。.NET Framework 提供以下实现数字签名算法的类: DSACryptoServiceProvider RSACryptoServiceProvider 哈希值哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希计算都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。消息身份验证代码 (MAC) 哈希函数通常与数字签名一起用于对数据进行签名,而消息检测代码 (MDC) 哈希函数则用于数据完整性。双方(小红和小明)可按下面的方式使用哈希函数来确保数据的完整性。如果小红对小明编写一条消息并创建该消息的哈希,则小明可以在稍后散列该消息并将他的哈希与原始哈希进行比较。如果两个哈希值相同,则该消息没有被更改;如果值不相同,则该消息在小红编写它之后已被更改。为了使此系统发挥作用,小红必须对除小明外的所有人保密原始的哈希值。.NET Framework 提供以下实现数字签名算法的类: HMACSHA1 MACTripleDES MD5CryptoServiceProvider SHA1Managed SHA256Managed SHA384Managed SHA512Managed 随机数生成随机数生成是许多加密操作不可分割的组成部分。例如,加密密钥需要尽可能地随机,以便使生成的密钥很难再现。加密随机数生成器必须生成无法以计算方法推算出(低于 p < .05 的概率)的输出;即,任何推算下一个输出位的方法不得比随机猜测具有更高的成功概率。.NET Framework 中的类使用随机数生成器生成加密密钥。RNGCryptoServiceProvider 类是随机数生成器算法的实现。

数字签名的加密方式是怎样的原理?

数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。签名的时候用密钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。公钥加密系统允许任何人在发送信息时使用公钥进行加密,数字签名能够让信息接收者确认发送者的身份。当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。鉴权的重要性在财务数据上表现得尤为突出。举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。这种方法被称作重放攻击。完整性。传输数据的双方都总希望确认消息未在传输的过程中被修改。加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b3),这样他就立刻变成百万富翁了。不可抵赖。在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。

大神求教,sak28的cpu卡加密在扇区1的咋破?

可以去找一个电脑高手来帮你操作操作。

php怎么在post前加密用户名 密码

?没明白你的意思

加密的光盘 制作成镜像

步骤1:首先我们需要CloneCD这个软件,下载地址:天极网下载频道。注意不能使用NERO等其他光驱软件,因为NERO读不过坏道,可能造成死机的情况。首次运行在Language语言栏内选择SIMP.Chinese,界面显示为中文。点击“文件→读成映像文件”,在弹出的对话框中选择物理光驱的盘符,注意不能选择虚拟盘符。选择后CloneCD会对整个VCD进行扫描,由于制作的是视频镜像,所以选择multimedia audio cd,然后选择镜像文件保存目录,右面已经显示出扫描后光盘的容量、片断、轨道数等一些信息(图3)。CloneCD将读取的整个光盘内容制作成镜像文件,中途在记录框中出现读取扇区失败的信息,同时光驱中会出现咔咔咔咔的响声音,这个是正常现象。cloneCD能制作镜像的原理就是能真实地按照1∶1 全盘复制CD,不管是否有保护或加密之类,它都会跳 宋 柚玫幕档?把有用部分镜像制作出来(图4)。图4跳过坏道大概用时两三分钟,视你的光驱读盘能力而定,在显示跳过伪扇区后经过十多分钟就可以把这个光盘制作成镜像文件,最后显示读取完成后在目录下会出现image.img等三个文件。步骤2:已经得到了的IMG镜像文件,还不能使用其他虚拟光驱工具来打开它,这时你会发现还是一无所获。接下来的工作是提取镜像文件中的视频文件,我们还需要IsoBuster这个工具,下载地址:天极网下载频道运行IsoBuster,点击“file→open image file”来打开后缀为".ccd"的文件,在主界面中应该出现光盘的卷标和目录结构,在track 02上右击,选“extract track 01→treat as video only extract but filter only m2f2 mpeg video frames( .mpg)”(图5),然后选择文件存放目录,最后经过几分钟的时间就得到了原始的MPG视频文件,用来复制VCD或在PC上观看就任君选择了。 如何刻录防整盘复制的光碟(五) 防菜鸟复制的加密方法。 1.启动Nero5.0把终结CD的选项去掉,拖进VCD文件刻录好。 2.准备一个垃圾文件,大小视乎碟剩下的空间来定。一般在几十M左右为好!将属性改为隐藏。 3.启动WinNocd5.0,用追加数据段加入刚才刻录的VCD碟的数据,这时会弹出一个框说不能导入ISO文件,不要管它,按确定继续拖进刚才改好的垃圾文件刻录并关闭CD。 4.用圆规在垃圾文件上打圈,细细的一圈就可以了,很美观的,光头不会读到垃圾文件区就返回了。OK一张防拷贝,看不见文件的VCD就做好了。 如何刻录防整盘复制的光碟(六)1.先用NERO生成一个镜像文件。2.用ULTRAEDIT搜索MPEGAV字段,把前面的第八对的02改为07。还要搜索AVSEQ字段,把前面的02也改为07。3.用NERO IMAGE DRIVE 将刚才做的镜像调入虚拟光区,用BlindRead 3.0.0.23 Final把IMG镜像文件改CUE。4.用FREELOCK加密你刚才所转换出来的CUE文件 a:FREELOCK X:xxx.cue5.然后用CDRWIN刻录。如何刻录防整盘复制的光碟(七)最近发现有不少盗版光盘为了掩人耳目,将盗版的内容隐藏起来,必须通过专门的程序来读取上面的内容。这种技术使笔者很惊奇,经过一番试验终于掌握了要领,同时也发现了一种能让目录即使在Windows环境下可以看见却无法进入的方法,将这两种技术结合在一起能更加提高保密度。想到以前在DOS下为了把自己的目录隐藏起来的常用方法:用PCTOOLS修改文件目录表FDT中目录的属性字节,这里是不是可以借鉴呢?但是由于光盘是通过刻录软件进行刻录的,同时在Windows95下也不允许直接磁盘读写,所以必须先生成Image文件,然后采用十六进制编辑器进行修改,这里采用的是刻录软件Eazy Cd Creator和十六进制编辑器UltraEdit。 在Easy CD Creator中新建一个CD layout,放入空白CDR片,用左键点击CDR图标设定卷标,再用右键调出快捷菜单,定义其属性为ISO9660格式、Mode1:CDROM。建立一个要保密的目录,设为TEST,将一些文件拖入,如Pbrush.exe,然后选择File->Create Disk Image...菜单项建立Image文件设为TEST.CIF。打开UltraEdit并调入TEST.CIF文件,选中Search->Find菜单进行字串查找。确认输入TEST而且Find ASCII为开按Find Next进行查找。结果是让人疑惑的,TEST字串出现了三次!究竟是哪一个呢?于是我做了一个试验,分别将第一个和第二个“TEST”改为“TAST”“TBST”,然后进入Easy CD Creator,选File->Create CD form Disc Image...进行刻录,完成后在用资源管理器打开,发现该盘有一个TEST目录,但是却无法进入!错误信息是:“该文件夹已被移动或删除”。打开一个DOS窗口,输入命令“DIR”能列出目录“TEST”但无法用“CD TEST”进入,试着用“CD TAST”居然进入了而且里面的文件一个不少!于是我们掌握了一种使操作与显示不一致的欺骗手段:)。现在知道第三个“TEST”是用来显示的,所以在UltraEdit中就可以改它啦!在UltraEdit中再按两次F3键找到第三个“TEST”,可以发现前后有不少字节内容非0,但哪个是属性字节呢?再做一个试验,在Easy CD Creator中设置TEST目录的属性为隐藏(这样刻出的盘只要打开Windows设置还是可以看见),建立CIF文件后进行对比发现第三个“TEST”的“T”前面第8个字节由“02”变为“03”了,看来这就是属性字节了,将其变为“04”,再进行刻录,然后查看,这下在Windows和DOS窗口中都看不见了,要进入目录操作就只能用DOS命令“CD TEST”了。

与对称密码体制相比公钥密码体制最大的特点是加密密钥可公开

密码学分为密码码编码学和密码分析学两类。编码学主要分为保密体制和认证体制,从使用密钥的策略上分为:对称密码体制和非对称密码体制(亦称公钥密码体制)。密码分析学中设计和使用密码系统必须遵守:柯克霍夫准则。要求算法必须公开,对密钥进行保护。密码学的发展历程可分为三个阶段:分别是古典密码、近代密码与现代密码。密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。

2021年,更多支付巨头将采用加密货币,加密货币的加密原理是什么?

密码学原理。加密货币就是安全的货币,代表一种媒介,本身无价值,但是因国家认可,让它成为货物流通的一种。

密码学基础(二):对称加密

加密和解密使用相同的秘钥称为对称加密。 DES:已经淘汰 3DES:相对于DES有所加强,但是仍然存在较大风险 AES:全新的对称加密算法。 特点决定使用场景,对称加密拥有如下特点: 速度快,可用于频率很高的加密场景。 使用同一个秘钥进行加密和解密。 可选按照128、192、256位为一组的加密方式,加密后的输出值为所选分组位数的倍数。密钥的长度不同,推荐加密轮数也不同,加密强度也更强。 例如: AES加密结果的长度由原字符串长度决定:一个字符为1byte=4bit,一个字符串为n+1byte,因为最后一位为"",所以当字符串长度小于等于15时,AES128得到的16进制结果为32位,也就是32 4=128byte,当长度超过15时,就是64位为128 2byte。 因为对称加密速度快的特点,对称加密被广泛运用在各种加密场所中。但是因为其需要传递秘钥,一旦秘钥被截获或者泄露,其加密就会玩完全破解,所以AES一般和RSA一起使用。 因为RSA不用传递秘钥,加密速度慢,所以一般使用RSA加密AES中锁使用的秘钥后,再传递秘钥,保证秘钥的安全。秘钥安全传递成功后,一直使用AES对会话中的信息进行加密,以此来解决AES和RSA的缺点并完美发挥两者的优点,其中相对经典的例子就是HTTPS加密,后文会专门研究。 本文针对ECB模式下的AES算法进行大概讲解,针对每一步的详细算法不再该文讨论范围内。 128位的明文被分成16个字节的明文矩阵,然后将明文矩阵转化成状态矩阵,以“abcdefghijklmnop”的明文为例: 同样的,128位密钥被分成16组的状态矩阵。与明文不同的是,密文会以列为单位,生成最初的4x8x4=128的秘钥,也就是一个组中有4个元素,每个元素由每列中的4个秘钥叠加而成,其中矩阵中的每个秘钥为1个字节也就是8位。 生成初始的w[0]、w[1]、w[2]、w[3]原始密钥之后,通过密钥编排函数,该密钥矩阵被扩展成一个44个组成的序列W[0],W[1], … ,W[43]。该序列的前4个元素W[0],W[1],W[2],W[3]是原始密钥,用于加密运算中的初始密钥加,后面40个字分为10组,每组4个32位的字段组成,总共为128位,分别用于10轮加密运算中的轮密钥加密,如下图所示: 之所以把这一步单独提出来,是因为ECB和CBC模式中主要的区别就在这一步。 ECB模式中,初始秘钥扩展后生成秘钥组后(w0-w43),明文根据当前轮数取出w[i,i+3]进行加密操作。 CBC模式中,则使用前一轮的密文(明文加密之后的值)和当前的明文进行异或操作之后再进行加密操作。如图所示: 根据不同位数分组,官方推荐的加密轮数: 轮操作加密的第1轮到第9轮的轮函数一样,包括4个操作:字节代换、行位移、列混合和轮密钥加。最后一轮迭代不执行列混合。 当第一组加密完成时,后面的组循环进行加密操作知道所有的组都完成加密操作。 一般会将结果转化成base64位,此时在iOS中应该使用base64编码的方式进行解码操作,而不是UTF-8。 base64是一种编码方式,常用语传输8bit字节码。其编码原理如下所示: 将原数据按照3个字节取为一组,即为3x8=24位 将3x8=24的数据分为4x6=24的数据,也就是分为了4组 将4个组中的数据分别在高位补上2个0,也就成了8x4=32,所以原数据增大了三分之一。 根据base64编码表对数据进行转换,如果要编码的二进制数据不是3的倍数,最后会剩下1个或2个字节怎么办,Base64用x00字节在末尾补足后,再在编码的末尾加上1个或2个=号,表示补了多少字节,解码的时候,会自动去掉。 举个栗子:Man最后的结果就是TWFu。 计算机中所有的数据都是以0和1的二进制来存储,而所有的文字都是通过ascii表转化而来进而显示成对应的语言。但是ascii表中存在许多不可见字符,这些不可见字符在数据传输时,有可能经过不同硬件上各种类型的路由,在转义时容易发生错误,所以规定了64个可见字符(a-z、A-Z、0-9、+、/),通过base64转码之后,所有的二进制数据都是可见的。 ECB和CBC是两种加密工作模式。其相同点都是在开始轮加密之前,将明文和密文按照128/192/256进行分组。以128位为例,明文和密文都分为16组,每组1个字节为8位。 ECB工作模式中,每一组的明文和密文相互独立,每一组的明文通过对应该组的密文加密后生成密文,不影响其他组。 CBC工作模式中,后一组的明文在加密之前先使用前一组的密文进行异或运算后再和对应该组的密文进行加密操作生成密文。 为简单的分组加密。将明文和密文分成若干组后,使用密文对明文进行加密生成密文 CBC 加密: 解密:

密码学基础(三):非对称加密(RSA算法原理)

加密和解密使用的是两个不同的秘钥,这种算法叫做非对称加密。非对称加密又称为公钥加密,RSA只是公钥加密的一种。 现实生活中有签名,互联网中也存在签名。签名的作用有两个,一个是身份验证,一个是数据完整性验证。数字签名通过摘要算法来确保接收到的数据没有被篡改,再通过签名者的私钥加密,只能使用对应的公钥解密,以此来保证身份的一致性。 数字证书是将个人信息和数字签名放到一起,经由CA机构的私钥加密之后生成。当然,不经过CA机构,由自己完成签名的证书称为自签名证书。CA机构作为互联网密码体系中的基础机构,拥有相当高级的安全防范能力,所有的证书体系中的基本假设或者前提就是CA机构的私钥不被窃取,一旦 CA J机构出事,整个信息链将不再安全。 CA证书的生成过程如下: 证书参与信息传递完成加密和解密的过程如下: 互质关系:互质是公约数只有1的两个整数,1和1互质,13和13就不互质了。 欧拉函数:表示任意给定正整数 n,在小于等于n的正整数之中,有多少个与 n 构成互质关系,其表达式为: 其中,若P为质数,则其表达式可以简写为: 情况一:φ(1)=1 1和任何数都互质,所以φ(1)=1; 情况二:n 是质数, φ(n)=n-1 因为 n 是质数,所以和小于自己的所有数都是互质关系,所以φ(n)=n-1; 情况三:如果 n 是质数的某一个次方,即 n = p^k ( p 为质数,k 为大于等于1的整数),则φ(n)=(p-1)p^(k-1) 因为 p 为质数,所以除了 p 的倍数之外,小于 n 的所有数都是 n 的质数; 情况四:如果 n 可以分解成两个互质的整数之积,n = p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2) 情况五:基于情况四,如果 p1 和 p2 都是质数,且 n=p1 × p2,则φ(n) = φ(p1p2) = φ(p1)φ(p2)=(p1-1)(p2-1) 而 RSA 算法的基本原理就是欧拉函数中的第五种情况,即: φ(n)=(p1-1)(p2-1); 如果两个正整数 a 和 n 互质,那么一定可以找到整数 b,使得 ab-1 被 n 整除,或者说ab被n除的余数是1。这时,b就叫做a的“模反元素”。欧拉定理可以用来证明模反元素必然存在。 可以看到,a的 φ(n)-1 次方,就是a对模数n的模反元素。 n=p x q = 3233,3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。 在实际使用中,一般场景下选择1024位长度的数字,更高安全要求的场景下,选择2048位的数字,这里作为演示,选取p=61和q=53; 因为n、p、q都为质数,所以φ(n) = (p-1)(q-1)=60×52= 3120 注意,这里是和φ(n) 互互质而不是n!假设选择的值是17,即 e=17; 模反元素就是指有一个整数 d,可以使得 ed 被 φ(n) 除的余数为1。表示为:(ed-1)=φ(n) y --> 17d=3120y+1,算出一组解为(2753,15),即 d=2753,y=-15,也就是(17 2753-1)/3120=15。 注意,这里不能选择3119,否则公私钥相同?? 公钥:(n,e)=(3233,2753) 私钥:(n,d)=(3233,17) 公钥是公开的,也就是说m=p*q=3233是公开的,那么怎么求e被?e是通过模反函数求得,17d=3120y+1,e是公开的等于17,这时候想要求d就要知道3120,也就是φ(n),也就是φ(3233),说白了,3233是公开的,你能对3233进行因数分解,你就能知道d,也就能破解私钥。 正常情况下,3233我们可以因数分解为61*53,但是对于很大的数字,人类只能通过枚举的方法来因数分解,所以RSA安全性的本质就是:对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。 人类已经分解的最大整数是: 这个人类已经分解的最大整数为232个十进制位,768个二进制位,比它更大的因数分解,还没有被报道过,因此目前被破解的最长RSA密钥就是768位。所以实际使用中的1024位秘钥基本安全,2048位秘钥绝对安全。 网上有个段子: 已经得出公私钥的组成: 公钥:(n,e)=(3233,2753) 私钥:(n,d)=(3233,17) 加密的过程就是 解密过程如下: 其中 m 是要被加密的数字,c 是加密之后输出的结果,且 m < n ,其中解密过程一定成立可以证明的,这里省略证明过程。 总而言之,RSA的加密就是使用模反函数对数字进行加密和求解过程,在实际使用中因为 m < n必须成立,所以就有两种加密方法: 对称加密存在虽然快速,但是存在致命的缺点就是秘钥需要传递。非对称加密虽然不需要传递秘钥就可以完成加密和解密,但是其致命缺点是速度不够快,不能用于高频率,高容量的加密场景。所以才有了两者的互补关系,在传递对称加密的秘钥时采用非对称加密,完成秘钥传送之后采用对称加密,如此就可以完美互补。

强大的量子计算机可以破解加密并解决经典计算机无法解决的问题

强大的量子计算机可以破解加密并解决经典机器无法解决的问题。虽然目前还没有人成功制造出这样的设备,但最近我们看到了进步的步伐——那么,会是新的一年吗?目前,注意力集中在一个被称为量子霸权的重要里程碑上:在合理的时间范围内,量子计算机能够完成经典计算机无法完成的计算。 谷歌在2019年首次使用具有 54 个量子位(常规计算位的量子等价物)的设备来执行称为随机抽样计算的基本上无用的计算,从而实现了这一目标。2021 年,中国科学技术大学的一个团队使用 56 个量子比特解决了一个更复杂的采样问题,后来又用 60 个量子比特将其推得更远。 但IBM 的Bob Sutor表示,这种跨越式 游戏 是一项尚未产生真正影响的学术成就。只有当量子计算机明显优于经典计算机并且能够解决不同问题时,才能实现真正的霸权,而不是目前用作基准的随机抽样计算。 他说,IBM 正在努力实现“量子商业优势”——在这一点上,量子计算机可以比传统计算机更快地为研究人员或公司解决真正有用的问题。Sutor说,这还没有到来,也不会在新的一年到来,但可以预期在十年内。 量子软件公司Classiq的联合创始人Nir Minerbi则更为乐观。他认为,新的一年将在一个有用的问题中展示量子霸权。 还记得第一辆电动 汽车 问世的时候吗?它们对于开车去杂货店很有用,但也许不适合开车300公里送孩子上大学。就像电动 汽车 一样,量子计算机会随着时间的推移变得越来越好,使其在更广泛的应用中发挥作用。 解决实际问题存在许多障碍。首先是设备需要数千个量子比特才能做到这一点,而且这些量子比特也必须比现有的更稳定和可靠。研究人员很可能需要将它们分组在一起,以作为单个“逻辑量子比特”工作。这有助于提高保真度,但会削弱规模的改进:数千个逻辑量子位可能需要数百万个物理量子位。 随着时间的推移,量子计算机会变得更好,在一系列应用中变得有用 研究人员还致力于量子纠错,以在出现故障时对其进行修复。谷歌在2021年7月宣布,其Sycamore处理器能够检测并修复其超导量子比特中的错误,但执行此操作所需的额外硬件引入的错误多于修复的错误。马里兰州联合量子研究所的研究人员后来设法用他们捕获的离子量子比特通过了这个关键的收支平衡阈值。 即便如此,现在还为时过早。如果通用量子计算机在新的一年解决了一个有用的问题,那将是“相当令人震惊的”。在任意时间内保护单个编码的量子位,更不用说对数千或数百万个编码的量子位进行计算了。 量子计算机需要多大才能破解比特币加密或模拟分子? 预计量子计算机将具有颠覆性,并可能影响许多行业领域。因此,英国和荷兰的研究人员决定 探索 两个截然不同的量子问题:破解比特币(一种数字货币)的加密以及模拟负责生物固氮的分子。研究人员描述了他们创建的一种工具,用于确定解决此类问题需要多大的量子计算机以及需要多长时间。 这一领域的大部分现有工作都集中在特定的硬件平台、超导设备上,就像 IBM 和谷歌正在努力开发的那样。不同的硬件平台在关键硬件规格上会有很大差异,例如运算速率和对量子比特(量子比特)的控制质量。许多最有前途的量子优势用例将需要纠错量子计算机。纠错可以通过补偿量子计算机内部的固有错误来运行更长的算法,但它是以更多物理量子比特为代价的。从空气中提取氮来制造用于肥料的氨是非常耗能的,改进这一过程可能会影响世界粮食短缺和气候危机。相关分子的模拟目前甚至超出了世界上最快的超级计算机的能力,但应该在下一代量子计算机的范围内。 我们的工具根据关键硬件规格自动计算纠错开销。为了让量子算法运行得更快,我们可以通过添加更多物理量子位来并行执行更多操作。我们根据需要引入额外的量子位以达到所需的运行时间,这严重依赖于物理硬件级别的操作速率。大多数量子计算硬件平台都是有限的,因为只有彼此相邻的量子位才能直接交互。在其他平台中,例如一些捕获离子的设计,量子位不在固定位置,而是可以物理移动——这意味着每个量子位可以直接与大量其他量子位相互作用。 我们 探索 了如何最好地利用这种连接遥远量子位的能力,目的是用更少的量子位在更短的时间内解决问题。我们必须继续调整纠错策略以利用底层硬件的优势,这可能使我们能够使用比以前假设的更小的量子计算机来解决影响深远的问题。 量子计算机在破解许多加密技术方面比经典计算机更强大。世界上大多数安全通信设备都使用 RSA 加密。RSA 加密和比特币使用的一种(椭圆曲线数字签名算法)有一天会容易受到量子计算攻击,但今天,即使是最大的超级计算机也永远不会构成严重威胁。研究人员估计,一台量子计算机需要的大小才能在它实际上会构成威胁的一小段时间内破解比特币网络的加密——在它宣布和集成到区块链之间。交易支付的费用越高,这个窗口就越短,但可能从几分钟到几小时不等。 当今最先进的量子计算机只有50-100个量子比特。“我们估计需要30[百万] 到3亿物理量子比特,这表明比特币目前应该被认为是安全的,不会受到量子攻击,但这种尺寸的设备通常被认为是可以实现的,未来的进步可能会进一步降低要求。比特币网络可以对量子安全加密技术执行‘硬分叉",但这可能会由于内存需求增加而导致网络扩展问题。 研究人员强调了量子算法和纠错协议的改进速度。四年前,我们估计捕获离子设备需要 10 亿个物理量子比特才能破解 RSA 加密,这需要一个面积为 100 x 100 平方米的设备。现在,随着全面改进,这可能会显着减少到仅仅 2.5 x 2.5 平方米的面积。大规模纠错量子计算机应该能够解决经典计算机无法解决的重要问题。模拟分子可应用于能源效率、电池、改进的催化剂、新材料和新药的开发。进一步的应用程序全面存在——包括金融、大数据分析、飞机设计的流体流动和物流优化。 什么是量子启示录? 想象一个加密的秘密文件突然被破解的世界——这就是所谓的“量子启示录”。简而言之,量子计算机的工作方式与上个世纪开发的计算机完全不同。从理论上讲,它们最终可能会比今天的机器快很多很多倍。这意味着面对一个极其复杂和耗时的问题——比如试图解密数据——其中有数十亿的多个排列,如果有的话,一台普通的计算机需要很多年才能破解这些加密。但理论上,未来的量子计算机可以在几秒钟内完成这项工作。这样的计算机可以为人类解决各种问题。英国政府正在牛津郡哈威尔投资国家量子计算中心,希望彻底改变该领域的研究。 一种用于量子计算的新语言 Twist是麻省理工学院开发的一种编程语言,可以描述和验证哪些数据被纠缠在一起,以防止量子程序中的错误。时间结晶、微波炉、钻石,这三个不同的东西有什么共同点?量子计算。与使用比特的传统计算机不同,量子计算机使用量子比特将信息编码为0或1,或两者同时编码。再加上来自量子物理学的各种力量,这些冰箱大小的机器可以处理大量信息——但它们远非完美无缺。就像我们的普通计算机一样,我们需要有正确的编程语言才能在量子计算机上正确计算。 对量子计算机进行编程需要了解一种叫做“纠缠”的东西,这是一种用于各种量子比特的计算机,它可以转化为强大的能量。当两个量子位纠缠在一起时,一个量子位上的动作可以改变另一个量子位的值,即使它们在物理上是分开的,这引起了爱因斯坦对“远距离幽灵动作”的描述。但这种效力同样是弱点的来源。在编程时,丢弃一个量子位而不注意它与另一个量子位的纠缠会破坏另一个量子位中存储的数据,从而危及程序的正确性。 麻省理工学院计算机科学与人工智能 (CSAIL) 科学家旨在通过创建自己的量子计算编程语言 Twist 来解开谜团。Twist 可以通过经典程序员可以理解的语言来描述和验证量子程序中纠缠了哪些数据。该语言使用一个称为纯度的概念,它强制不存在纠缠并产生更直观的程序,理想情况下错误更少。例如,程序员可以使用 Twist 表示程序作为垃圾生成的临时数据不会与程序的答案纠缠在一起,从而可以安全地丢弃。 虽然新兴领域可能会让人感觉有点浮华和未来感,但脑海中浮现出巨大的金属机器的图像,但量子计算机具有在经典无法解决的任务中实现计算突破的潜力,例如密码学和通信协议、搜索以及计算物理和化学。计算科学的主要挑战之一是处理问题的复杂性和所需的计算量。经典的数字计算机需要非常大的指数位数才能处理这样的模拟,而量子计算机可能会使用非常少量的量子位来做到这一点——如果那里有正确的程序。 “我们的语言 Twist 允许开发人员通过明确说明何时不得与另一个量子位纠缠来编写更安全的量子程序,”麻省理工学院电气工程和计算机科学博士生、有关 Twist的新论文的主要作者 Charles Yuan 说. “因为理解量子程序需要理解纠缠,我们希望 Twist 为开发语言铺平道路,让程序员更容易应对量子计算的独特挑战。” 解开量子纠缠 想象一个木箱,它的一侧伸出一千根电缆。您可以将任何电缆从包装盒中拉出,也可以将其完全推入。 在你这样做一段时间后,电缆会形成一个位模式——零和一——取决于它们是在里面还是在外面。这个盒子代表了经典计算机的内存。该计算机的程序是关于何时以及如何拉电缆的一系列指令。 现在想象第二个外观相同的盒子。这一次,你拉一根电缆,看到它出现时,其他几根电缆被拉回了里面。显然,在盒子内部,这些电缆不知何故相互缠绕。 第二个框是量子计算机的类比,理解量子程序的含义需要理解其数据中存在的纠缠。但是检测纠缠并不简单。你看不到木箱,所以你能做的最好的就是尝试拉动电缆并仔细推理哪些是纠缠的。同样,今天的量子程序员不得不用手推理纠缠。这就是 Twist 的设计有助于按摩其中一些交错的部分。 科学家们设计的Twist具有足够的表现力,可以为著名的量子算法编写程序并识别其实现中的错误。为了评估Twist的设计,他们对程序进行了修改,以引入某种对于人类程序员来说相对不易察觉的错误,并表明Twist可以自动识别错误并拒绝程序。 他们还测量了程序在运行时方面的实际执行情况,与现有的量子编程技术相比,它的开销不到4%。 对于那些担心量子在破解加密系统方面的“肮脏”名声的人来说,Yuan 表示,目前还不清楚量子计算机在实践中能够在多大程度上实现其性能承诺。“在后量子密码学方面正在进行大量研究,这些研究之所以存在,是因为即使是量子计算也不是万能的。到目前为止,有一组非常具体的应用程序,人们在这些应用程序中开发了量子计算机可以超越经典计算机的算法和技术。” 重要的下一步是使用Twist创建更高级别的量子编程语言。今天的大多数量子编程语言仍然类似于汇编语言,将低级操作串在一起,没有注意数据类型和函数等东西,以及经典软件工程中的典型内容。 量子计算机容易出错且难以编程。通过引入和推理程序代码的“纯度”,Twist 通过保证一段纯代码中的量子位不会被不在该代码中的位更改,朝着简化量子编程迈出了一大步。 这项工作得到了麻省理工学院-IBM 沃森人工智能实验室、国家科学基金会和海军研究办公室的部分支持。 【注释. 量子计算机】 量子计算机是一种直接利用量子力学现象(如叠加和纠缠)对数据进行运算的计算设备。量子计算背后的基本原理是量子属性可以用来表示数据并对这些数据执行操作。 尽管量子计算仍处于起步阶段,但已经进行了一些实验,在这些实验中,量子计算操作是在非常少量的量子比特(量子二进制数字)上执行的。实践和理论研究都在继续进行,许多国家政府和军事资助机构支持量子计算研究,以开发用于民用和国家安全目的的量子计算机,例如密码分析。 如果可以建造大规模的量子计算机,它们将能够比我们目前的任何经典计算机(例如 Shor 算法)更快地解决某些问题。量子计算机不同于DNA计算机和基于晶体管的传统计算机等其他计算机。一些计算架构(例如光学计算机)可能会使用经典的电磁波叠加。如果没有一些特定的量子力学资源,例如纠缠,推测不可能超过经典计算机的指数优势。

如何对加密算法进行安全性证明?

电子工业出版社《密码学原理与实践》,Douglas.Stinson著

密码加密的几种方式

密码加密的方式:1、MD5是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(RonaldLinnRivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在RFC1321标准中被加以规范。2、对称加密,对称加密采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。3、非对称加密,与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。

一般网页中的用户名和登录密码在传输过程中是通过什么加密的?

户名和密码.是在数据库里加密的.你机子没木马就不怕了

对称加密方法和公开密钥算法有什么异同?

c. rsarsa算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

简述公开密钥加密具有的优点

  与对称密钥加密相比,优点在于无需共享的通用密钥,解密的私钥不发往任何用户。即使公钥在网上被截获,如果没有与其匹配的私钥,也无法解密,所截获的公钥是没有任何用处的。

DES加密算法原理

网络安全通信中要用到两类密码算法,一类是对称密码算法,另一类是非对称密码算法。对称密码算法有时又叫传统密码算法、秘密密钥算法或单密钥算法,非对称密码算法也叫公开密钥密码算法或双密钥算法。对称密码算法的加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。 对称算法又可分为两类。一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。现代计算机密码算法的典型分组长度为64位――这个长度既考虑到分析破译密码的难度,又考虑到使用的方便性。后来,随着破译能力的发展,分组长度又提高到128位或更长。 常用的采用对称密码术的加密方案有5个组成部分(如图所示) 1)明文:原始信息。 2)加密算法:以密钥为参数,对明文进行多种置换和转换的规则和步骤,变换结果为密文。 3)密钥:加密与解密算法的参数,直接影响对明文进行变换的结果。 4)密文:对明文进行变换的结果。 5)解密算法:加密算法的逆变换,以密文为输入、密钥为参数,变换结果为明文。 对称密码当中有几种常用到的数学运算。这些运算的共同目的就是把被加密的明文数码尽可能深地打乱,从而加大破译的难度。 ◆移位和循环移位   移位就是将一段数码按照规定的位数整体性地左移或右移。循环右移就是当右移时,把数码的最后的位移到数码的最前头,循环左移正相反。例如,对十进制数码12345678循环右移1位(十进制位)的结果为81234567,而循环左移1位的结果则为23456781。 ◆置换   就是将数码中的某一位的值根据置换表的规定,用另一位代替。它不像移位操作那样整齐有序,看上去杂乱无章。这正是加密所需,被经常应用。 ◆扩展   就是将一段数码扩展成比原来位数更长的数码。扩展方法有多种,例如,可以用置换的方法,以扩展置换表来规定扩展后的数码每一位的替代值。 ◆压缩   就是将一段数码压缩成比原来位数更短的数码。压缩方法有多种,例如,也可以用置换的方法,以表来规定压缩后的数码每一位的替代值。 ◆异或   这是一种二进制布尔代数运算。异或的数学符号为⊕ ,它的运算法则如下: 1⊕1 = 0 0⊕0 = 0 1⊕0 = 1 0⊕1 = 1   也可以简单地理解为,参与异或运算的两数位如相等,则结果为0,不等则为1。 ◆迭代   迭代就是多次重复相同的运算,这在密码算法中经常使用,以使得形成的密文更加难以破解。 下面我们将介绍一种流行的对称密码算法DES。 DES是Data Encryption Standard(数据加密标准)的缩写。它是由IBM公司研制的一种对称密码算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,三十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。 DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。它的密钥长度是56位(因为每个第8 位都用作奇偶校验),密钥可以是任意的56位的数,而且可以任意时候改变。其中有极少数被认为是易破解的弱密钥,但是很容易避开它们不用。所以保密性依赖于密钥。 DES加密的算法框架如下:   首先要生成一套加密密钥,从用户处取得一个64位长的密码口令,然后通过等分、移位、选取和迭代形成一套16个加密密钥,分别供每一轮运算中使用。 DES对64位(bit)的明文分组M进行操作,M经过一个初始置换IP,置换成m0。将m0明文分成左半部分和右半部分m0 = (L0,R0),各32位长。然后进行16轮完全相同的运算(迭代),这些运算被称为函数f,在每一轮运算过程中数据与相应的密钥结合。 在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作替代成新的48位数据,再将其压缩置换成32位。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次。 经过16轮迭代后,左,右半部分合在一起经过一个末置换(数据整理),这样就完成了加密过程。 加密流程如图所示。 DES解密过程:   在了解了加密过程中所有的代替、置换、异或和循环迭代之后,读者也许会认为,解密算法应该是加密的逆运算,与加密算法完全不同。恰恰相反,经过密码学家精心设计选择的各种操作,DES获得了一个非常有用的性质:加密和解密使用相同的算法! DES加密和解密唯一的不同是密钥的次序相反。如果各轮加密密钥分别是K1,K2,K3…K16,那么解密密钥就是K16,K15,K14…K1。这也就是DES被称为对称算法的理由吧。 至于对称密码为什么能对称? DES具体是如何操作的?本文附录中将做进一步介绍,有兴趣的读者不妨去读一读探个究竟 4.DES算法的安全性和发展   DES的安全性首先取决于密钥的长度。密钥越长,破译者利用穷举法搜索密钥的难度就越大。目前,根据当今计算机的处理速度和能力,56位长度的密钥已经能够被破解,而128位的密钥则被认为是安全的,但随着时间的推移,这个数字也迟早会被突破。 另外,对DES算法进行某种变型和改进也是提高DES算法安全性的途径。 例如后来演变出的3-DES算法使用了3个独立密钥进行三重DES加密,这就比DES大大提高了安全性。如果56位DES用穷举搜索来破译需要2∧56次运算,而3-DES 则需要2∧112次。 又如,独立子密钥DES由于每轮都使用不同的子密钥,这意味着其密钥长度在56位的基础上扩大到768位。DES还有DESX、CRYPT、GDES、RDES等变型。这些变型和改进的目的都是为了加大破译难度以及提高密码运算的效率

非对称加密中的公钥和私钥怎么来的

非对称加密的公钥和私钥是通过数学算法生成的。具体来说,非对称加密算法采用了一种基于数学问题的算法,这种算法的原理是利用一组相关的数学参数进行加密和解密操作。在这种算法中,公钥和私钥是一对密钥,它们是通过一种特殊的数学算法生成的。公钥是公开的,任何人都可以获得。私钥则是保密的,只有密钥持有者才能访问它。生成公钥和私钥的算法通常基于数学问题的难解性,例如质因数分解问题或离散对数问题。这些问题是难以在有限时间内解决的,因此就可以用它们来保证加密的安全性。在生成公钥和私钥的过程中,一般会生成两个较大的质数p和q,然后使用它们来计算得到公钥和私钥。这些计算包括了一些特定的算法和参数,使得公钥可以用来加密信息,但无法用来解密信息,只有对应的私钥才能进行解密操作。总之,非对称加密算法生成公钥和私钥的过程涉及到复杂的数学运算和算法,这些密钥对的建立是保证加密安全性的基础。

常见加密算法原理及概念

在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标: 而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方;接收方收到加密后的报文后,结合密钥和解密算法解密组合后得出原始数据。由于加解密算法是公开的,因此在这过程中,密钥的安全传递就成为了至关重要的事了。而密钥通常来说是通过双方协商,以物理的方式传递给对方,或者利用第三方平台传递给对方,一旦这过程出现了密钥泄露,不怀好意的人就能结合相应的算法拦截解密出其加密传输的内容。 对称加密算法拥有着算法公开、计算量小、加密速度和效率高得特定,但是也有着密钥单一、密钥管理困难等缺点。 常见的对称加密算法有: DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。 3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。 AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。 Blowfish:Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。 非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥才能解密,反之亦然。 下图为简单非对称加密算法的常见流程: 发送方Bob从接收方Alice获取其对应的公钥,并结合相应的非对称算法将明文加密后发送给Alice;Alice接收到加密的密文后,结合自己的私钥和非对称算法解密得到明文。这种简单的非对称加密算法的应用其安全性比对称加密算法来说要高,但是其不足之处在于无法确认公钥的来源合法性以及数据的完整性。 非对称加密算法具有安全性高、算法强度负复杂的优点,其缺点为加解密耗时长、速度慢,只适合对少量数据进行加密,其常见算法包括: RSA :RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。 DSA :数字签名算法,仅能用于签名,不能用于加解密。 DSS :数字签名标准,技能用于签名,也可以用于加解密。 ELGamal :利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。 单向加密算法常用于提取数据指纹,验证数据的完整性。发送者将明文通过单向加密算法加密生成定长的密文串,然后传递给接收方。接收方在收到加密的报文后进行解密,将解密获取到的明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后将之与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。常见的算法包括:MD5、sha1、sha224等等,其常见用途包括:数字摘要、数字签名等等。 密钥交换IKE(Internet Key Exchange)通常是指双方通过交换密钥来实现数据加密和解密,常见的密钥交换方式有下面两种: 1、公钥加密,将公钥加密后通过网络传输到对方进行解密,这种方式缺点在于具有很大的可能性被拦截破解,因此不常用; 2、Diffie-Hellman,DH算法是一种密钥交换算法,其既不用于加密,也不产生数字签名。DH算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。DH算法通过双方共有的参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,此结果即为密钥。 如: 在整个过程中,第三方人员只能获取p、g两个值,AB双方交换的是计算后的结果,因此这种方式是很安全的。 公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用于实现基于公钥密码机制的密钥和证书的生成、管理、存储、分发和撤销的功能,其组成包括:签证机构CA、注册机构RA、证书吊销列表CRL和证书存取库CB。 PKI采用证书管理公钥,通过第三方可信任CA中心,把用户的公钥和其他用户信息组生成证书,用于验证用户的身份。 公钥证书是以数字签名的方式声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务身份。公钥证书的生成遵循X.509协议的规定,其内容包括:证书名称、证书版本、序列号、算法标识、颁发者、有效期、有效起始日期、有效终止日期、公钥 、证书签名等等的内容。 CA证书认证的流程如下图,Bob为了向Alice证明自己是Bob和某个公钥是自己的,她便向一个Bob和Alice都信任的CA机构申请证书,Bob先自己生成了一对密钥对(私钥和公钥),把自己的私钥保存在自己电脑上,然后把公钥给CA申请证书,CA接受申请于是给Bob颁发了一个数字证书,证书中包含了Bob的那个公钥以及其它身份信息,当然,CA会计算这些信息的消息摘要并用自己的私钥加密消息摘要(数字签名)一并附在Bob的证书上,以此来证明这个证书就是CA自己颁发的。Alice得到Bob的证书后用CA的证书(自签署的)中的公钥来解密消息摘要,随后将摘要和Bob的公钥发送到CA服务器上进行核对。CA在接收到Alice的核对请求后,会根据Alice提供的信息核对Bob的证书是否合法,如果确认合法则回复Alice证书合法。Alice收到CA的确认回复后,再去使用从证书中获取的Bob的公钥加密邮件然后发送给Bob,Bob接收后再以自己的私钥进行解密。

简述公开密钥加密和私有密钥加密的区别

私有的就是只允许一个人用,就是需要帐号对应,公开加密只要知道密码就能用,取决于用途,不能比

目前常用的加密方法主要有两种是什么

网络上常用的是MD5

简述公开密钥加密具有的优点

公开密钥加密,有公开密钥的能加密也能解密私有密钥加密,公开密钥只能加密,解密要用私有密钥,公开密钥是由一个非营利组织保管的

解释公开密鈅加密和私有密鈅加密的区别。列举各自的优缺点。

楼上说的都不对所谓密钥一般是指rsa加密来说的。有两种方法1种叫对称密钥。加密和解密的密钥相同。优点是加密和解密速度快。缺点是不安全,需要绝对安全的密钥传递路线。且每次加密的密钥都不会相同,要求的素数对太多难以实现。第二种才是公开和私有密钥系统。公开密钥用来加密,但解密时需要有公开密钥和私有密钥同时使用才能解密。优点是实现简单,传递安全。但加密解密速度慢

公开密钥加密的过程

Asymmetric encryption system假设两个用户A,B进行通信,公钥为c,私钥为d,明文为x.1:A用公钥对明文进行加密形成密文c(x),然后传输密文;2:B收到密文,用私钥对密文进行解密d(c(x)),得到要通信的明文x。

简述公开密钥加密和私有密钥加密的区别

公开密钥加密,有公开密钥的能加密也能解密私有密钥加密,公开密钥只能加密,解密要用私有密钥,公开密钥是由一个非营利组织保管的

公开密钥加密与私人秘钥加密相比有那些优点?

很高兴为您回答公开密钥加密,有公开密钥的能加密也能解密私有密钥加密,公开密钥只能加密,解密要用私有密钥,公开密钥是由一个非营利组织保管的

公开密钥加密密钥的区别联系…在线等

公开密钥加密,有公开密钥的能加密也能解密私有密钥加密,公开密钥只能加密,解密要用私有密钥,公开密钥是由一个非营利组织保管的

公开密钥加密体制的含义是

根据百度百科资料显示,该体制的含义是将公开密钥公开,私有密钥保密。公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一种是由于对数字签名的需求。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

加密密钥是公开的,脱密密钥是保密的是什么意思

公开密钥密码体制是现代密码学的最重要的发明和进展。一般理解密码学(Cryptography)就是保护信息传递的机密性。 但这仅仅是当今密码学主题的一个方面。对信息发送与接收人的真实身份的验证、对所发出/接收信息在事后的不可抵赖以及保障数据的完整性是现代密码学主题的另一方面。   公开密钥密码体制对这两方面的问题都给出了出色的解答,并正在继续产生许多新的思想和方案。在公钥体制中,加密密钥不同于解密密钥。人们将加密密钥公之于众,谁都可以使用;而解密密钥只有解密人自己知道。迄今为止的所有公钥密码体系中,RSA系统是最著名、使用最广泛的一种。

急求!!“1024位的RSA 公开密钥加密算法 ”数据结构课程设计!高手解答啊!!

研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,密码学是研究编制密码和破译密码的技术科学。 密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。在西欧语文中之源於希腊语kryptós,“隐藏的”,和gráphein,“书写”)是研究如何隐密的传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:「密码学是关於如何在敌人存在的环境中通讯」,自工程学的角度,这相当于密码学与纯数学的异同。密码学是 信息安全等相关议题,如认证、访问控制的核心。密码学的首要目是隐藏信息的涵义,并不是将隐藏信息的存在。密码学也促进了计算机科学,特别是在於电脑与网路安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。非对称加密算法的核心就是加密密钥不等于解密密钥,且无法从任意一个密钥推导出另一个密钥,这样就大大加强了信息保护的力度,而且基于密钥对的原理很容易的实现数字签名和电子信封。 比较典型的非对称加密算法是RSA算法,它的数学原理是大素数的分解,密钥是成对出现的,一个为公钥,一个是私钥。公钥是公开的,可以用私钥去解公钥加密过的信息,也可以用公钥去解私钥加密过的信息。 比如A向B发送信息,由于B的公钥是公开的,那么A用B的公钥对信息进行加密,发送出去,因为只有B有对应的私钥,所以信息只能为B所读取。 牢固的RSA算法需要其密钥长度为1024位,加解密的速度比较慢是它的弱点。 另外一种比较典型的非对称加密算法是ECC算法,基于的数学原理是椭圆曲线离散对数系统,这种算法的标准我国尚未确定,但是其只需要192 bit 就可以实现牢固的加密。所以,应该是优于RSA算法的。对于加密,基本上不存在一个完全不可以被破解的加密算法,因为只要你有足够的时间,完全可以用穷举法来进行试探,如果说一个加密算法是牢固的,一般就是指在现有的计算条件下,需要花费相当长的时间才能够穷举成功(比如100年)RSA加密演算法是一种非对称加密演算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相应的算法,但他的发现被列入机密,一直到1997年未被发表。RSA算法的可靠性基于分解极大的整数是很困难的。假如有人找到一种很快的分解因子的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2004年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。 -------------------------------------------------------------------------RSA加密算法该算法于1977年由美国麻省理工学院MIT(Massachusetts Institute of Technology)的Ronal Rivest,Adi Shamir和Len Adleman三位年轻教授提出,并以三人的姓氏Rivest,Shamir和Adlernan命名为RSA算法。该算法利用了数论领域的一个事实,那就是虽然把两个大质数相乘生成一个合数是件十分容易的事情,但要把一个合数分解为两个质数却十分困难。合数分解问题目前仍然是数学领域尚未解决的一大难题,至今没有任何高效的分解方法。与Diffie-Hellman算法相比,RSA算法具有明显的优越性,因为它无须收发双方同时参与加密过程,且非常适合于电子函件系统的加密。RSA算法可以表述如下:(1) 密钥配制。假设m是想要传送的报文,现任选两个很大的质数p与q,使得:(12-1);选择正整数e,使得e与(p-1)(q-1)互质;这里(p-1)(q-1)表示二者相乘。再利用辗转相除法,求得d,使得:(12-2);其中x mod y是整数求余运算,其结果是x整除以y后剩余的余数,如5 mod 3 = 2。这样得:(e,n),是用于加密的公共密钥,可以公开出去;以及(d,n),是用于解密的专用钥匙,必须保密。(2) 加密过程。使用(e,n)对明文m进行加密,算法为:(12-3);这里的c即是m加密后的密文。(3) 解密过程。使用(d,n)对密文c进行解密,算法为:(12-4);求得的m即为对应于密文c的明文。RSA算法实现起来十分简捷,据说英国的一位程序员只用了3行Perl程序便实现了加密和解密运算。RSA算法建立在正整数求余运算基础之上,同时还保持了指数运算的性质,这一点我们不难证明。例如:(12-5);(12-6)。RSA公共密钥加密算法的核心是欧拉(Euler)函数ψ。对于正整数n,ψ(n)定义为小于n且与n互质的正整数的个数。例如ψ(6) = 2,这是因为小于6且与6互质的数有1和5共两个数;再如ψ(7) = 6,这是因为互质数有1,2,3,5,6共6个。欧拉在公元前300多年就发现了ψ函数的一个十分有趣的性质,那就是对于任意小于n且与n互质的正整数m,总有mψ(n) mod n = 1。例如,5ψ(6) mod 6 = 52 mod 6= 25 mod 6 =1。也就是说,在对n求余的运算下,ψ(n)指数具有周期性。当n很小时,计算ψ(n)并不难,使用穷举法即可求出;但当n很大时,计算ψ(n)就十分困难了,其运算量与判断n是否为质数的情况相当。不过在特殊情况下,利用ψ函数的两个性质,可以极大地减少运算量。性质1:如果p是质数,则ψ(p) = (p-1)。性质2:如果p与q均为质数,则ψ(p·q) = ψ(p)·ψ(q) = (p-1)(q-1)。RSA算法正是注意到这两条性质来设计公共密钥加密系统的,p与q的乘积n可以作为公共密钥公布出来,而n的因子p和q则包含在专用密钥中,可以用来解密。如果解密需要用到ψ(n),收信方由于知道因子p和q,可以方便地算出ψ(n) = (p-1)(q-1)。如果窃听者窃得了n,但由于不知道它的因子p与q,则很难求出ψ(n)。这时,窃听者要么强行算出ψ(n),要么对n进行因数分解求得p与q。然而,我们知道,在大数范围内作合数分解是十分困难的,因此窃密者很难成功。有了关于ψ函数的认识,我们再来分析RSA算法的工作原理:(1) 密钥配制。设m是要加密的信息,任选两个大质数p与q,使得 ;选择正整数e,使得e与ψ(n) = (p-1)(q-1)互质。利用辗转相除法,计算d,使得ed mod ψ(n) = ,即ed = kψ(n) +1,其中k为某一正整数。公共密钥为(e,n),其中没有包含任何有关n的因子p和q的信息。专用密钥为(d,n),其中d隐含有因子p和q的信息。(2) 加密过程。使用公式(12-3)对明文m进行加密,得密文c。(3) 解密过程。使用(d,n)对密文c进行解密,计算过程为:cd mod n = (me mod n)d mod n= med mod n = m(kψ(n) + 1) mod n= (mkψ(n) mod n)·(m mod n)= mm即为从密文c中恢复出来的明文。例如,假设我们需要加密的明文代码信息为m = 14,则:选择e = 3,p = 5,q = 11;计算出n = p·q = 55,(p-1)(q-1) = 40,d = 27;可以验证:(e·d) mod (p-1)(q-1) = 81 mod 40 = 1;加密:c = me mod n = 143 mod 55 = 49;解密:m = cd mod n = 4927 mod 55 = 14。关于RSA算法,还有几点需要进一步说明:(1) 之所以要求e与(p-1)(q-1)互质,是为了保证 ed mod (p-1)(q-1)有解。(2) 实际操作时,通常先选定e,再找出并确定质数p和q,使得计算出d后它们能满足公式(12-3)。常用的e有3和65537,这两个数都是费马序列中的数。费马序列是以17世纪法国数学家费马命名的序列。(3) 破密者主要通过将n分解成p·q的办法来解密,不过目前还没有办法证明这是唯一的办法,也可能有更有效的方法,因为因数分解问题毕竟是一个不断发展的领域,自从RSA算法发明以来,人们已经发现了不少有效的因数分解方法,在一定程度上降低了破译RSA算法的难度,但至今还没有出现动摇RSA算法根基的方法。(4) 在RSA算法中,n的长度是控制该算法可靠性的重要因素。目前129位、甚至155位的RSA加密勉强可解,但目前大多数加密程序均采用231、308甚至616位的RSA算法,因此RSA加密还是相当安全的。据专家测算,攻破512位密钥RSA算法大约需要8个月时间;而一个768位密钥RSA算法在2004年之前无法攻破。现在,在技术上还无法预测攻破具有2048位密钥的RSA加密算法需要多少时间。美国Lotus公司悬赏1亿美元,奖励能破译其Domino产品中1024位密钥的RSA算法的人。从这个意义上说,遵照SET协议开发的电子商务系统是绝对安全的。

简要说说对称加密和非对称加密的原理以及区别是什么

对称加密的原理是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。非对称加密的原理是甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。一、密钥不同1、对称加密:对称加密加密和解密使用同一个密钥。2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。二、安全性不同1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。三、数字签名不同1、对称加密:对称加密不可以用于数字签名和数字鉴别。2、非对称加密:非对称加密可以用于数字签名和数字鉴别。

公开密钥加密技术的介绍

l976年,Diffie和Hellman首次提非对称加密出公开密钥加密体制,即每个人都有一对密钥,其中一个为公开的,一个为私有的。

简述公开密钥加密和私有密钥加密的区别

公开密钥加密,有公开密钥的能加密也能解密私有密钥加密,公开密钥只能加密,解密要用私有密钥,公开密钥是由一个非营利组织保管的

采用公开密钥加密技术,公开密钥和私有密钥可以互相推导吗?

在公开密钥加密技术中,公钥和私钥是成对生成的,但它们通常是通过数学算法生成的,而不是通过互相推导得出的。在典型的公开密钥加密算法(如RSA)中,公钥和私钥是通过密钥对生成算法生成的。公钥用于加密数据,私钥用于解密数据。这些密钥对是根据特定的数学原理和算法生成的,它们之间存在数学上的关联,但不能简单地通过一个密钥来推导出另一个密钥。通常,生成密钥对的算法会利用大数分解等数学问题的难解性,确保私钥无法通过公钥进行推导或计算得出。这种数学问题的复杂性是保证公开密钥加密的安全性的基础。因此,公开密钥和私有密钥通常不能互相推导,它们是通过特定的算法生成的配对,其中一个用于加密,另一个用于解密。

公开密钥加密的简介

公开密钥加密也称为非对称密钥加密,该加密算法使用两个不同的密钥:加密密钥和解密密钥。前者公开,又称公开密钥,简称公钥。后者保密,又称私有密钥,简称私钥。这两个密钥是数学相关的,用某用户加密密钥加密后所得的信息只能用该用户的解密密钥才能解密。RSA算法(由发明者Rivest,Shmir和Adleman姓氏首字母缩写而来)是著名的公开密钥加密算法。公钥加密的另一用途是身份验证:用私钥加密的信息,可以用公钥拷贝对其解密,接收者由此可知这条信息确实来自于拥有私钥的某人。公钥的形式就是数字证书。

公开密钥加密技术

谈起密码算法,有的人会觉得陌生,但一提起PGP,大多数网上朋友都很熟悉,它是一个工具软件,向认证中心注册后就可以用它对文件进行加解密或数字签名,PGP所采用的是RSA算法,以后我们会对它展开讨论。密码算法的目的是为了保护信息的保密性、完整性和安全性,简单地说就是信息的防伪造与防窃取,这一点在网上付费系统中特别有意义。密码学的鼻祖可以说是信息论的创始人香农,他提出了一些概念和基本理论,论证了只有一种密码算法是理论上不可解的,那就是 One Time Padding,这种算法要求采用一个随机的二进制序列作为密钥,与待加密的二进制序列按位异或,其中密钥的长度不小于待加密的二进制序列的长度,而且一个密钥只能使用一次。其它算法都是理论上可解的。如DES算法,其密钥实际长度是56比特,作2^56次穷举,就肯定能找到加密使用的密钥。所以采用的密码算法做到事实上不可解就可以了,当一个密码算法已知的破解算法的时间复杂度是指数级时,称该算法为事实上不可解的。顺便说一下,据报道国外有人只用七个半小时成功破解了DES算法。密码学在不断发展变化之中,因为人类的计算能力也像摩尔定律提到的一样飞速发展。作为第一部分,首先谈一下密码算法的概念。 密码算法可以看作是一个复杂的函数变换,C = F M, Key ),C代表密文,即加密后得到的字符序列,M代表明文即待加密的字符序列,Key表示密钥,是秘密选定的一个字符序列。密码学的一个原则是“一切秘密寓于密钥之中”,算法可以公开。当加密完成后,可以将密文通过不安全渠道送给收信人,只有拥有解密密钥的收信人可以对密文进行解密即反变换得到明文,密钥的传递必须通过安全渠道。目前流行的密码算法主要有DESRSA,IDEA,DSA等,还有新近的Liu氏算法,是由华人刘尊全发明的。密码算法可分为传统密码算法和现代密码算法,传统密码算法的特点是加密和解密必须是同一密钥,如DES和IDEA等;现代密码算法将加密密钥与解密密钥区分开来,且由加密密钥事实上求不出解密密钥。这样一个实体只需公开其加密密钥(称公钥,解密密钥称私钥)即可,实体之间就可以进行秘密通信,而不象传统密码算法似的在通信之前先得秘密传递密钥,其中妙处一想便知。因此传统密码算法又称对称密码算法(Symmetric Cryptographic Algorithms ),现代密码算法称非对称密码算法或公钥密码算法( Public-Key Cryptographic Algorithms ),是由Diffie 和Hellman首先在1976年的美国国家计算机会议上提出这一概念的。按照加密时对明文的处理方式,密码算法又可分为分组密码算法和序列密码算法。分组密码算法是把密文分成等长的组分别加密,序列密码算法是一个比特一个比特地处理,用已知的密钥随机序列与明文按位异或。当然当分组长度为1时,二者混为一谈。这些算法以后我们都会具体讨论。 RSA算法 1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。 RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 密钥对的产生。选择两个大素数,p 和q 。计算: n = p * q 然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用Euclid 算法计算解密密钥d, 满足 e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) ) 其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。 加密信息 m(二进制表示)时,首先把m分成等长数据块 m1 ,m2,..., mi ,块长s,其中 2^s <= n, s 尽可能的大。对应的密文是: ci = mi^e ( mod n ) ( a ) 解密时作如下计算: mi = ci^d ( mod n ) ( b ) RSA 可用于数字签名,方案是用 ( a ) 式签名, ( b )式验证。具体操作时考虑到安全性和 m信息量较大等因素,一般是先作 HASH 运算。 RSA 的安全性。 RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 RSA就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。 RSA的速度。 由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。 RSA的选择密文攻击。 RSA在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构: ( XM )^d = X^d *M^d mod n 前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。在中提到了几种不同类型的攻击方法。 RSA的公共模数攻击。 若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则: C1 = P^e1 mod n C2 = P^e2 mod n 密码分析者知道n、e1、e2、C1和C2,就能得到P。 因为e1和e2互质,故用Euclidean算法能找到r和s,满足: r * e1 + s * e2 = 1 假设r为负数,需再用Euclidean算法计算C1^(-1),则 ( C1^(-1) )^(-r) * C2^s = P mod n 另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和d,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e"和d",而无需分解模数。解决办法只有一个,那就是不要共享模数n。 RSA的小指数攻击。 有一种提高RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有所提高。但这样作是不安全的,对付办法就是e和d都取较大的值。 RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。 RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。 DSS/DSA算法 Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(Digital SignatureStandard)。算法中应用了下述参数: p:L bits长的素数。L是64的倍数,范围是512到1024; q:p - 1的160bits的素因子; g:g = h^((p-1)/q) mod p,h满足h < p - 1, h^((p-1)/q) mod p > 1; x:x < q,x为私钥 ; y:y = g^x mod p ,( p, q, g, y )为公钥; H( x ):One-Way Hash函数。DSS中选用SHA( Secure Hash Algorithm )。 p, q, g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。签名及验证协议如下: 1. P产生随机数k,k < q; 2. P计算 r = ( g^k mod p ) mod q s = ( k^(-1) (H(m) + xr)) mod q 签名结果是( m, r, s )。 3. 验证时计算 w = s^(-1)mod q u1 = ( H( m ) * w ) mod q u2 = ( r * w ) mod q v = (( g^u1 * y^u2 ) mod p ) mod q 若v = r,则认为签名有效。 DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却作不到

公开密钥加密技术的产生原因

公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制分配 (distribution)问题,另一是由于对数字签名的需求。 公钥方法是一种与过去所有密码编码学截然不同的方法。公钥用于:密钥分配、机密性和认证。在公开密钥密码体制中,加密密码(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。 虽然秘密密钥SK是由公开密钥PK决定的,但根据当前计算机发展情况很难根据PK计算出SK,也就是说算法复杂度很大。

公开密钥加密体制的含义

公开密钥加密体制是一种加密技术,由两个相关的密钥组成:公钥和私钥。公钥用于加密数据,私钥用于解密数据。公钥可以公开给任何人,而私钥则只能由密钥的所有者持有和使用。公开密钥加密体制的核心思想是通过使用不同但相关的密钥对来实现数据的安全传输和保护。发送者使用接收者的公钥对数据进行加密,然后发送给接收者。接收者使用自己的私钥解密数据,以获取原始信息。这种体制的关键在于公钥是公开的,因此任何人都可以使用公钥对数据进行加密,但只有密钥的所有者才能解密数据。这使得公开密钥加密体制成为一种安全可靠的方式,用于保护敏感信息的传输和存储。

客户端和服务器不支持常用的 SSL 协议版本或加密套件。导致此问题的原因通常是服务器要求使用 SSLv3

禁用ssl1.ssl2,开启ssl3.网站发来看看。

用了SSL证书,如何抓包查看是否成功加密传输

1、如果网站已经增加了HTTPS,那么您需要确定HTTP跳转HTTPS,使用的是301方式跳转,请勿使用302跳转,这样可以确保搜索引擎正常收录。2、正确使用HTTPS确保符合浏览器高标准的信任,这种情况下,国内百度搜索引擎,需要登陆百度站长去提交,提交支持HTTPS即可。3、HTTPS抓包是与HTTP原理是一样的,除非您的证书不备信任,那么抓包也就无法访问了,所以证书很重要!https抓包的原理就是抓包程序将服务器返回的证书截获 然后给客户端返回一个它自己的证书 客户端发送的数据抓包程序用自己的证书解密,然后再用截获的证书加密,再发给服务器 所以你在能看到明文。密文是针对https两端以外其他路径而言,你作为https链接的两端,当然可以看到明文 技术一点来说,TLS协议是在tcp协议之上的,tcp又是基于IP协议的。所以无论如何,你的对端IP地址是肯定无法加密的。 换个角度来看,假如你把对端ip都加密了,路由器怎么办?你的数据根本无法在网络上转发。另外TLS协议也只是把HTTP层的数据加密了,所以也只是无法看到HTTP传输的内容,但是其他协议层的内容还是明文传输的。

https就是带加密的http协议对吗

可以这样理解,在这个基础加了数字证书。

全站HTTPS能带来怎样的优势?HTTPS原理是什么,如何加密

全站https会带来以下优势:1、全网站加https会更安全https的主要功能之一是确保数据在传输的过程中被加密,只有相应的服务器或用户浏览器接收时才能被解密,避免了被第三方拦截和篡改。https还有另外一个功能是提供可信的服务器认证,这是一套黑客不能随意篡改的认证信息,使相关用户确定他们正在与正确的服务器通信。如果没有全网站加https,会导致一些页面为https,而一些也页面则还是http,当通过http或不安全的baiCDN服务加载其他资源(例如JS或CSS文件)时,网站也存在用户信息被泄露的风险,而全网站https是防止这种风险最简单且有效的方法。2、帮用户识别钓鱼网站上面提到了https可以进行服务器认证,当服务器的真实身份得到认证之后可以有效的区别于钓鱼网站。全网站加https后,浏览器则会内置安全机制,实时查验证书状态,通过浏览器向用户展示网站的认证信息,让用户能够轻松识别网站的真实身份,防止误入钓鱼、仿冒网站。3、对搜索引擎更友好当网站存在https和http两种协议时,需要以https这http两种方式管理整个网站,并且需要仔细、精确的控制重定向。网站很容易在两个协议中被一个或多个网页解析,导致搜索引擎抓取和索引出单个网页的两个版本,从而导致网页的搜索可见性降低(因为搜索引擎会认为这两个网页相互竞争)。即使没有这种风险,搜索引擎有时会索引某些错误协议的网页,从而对点击进入的用户进行不必要的重定向,反而对服务器造成了不必要的压力,稀释了搜索权限并会减慢网页加载速度。

全站HTTPS能带来怎样的优势?HTTPS原理是什么,如何加密

HTTPS的主要好处之一是它增加了安全性和信任。它可以保护用户免受可以从受损或不安全的网络发起的中间人(MitM)攻击。黑客可以使用此类技术窃取您客户的敏感信息。

ssl用哪些加密算法,认证机制

要知道算法跟机制做什么先?虽然不太清楚你的意图,不过如果想做ssl数字证书,可以找NICE BOX做,收费便宜,也能省事。

什么是SSL加密技术???

SSL代表安全套接字层,简而言之,它是一种标准技术,用于保持互联网连接安全并保护在两个系统之间发送的任何敏感数据,防止犯罪分子读取和修改任何传输的信息,包括潜在的个人详细信息。

HTTPS加密原理

HTTP、HTTPS在我们日常开发中是经常会接触到的。 我们也都知道,一般 Android 应用开发,在请求 API 网络接口的时候,很多使用的都是 HTTP 协议;使用浏览器打开网页,也是利用 HTTP 协议。看来 HTTP 真是使用广泛啊,但是,HTTP 是不安全的。利用网络抓包工具就可以知道传输中的内容,一览无余。比如我经常会使用 Fiddler 来抓包,搜集一些有趣的 API 接口。 那么问题来了,如何保证 HTTP 的安全性呢?基本上所有的人都会脱口而出:使用 HTTPS 协议。99.9% 的人都知道 HTTPS 会将传输的内容进行加密,但是接着问具体加密的过程和步骤,很多人就哑口无言了。 为了防止出现这种尴尬的局面,所以今天你就要好好看看这篇的内容了。以后就可以装个逼,哈哈! 先科普一下,加密算法的类型基本上分为了两种: 对称加密的意思就是说双方都有一个共同的密钥,然后通过这个密钥完成加密和解密,这种加密方式速度快,但是安全性不如非对称加密好。 举个例子,现在学霸小明这里有一道数学题的答案:123 。他想把答案传给自己一直暗恋的小红。所以他们双方在考试开考前,约定了一把密钥:456 。那么小明就把答案内容经过密钥加密,即 123 + 456 = 579 ,将 579 写在小纸条上扔给小红。如果此时别人捡到了小纸条,不知道他们是加密传输的,看到上面的 579 ,会误以为答案就是 579 ;如果是小红捡到了,她拿出密钥解密,579 - 456 = 123 ,得到了正确的答案。 这就是所谓的对称加密,加解密效率高,速度快,但是双方任何一方不小心泄露了密钥,那么任何人都可以知道传输内容了。 讲完了对称加密,我们看看啥是非对称加密。 非对称加密就是有两把密钥,公钥和私钥。私钥自己藏着,不告诉任何人;而公钥可以公开给别人。 经过了上次作弊后,小红发现了对称加密如果密钥泄露是一件可怕的事情。所以她和小明决定使用非对称加密。小红生成了一对公钥和私钥,然后把公钥公开,小明就得到了公钥。小明拿到公钥后,把答案经过公钥加密,然后传输给小红,小红再利用自己的私钥进行解密,得到答案结果。如果在这个过程中,其他人得到传输的内容,而他们只有小红公钥,是没有办法进行解密的,所以也就得不到答案,只有小红一个人可以解密。 因此,相比较对称加密而言,非对称加密安全性更高,但是加解密耗费的时间更长,速度慢。 对称加密和非对称加密的具体应用我还是深有体会的,因为所在的公司是做金融支付方面的,所以加解密基本上算是天天见了。 说完加密类型后,我们再来看看 HTTPS 。 我们先来看一个公式: HTTPS = HTTP + SSL 从这个公式中可以看出,HTTPS 和 HTTP 就差在了 SSL 上。所以我们可以猜到,HTTPS 的加密就是在 SSL 中完成的。 所以我们的目的就是要搞懂在 SSL 中究竟干了什么见不得人的事了? 这就要从 CA 证书讲起了。CA 证书其实就是数字证书,是由 CA 机构颁发的。至于 CA 机构的权威性,那么是毋庸置疑的,所有人都是信任它的。CA 证书内一般会包含以下内容: 正好我们把客户端如何校验 CA 证书的步骤说下吧。 CA 证书中的 Hash 值,其实是用证书的私钥进行加密后的值(证书的私钥不在 CA 证书中)。然后客户端得到证书后,利用证书中的公钥去解密该 Hash 值,得到 Hash-a ;然后再利用证书内的签名 Hash 算法去生成一个 Hash-b 。最后比较 Hash-a 和 Hash-b 这两个的值。如果相等,那么证明了该证书是对的,服务端是可以被信任的;如果不相等,那么就说明该证书是错误的,可能被篡改了,浏览器会给出相关提示,无法建立起 HTTPS 连接。除此之外,还会校验 CA 证书的有效时间和域名匹配等。 接下来我们就来详细讲一下 HTTPS 中的 SSL 握手建立过程,假设现在有客户端 A 和服务器 B : 到此,SSL 握手过程就讲完了。可能上面的流程太过于复杂,我们简单地来讲: 我们可以发现,在 HTTPS 加密原理的过程中把对称加密和非对称加密都利用了起来。即利用了非对称加密安全性高的特点,又利用了对称加密速度快,效率高的好处。真的是设计得非常精妙,令人赞不绝口。 好了,HTTPS 加密原理到这就讲的差不多了,不知道电脑前的你有没有看懂呢? 如果有哪里不明白的地方,可以在底下留言交流。 bye ~~

全站HTTPS能带来怎样的优势?HTTPS原理是什么,如何加密

1、加密用户会话SSL 加密在Internet 中传输敏感信息,确保只有目标接收方能够理解相关信息。2、辅助身份验证如果服务器包含SSL 证书,用户可以放心,敏感数据仅供安全的服务器使用,不会落入不法分子手中。3、防范钓鱼攻击钓鱼和“鱼叉式捕鱼”电子邮件一般含有恶意链接,引诱疏于防备的用户访问克隆网站。如果在用户连接到虚假网站时出现“不受信任的证书颁发机构”消息,大部分用户会关闭虚假网站,不会出现泄露机密信息的情况。4、提升客户信任度重视安全的消费者和企业客户认为在电子商务中有SSL 保护的Internet 更加可靠。为此,Google 进行了一项改进它,决定在其搜索引擎中采用 SSL/HTTPS 作为网站排名因素,加密网站将比非加密网站获得更高的排名。SSL加密在国外应用广泛,几乎80%的站点都进行了SSL加密。在国内,仅仅在网上银行、电子商城、金融证券、移动支付领域应用较多。5、目前百度搜索引擎、360搜索、搜狗优先收录HTTPS网站。

SSL工作原理,SSL加密原理,SSL证书怎么加密

SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。因特网的 超文本传输协议(HTTP)使用 SSL 来实现安全的通信。在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。SSL 协议的版本 1 和 2 只提供服务器认证。版本 3 添加了客户端认证,此认证同时需要客户端和服务器的数字证书。

SSL工作原理,SSL加密原理,SSL证书怎么加密

SSL证书的工作原理:①客户端向服务器请求HTTPS连接客户端向服务器传送客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。②服务器确认并返回证书服务器向客户端传送SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。③客户端验证服务器发来的证书客户端利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果验证通过,将继续进行。④信息验证通过,客户端生成随机密钥A,用公钥加密后发给服务器从第③步验证过的证书里面可以拿到服务器的公钥,客户端生成的随机密钥就使用这个公钥来加密,加密之后,只有拥有该服务器(持有私钥)才能解密出来,保证安全。⑤服务器用私钥解密出随机密钥A,以后通信就用这个随机密钥A来对通信进行加密这个握手过程并没有将验证客户端身份的逻辑加进去。因为在大多数的情况下,HTTPS只是验证服务器的身份而已。如果要验证客户端的身份,需要客户端拥有证书,在握手时发送证书,而这个证书是需要成本的。

卫星电视加密的原理

太高深了,说的完你也理解不了,还是找一本相关的知识书籍学习一下。
 首页 上一页  1 2 3 4 5 6 7  下一页  尾页