搜档网
当前位置:搜档网 › 非对称密钥加密

非对称密钥加密

非对称密钥加密
非对称密钥加密

<2> 非对称密钥加密又叫作公开密钥加密算法。在非对称加密体系中,密钥被分解为一对(即一把公开密钥或加密密钥和一把私有密钥或解密密钥)。这对密钥中的任何一把都可作为公开密钥(加密密钥)通过非保密方式向他人公开,而另一把则作为私有密钥(解密密钥)加以保存。公开密钥用于对机密性信息的加密,私有密钥则用于对加密信息的解密。私有密钥只能由生成密钥对的用户掌握,公开密钥可广泛发布,但它只对应于生成该密钥的用户。公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。使用公开密钥技术,数据通信的双方可以安全的确认对方的身份和公开密钥。非对称密钥加密算法主要有RSA、PGP等。

----数据加密技术可以分为三类,即对称型加密、不对称型加密和不可逆加密。

----对称型加密使用单个密钥对数据进行加密或解密,其特点是计算量小、加密效率高。但是此类算法在分布式系统上使用较为困难,主要是密钥管理困难,使用成本较高,保安性能也不易保证。这类算法的代表是在计算机专网系统中广泛使用的DES(Digital Encryption Standard)算法。

----不对称型加密算法也称公用密钥算法,其特点是有二个密钥(即公用密钥和私有密钥),只有二者搭配使用才能完成加密和解密的全过程。由于不对称算法拥有两个密钥,它特别适用于分布式系统中的数据加密,在Internet中得到了广泛应用。其中公用密钥在网上公布,为数据源对数据加密使用,而用于解密的相应私有密钥则由数据的收信方妥善保管。

----不对称加密的另一用法称为“数字签名(Digital signature)”,即数据源使用其密钥对数据的校验和(Check Sum)或其他与数据内容有关的变量进行加密,而数据接收方则用相应的公用密钥解读“数字签名”,并将解读结果用于对数据完整性的检验。在网络系统中得到应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA算法(Digital Signature Algorithm)。不对称加密法在分布式系统中应用时需注意的问题是如何管理和确认公用密钥的合法性。

2、对称性加密和非对称性加密

根据密钥技术的不同,可分为对称加密和非对称加密两种方法;对称加密是指用单一的密钥对明文进行加密,同时必须用该密钥对密文进行解密,加密和解密双方必须知道该密钥。非对称加密技术又称公共密钥技术,密钥成对存在,分别称为私有密钥(private key)和公共密钥(public key);在加密过程采用公共密钥,在解密过程采用私有密钥。

由此可以看出,非对称性加密技术使密钥更加安全,一般用于对密钥进行管理;但是非对称加密技术速度很慢,在数据传输过程中的加密一般采用对称加密算法。

对于VPN网关产品来说,因为非对称加密算法太慢,所以一般采用对称加密算法进行数据传输加密。

3、数据加密强度和加密算法

为了衡量数据加密的安全程度,通常使用数据加密强度来说明数据的安全程度,例如,加密强度为56bit 位、加密强度为128bit位等等。常用的加密算法有DES(Data Encryption Standard)、3DES、Blowfish、Idea (International Data Encryption Algorithm)等,其中DES是56BIT加密算法,3DES是168位加密算法,Blowfish和Idea是128位加密算法。

其中,DES是历史最悠久的标准加密算法,但随着解密技术的发展,事实证明56位DES已不是安全的解密算法,在互联网上曾经用上万台机器、几周的时间对DES成功破解,所以现在一个安全的加密算法至少是128位的。

什么是非对称加密技术

1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。

到底为什么我们需要这个笨重、复杂、缓慢的加密算法,在我们有了DES这样的高速算法的时候?

设想你的朋友需要发送一些非常重要、非常机密的信息给你,而你跟外界的每一条通路都被监听了。那还不简单,你的朋友用DES对信息加密后传送给你不就行了,没有密钥,就算被人监听,他也不知道什么意思呀。可是问题在于你也需要密钥才能查看这些信息!你必须要知道你的朋友给信息加密的密钥才能完成对信息的接收!而你的朋友是没有一种安全的方法传递密钥给你的。如果说经常跟你通信的朋友还可以事先跟你约定好密钥,那么Internet上那么多人和机构是没有办法跟你事先就约定好的。公开密钥系统(也就是非对称加密系统)的作用就在于,此时,你可以先将加密密钥正常传送给你的朋友,让你的朋友用这个加密密钥对信息进行加密后传送给你,然后你再用解密密钥恢复信息的明文进行阅读,在这个过程中解密密钥不会以任何形式传送,只掌握在你的手中,也就是说你的朋友对信息加密后,他自己也没办法再解开进行验证。监听者得到了加密密钥,却无法得出解密密钥,也就无法查看信息的明文。

加密密钥和解密密钥是相对的说法,如果用加密密钥加密那么只有解密密钥才能恢复,如果用解密密钥加密则只有加密密钥能解密,所以它们被称为密钥对,其中的一个可以在网络上发送、公布,叫做公钥,而另一个则只有密钥对的所有人才持有,叫做私钥,非对称公开密钥系统又叫做公钥系统,是我们现代金融业的基石。

非对称加密技术

1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

贸易方利用该非对称加密算法实现机密信息交换的基本过程是:贸易方甲生成一对密钥并将其中的一把作为公用密钥向其他贸易方公开;得到该公用密钥的贸易方乙使用该密钥对机密信息进行加密后再

发送给贸易方甲;贸易方甲再用自己保存的另一把专用密钥对加密后的信息进行解密。贸易方甲只能用其专用密钥解密由其公用密钥加密后的任何信息。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。

在微软的Window NT的安全性体系结构中,公开密钥系统主要用于对私有密钥的加密过程。每个用户如果想要对数据进行加密,都需要生成一对自己的密钥对(keypair)。密钥对中的公开密钥和非对称加密解密算法是公开的,但私有密钥则应该由密钥的主人妥善保管。

使用公开密钥对文件进行加密传输的实际过程包括四步:

(1)发送方生成一个自己的私有密钥并用接收方的公开密钥对自己的私有密钥进行加密,然后通过网络传输到接收方;

(2)发送方对需要传输的文件用自己的私有密钥进行加密,然后通过网络把加密后的文件传输到接收方;

(3)接收方用自己的公开密钥进行解密后得到发送方的私有密钥;

(4)接受方用发送方的私有密钥对文件进行解密得到文件的明文形式。

因为只有接收方才拥有自己的公开密钥,所以即使其他人得到了经过加密的发送方的私有密钥,也因为无法进行解密而保证了私有密钥的安全性,从而也保证了传输文件的安全性。实际上,上述在文件传输过程中实现了两个加密解密过程:文件本身的加密和解密与私有密钥的加密解密,这分别通过私有密钥和公开密钥来实现。

非对称加密算法

非对称(或者公钥)加密也使用一种算法和密钥将明文转换成密文。区别在于它使用不同的解密密钥,因此也命名为非对称。

解密(私有)密钥和加密(公有)密钥是彼此相关的,但前者不能从后者派生出来。因此,加密密钥不需要保密,甚至可以公开。然而,公钥的用户需要信任给定的密钥确实属于特定的所有者。这个问题通过验证的过程得到解决(在本章的后面进行描述)。安全性在于保密私钥。

非对称密钥可以从一个集(拥有该非对称算法所特有的属性)中进行随机选择,因此,两个用户不可能生成相同的密钥。密钥大小一般是512 - 4096 位。非对称加密算法(如RSA)在密钥交换协议和混合加密系统中加密对称密钥。

非对称签名算法

也可以将非对称密钥之间的单向关系逆转,以对带有私钥的数据进行签名,并验证带有公钥的签名。这是因为该签名只可能使用它的相关私有密钥才能生成。非对称密钥用于数字签名和Challenge-Response(质询-响应)验证。常见的非对称算法包括RSA 和数字签名算法(Digital Signature Algorithm,DSA)。

非对称密钥交换

如果给定了两个私有-公共密钥对,一些公钥算法(特别是Diffie-Hellman)就可以直接生成共享机密。这与通过使用非对称加密算法进行保护来交换先前生成的机密形成对比。

对于非对称密钥,它们是从一个集(拥有该非对称算法所特有的属性)中进行随机选择的,因此,两个用户不可能生成相同的密钥。密钥大小一般是512 - 4096 位。

<2> 非对称密钥加密又叫作公开密钥加密算法。在非对称加密体系中,

密钥被分解为一对(即一把公开密钥或加密密钥和一把私有密钥或解密密

钥)。这对密钥中的任何一把都可作为公开密钥(加密密钥)通过非保密方式向

他人公开,而另一把则作为私有密钥(解密密钥)加以保存。公开密钥用于对机

密性信息的加密,私有密钥则用于对加密信息的解密。私有密钥只能由生成

密钥对的用户掌握,公开密钥可广泛发布,但它只对应于生成该密钥的用户。

公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。

使用公开密钥技术,数据通信的双方可以安全的确认对方的身份和公开密

钥。非对称密钥加密算法主要有RSA、PGP等。

密码学对称加密算法

对称加密算法 一、网络安全 1.网络安全 (1) 网络的安全问题:有以下四个方面 A. 端-端的安全问题,主要指用户(包括代理)之间的加密、鉴别和数据完整性维护。 B. 端系统的安全问题,主要涉及防火墙技术 C. 安全服务质量问题,主要指如何保护合法用户的带宽,防止用户非法占用带宽。 D. 安全的网络基础设施,主要涉及路由器、DNS服务器,以及网络控制信息和管理信息的安全问题。 (2)网络的安全服务:有以下五个方面 A.身份认证:这是考虑到在网络的应用环境下,验证身份的双方一般是通过网络而非直接交互,所以传统的验证手段如根据对方的指纹等方法就无法应用。同时大量的黑客随时都可能尝试向网络渗透,截获合法用户的口令并冒充顶替,以合法身份入网。所以应该提供一种安全可靠的身份认证的手段。 B.授权控制:授权控制是控制不同用户对信息资源的访问权限。授权控制是以身份认证为基础的。通过给不同用户的提供严格的不同层次和不同程度的权限,同时结合可靠的身份认机制,可以从很大程度上减少非法入侵事件发生的机会。 C.数据加密:数据加密技术顾名思义。在互联网上应用加密技术来保证信息交换的可靠性已经的到了人们普遍的认可,已经进入了应用阶段。目前的加密技术主要有两大类:一类是基于对称密钥加密的算法,另一类是基于非对称密钥加密的算法。它们都已经达到了一个很高的强度,同时加密算法在理论上也已经相当的成熟,形成了一门独立的学科。而从应用方式上,一般分成软件加密和硬件加密。前者成本低而且实用灵活,更换也方便;而后者加密效率高,本身安全性高。在应用中,可以根据不同的需要来进行选择。 D.数据完整性:数据完整性是指通过网上传输的数据应该防止被修改、删除、插入、替换或重发,以保证合法用户接收和使用该数据的真实性。 E.防止否认:在网上传输数据时,网络应提供两种防止否认的机制:一是防止发送方否认自己发送过的信息,而谎称对方收到的信息是别人冒名或篡改过的;二是防止接收方否认自己收到过信息。利用非对称加密技术可以很好的实现第一个否认机制。 二、加密技术 (1) 加密技术的产生和发展 A. 古代,目前记录的比较早的是一个在公元前2世纪,由一个希腊人提出来的,26个字母放在一个5×5的表格里,这样所有的源文都可以行列号来表示。 B. 近代,在第二次世界大战里,密码机(如紫罗兰)得到了比较广泛的已经技术,同时破译密码的技术也得到了发展,出现了一次性密码技术。同时密码技术也促进了计算机的发展。 C. 现代,由于计算机和计算机网络的出现,对密码技术提出了更高的需求。密码学的论文和会议不断的增加,以密码技术为主的商业公司开始出现,密码算法层出不穷,并开始走向国际标准化的道路,出现了DES,AES等国家(美国的)标准。同时各个国家和政府对密码技术也越来越重视,都加密技术的出口和进口都作了相当严格的规定。 (2) 加密技术的分类 A.对称加密技术 a. 描述 对称算法(symmetric algorithm),有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的。所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性

非对称加密实验

非对称加密实验 【实验环境】 ISES客户端 Microsoft CLR Debugger 2005或其它调试器 【实验内容】 通过运算器工具实现RSA和ElGamal算法的加解密计算 手工计算RSA密钥并检验,将其应用于签名中并验证 对RSA密钥生成、RSA密钥加密、ElGamal参数生成、ElGamal密钥生成和ElGamal加密进行算法跟踪 非对称加密实验 【实验原理】 非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。 一、 RSA算法 RSA公钥算法由Rivest、Shamir、Adleman于1978年提出的,是目前公钥密码的国际标准。算法的数学基础是Euler定理,是基于Deffie-Hellman的单项陷门函数的定义而给出的第一个公钥密码的实际实现,其安全性建立在大整数因子分解的困难性之上。 RSA算法的明文空间M=密文空间C=Z整数,其算法描述如下: n (1) 密钥生成 随机选择两个大素数p和q,计算n=p?q,;选择一个随机整数e<,满足,计算整数;公开公钥(n,e),安全的销毁p、q和,并保留(d,n)作为私钥。

(2) 加密 (3) 解密 使用中国剩余定理可以加速RSA密码算法的实现。 二、 ElGamal算法 ElGamal算法是Deffie-Hellman单项陷门函数的一个成功应用,把函数转化为公钥加密体制,其安全性建立在有限域上的离散对数问题。 ElGamal算法的描述如下: (1) 密钥生成 随机选择一个素数p,计算p个元素的有限域的乘法群的一个随机乘法生成元g;均匀随机地在模p-1的整数集合中选取x,计算;把(p,g,y)作为公钥公开,把(p,g,x)作为私钥。 (2) 加密 均匀随机地在模p-1的整数集合中选取k,消息m

非对称密钥加密

<2> 非对称密钥加密又叫作公开密钥加密算法。在非对称加密体系中,密钥被分解为一对(即一把公开密钥或加密密钥和一把私有密钥或解密密钥)。这对密钥中的任何一把都可作为公开密钥(加密密钥)通过非保密方式向他人公开,而另一把则作为私有密钥(解密密钥)加以保存。公开密钥用于对机密性信息的加密,私有密钥则用于对加密信息的解密。私有密钥只能由生成密钥对的用户掌握,公开密钥可广泛发布,但它只对应于生成该密钥的用户。公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。使用公开密钥技术,数据通信的双方可以安全的确认对方的身份和公开密钥。非对称密钥加密算法主要有RSA、PGP等。 ----数据加密技术可以分为三类,即对称型加密、不对称型加密和不可逆加密。 ----对称型加密使用单个密钥对数据进行加密或解密,其特点是计算量小、加密效率高。但是此类算法在分布式系统上使用较为困难,主要是密钥管理困难,使用成本较高,保安性能也不易保证。这类算法的代表是在计算机专网系统中广泛使用的DES(Digital Encryption Standard)算法。 ----不对称型加密算法也称公用密钥算法,其特点是有二个密钥(即公用密钥和私有密钥),只有二者搭配使用才能完成加密和解密的全过程。由于不对称算法拥有两个密钥,它特别适用于分布式系统中的数据加密,在Internet中得到了广泛应用。其中公用密钥在网上公布,为数据源对数据加密使用,而用于解密的相应私有密钥则由数据的收信方妥善保管。 ----不对称加密的另一用法称为“数字签名(Digital signature)”,即数据源使用其密钥对数据的校验和(Check Sum)或其他与数据内容有关的变量进行加密,而数据接收方则用相应的公用密钥解读“数字签名”,并将解读结果用于对数据完整性的检验。在网络系统中得到应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA算法(Digital Signature Algorithm)。不对称加密法在分布式系统中应用时需注意的问题是如何管理和确认公用密钥的合法性。 2、对称性加密和非对称性加密 根据密钥技术的不同,可分为对称加密和非对称加密两种方法;对称加密是指用单一的密钥对明文进行加密,同时必须用该密钥对密文进行解密,加密和解密双方必须知道该密钥。非对称加密技术又称公共密钥技术,密钥成对存在,分别称为私有密钥(private key)和公共密钥(public key);在加密过程采用公共密钥,在解密过程采用私有密钥。 由此可以看出,非对称性加密技术使密钥更加安全,一般用于对密钥进行管理;但是非对称加密技术速度很慢,在数据传输过程中的加密一般采用对称加密算法。 对于VPN网关产品来说,因为非对称加密算法太慢,所以一般采用对称加密算法进行数据传输加密。 3、数据加密强度和加密算法

非对称加密技术非对称加密技术的教学探讨

非对称加密技术非对称加密技术的教学探讨 一、问题的提出非对称加密技术是电子商务安全的基础,是电子商务安全课程的教学重点。笔者查阅许多电子商务安全教材、网络安全教材,发现这些教材过于注重理论,涉及具体操作较少,内容不够通俗易懂。笔者认为,学生掌握非对称加密技术,需要学习以下四个方面:图形直观认识、 RSA File演示软件直观操作、RSA算法直接计算、PGP的实际应用。 二、非对称加密图形直观认识 非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷提出来的。在公钥加密系统中,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,顾其可称为公钥密码体制。非对称密码体制的加密模型如图所示。 非对称加密的优势:一方面解决了大规模网络应用中密钥的分发和管理问题。如采用对称加密进行网络通信,N个用户需要使用N (N-1)/2个密钥,而采用对称加密体制,N个用户只需要N对密钥。

另一方面实现网络中的数字签名。对称加密技术由于其自身的局限性,无法提供网络中的数字签名。公钥加密技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒。 三、RSA File演示软件直观操作 利用一款RSA File演示软件可向学生直观展示非对称加密解密过程。其步骤如下: 第一,点击图标,生成密钥对,公钥保存为1.puk,私钥保存 为2.prk。 第二,新建RSA.txt文本,输入内容“RSA演示”。 第三,点击加密图标,装载公钥1.puk,然后载入明文文件RSA.txt,点击加密文件按钮,生成密文“RSA.txt.enc”。若将密文扩展名改为TXT,打开将全是乱码。 第四,点击解密图标,装载私钥2.prk,然后载入密文文件RSA.txt.enc,点击解密文件按钮,生成明文“RSA.dec.txt”。

对称密钥与非对称密钥的区别

对称密钥与非对称密钥的区别 一、对称加密(Symmetric Cryptography) 对称密钥加密,又称私钥加密,即信息的发送方和接收方用同一个密钥去加密和解密 数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个 问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。 对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。 二、非对称加密(Asymmetric Cryptography) 非对称密钥加密系统,又称公钥密钥加密。非对称加密为数据的加密与解密提供了一 个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用 这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

目前最常用的非对称加密算法是RSA算法。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。 虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。为了解释这个过程,请看下面的例子: (1) Alice需要在银行的网站做一笔交易,她的浏览器首先生成了一个随机数作为对称密钥。 (2) Alice的浏览器向银行的网站请求公钥。 (3)银行将公钥发送给Alice。 (4) Alice的浏览器使用银行的公钥将自己的对称密钥加密。 (5) Alice的浏览器将加密后的对称密钥发送给银行。 (6)银行使用私钥解密得到Alice浏览器的对称密钥。 (7) Alice与银行可以使用对称密钥来对沟通的内容进行加密与解密了。 三、总结 (1)对称密钥加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在

RSA非对称密码算法

RSA非对称密码算法 1、RSA非对称密码算法简介 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。 非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。 2、工作原理 1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。 2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。 3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。 4.A将这个消息发给B(已经用B的公钥加密消息)。 5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。 3、主要功能 非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。

【深度分析】运用非对称加密技术进行去中心化身份验证

【深度分析】运用非对称加密技术进行去中心化身份验证 文章出自Fr8 Network首席工程师Yevgeniy Spektor Fr8 Network简介 Fr8 Network希望通过其分布式网络彻底改变物流业。他们旨在为承运人和托运人创建一个点对点的网络,这可能会对商品和服务产生重大影响。因为整个过程将在区块链上公开,从而降低商品价格。 这个系列的文章分为两部分,这篇文章侧重于身份识别和验证,而下一篇文章将讨论智能合约的权限问题。

传统的身份验证和身份识别始终依赖中央服务器,用户必须向其发送密码进行验证。这种中心化的身份验证方法存在一些安全漏洞,最近几年发生过几起重大的恶性事件,导致企业损失数百万美元。 本文中提出的身份验证方案利用非对称加密技术对用户进行身份验证,无需中央服务器,也无需密码或私钥。用户将使用公钥和带有私人密钥签名的随机字符串进行身份验证,而不是使用用户名和密码进行身份验证。 OAuth 2.0和SAML 2.0 身份验证的最大挑战之一,就是用户需要管理和维护大量软件、服务和平台的凭据。而OAuth 2.0或SAML能解决这个问题,让用户可以在多个平台上使用一组凭据来进行识别和验证。但需要注意OAuth 2.0还具有的资源授权的功能,而这一功能很多时候不会常用。 传统验证方案有两个主要缺陷。首先,OAuth 2.0和SAML都需要中央身份验证服务器来验证登录资格和代币访问权限。身份验证依赖于中央实体,这就让应用程序和服务存在了安全风险。如果授权服务器(OAuth)或身份提供商(SAML)因任何原因不可用或者受到破坏,用户将无法登录。例如,假设应用程序A允许用户使用他们的脸书帐户登录,但如果脸书遭到入侵无法使用,应用程序

浅析非对称加密的应用领域

浅析非对称加密的应用领域 非对称加密 非对称加密能够提供一对密钥,公钥和私钥,使用公钥加密的内容无法使用公钥进行解密,必须使用其对应的私钥才能解密,反之亦然,正好符合我们的要求: 我们可以自己保留私钥,把公钥提供给Web程序,这样注册文件只能由私钥生成而无法使用公钥进行生成,用户即使掌握了公钥也无法生成注册文件。 简单介绍一下我们使用的非对称加密方法:RSA,该方法基于一个数学难题:大数的因子分解,该加密方法已经集成在.net的类库中。 在C#中我们可以使用RSACryptoServiceProvider类进行产生密钥对,明文加密和密文解密的动作。 在使用RSACryptoServiceProvider类的时候我们会发现,类库要求我们进行加密的明文必须为128个字节,多于这个数量会引发异常,所以很多朋友在网上提出解决方案,比如把明文切断,分别加密啦等等,其实我觉得这是一个误区,要解释这个误区,我们得先从非对称加密的常用领域说起。

非对称加密的常用领域 使用非对称加密时我们一般会将私钥保留,将公钥分发给用户,当然,具体的分发动作是通过证书还是怎么样不在我们这次的讨论范围内。 第一种场景:用户使用公钥进行加密,则只能由我们自己的私钥进行解密,就可以保证我们传递的信息是加密过的只有私钥的持有人能够对密文进行解密,其他人(包括公钥的持有人)也是无法解密密文的,但是这同样带来一个问题,由于非对称加密实现算法较为复杂,加密过程比较耗时,因此,我们一般将对称加密和非对称加密结合使用。即:使用对称加密算法对明文进行加密,使用非对称加密算法对对称加密的密钥进行加密,其实说到底,就是使用非对称加密算法进行对称加密密钥的发布,这也是“一次一密”的一种实现方法。 第二种场景是我们使用私钥进行加密,公钥的持有人都可以使用公钥进行解密,这样,公钥持有人就可以确认该内容是由私钥的持有人发布出来的,同样,由于非对称加密和解密比较耗时的原因,我们可以对该实现方式进行改良,最常见的改良方式为:我们可以对明文进行散列操作,最终将明文散列为较短的一个散列码,然后我们使用私钥对该散列码进行加密,在公钥的持有人收到消息后,可以重复上面的操作,比对自己的散列码和解析出的散列码是否相同,如果相同,则可以证明该消息是由公钥的持有人发布的,这就是我们常说的电子签名,当然我们也可以将上面提到的对称密钥的发布过程也包含在电子签名的过程中,以此来保证消息的内容只有公钥的持有人能够查看。 通过上面两种应用场景我们可以发现,非对称加密算法只要能够满足128个字节的加密就能满足所有的应用需求。

非对称加密算法有什么特点

非对称加密算法有什么特点 什么非对称加密算法非对称加密算法是一种密钥的保密方法。 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。 另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。 甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。 非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。 工作原理1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。 2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。 3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。 4.A将这个消息发给B(已经用B的公钥加密消息)。 5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

非对称加密算法的描述

一.非对称加密算法的描述 非对称加密算法: 非对称加密算法(asymmetric cryptographic algorithm)又名“公开密钥加密算法”,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。 算法介绍: asymmetric encoding algorithm 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。 [非对称加密算法] 非对称加密算法: 另一方面,甲方可以使用自己的私密钥对机密信息进行加密后再发送给乙方;乙方再用甲方的公钥对加密后的信息进行解密。[1] 甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。 非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。 算法起源: W.Diffie和M.Hellman 1976年在IEEE Trans.on Information刊物上发表了“ New Direction in Cryptography”文章,提出了“非对称密码体制即公开密钥密码体制”的概念,开创了密码学研究的新方向。 工作原理: 1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。 2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。 3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。 4.A将这个消息发给B(已经用B的公钥加密消息)。

对称密钥密码系统

对称密钥密码系统 2000多年以前,罗马国王Julius Caesar使用过现今被称为“凯撒密码”的加密算法。此加密算法其实是“移位密码”算法的一个特例。由于移位密码安全性不高,使用穷举爆力技术很容易将其破解,于是人们发明了“代换密码”。而移位密码其实是代换密码的一个子集。虽然代换密码安全性有所提高,使用穷举爆力技术较难破解,然而使用统计密码分析技术却可以很容易地破解代换密码。 到了几百年前,有人发明了“置换密码”有时也叫“换位密码”,之后现代密码技术开始出现。很多人把Claude Shannon誉为现代密码学之父,他提出了“扩散”和“混淆”来构造密码体制的基本要素。这种加密技术可以有效的挫败使用统计分析技术来破解密码。 1973年,Horst Feistel公开了他的“Feistel密码”,这是第一个体现密码之父Shannon思想的密码系统。目前,几乎所有的对称密码系统都使用了Feistel密码的设计特征。 1973年,(美)国家标准局(NBS),即现在的(美)国家标准技术研究所(NIST)公布了征求国家密码标准的提案,人们建议了许多的密码系统。 1977年7月,NBS经过对众多的密码系统进行评估后,采纳了IBM在20世纪60年代(1960s)研制出来的一个密码系统作为数据加密标准(DES),此系统是由Horst Feistel领导的一个研究组研制出来的。这个密码系统基于一个称为LUCIFER[Fic73]的密码系统。LUCIFER密码系统本质上是Feistel密码的一个推广。 1983年、1988年和1993年,DES再度被认定为(美)国家标准。 1997年,RSA实验室发布了一个以10000美元作为酬金的挑战:寻找一个前面带有一个已知明文块的密文的DES密钥。由Roche Verse牵头的一个工程小组动用了70000多台通过因特网连接起来的计算机系统,使用穷举爆力攻击程序大约花费96天的时间找到了正确的DES密钥。意识到DES已经快完成它的历史使命,NIST于1997年1月宣布了一项选择一个用作高级加密标准(AES)的候选算法的计划:这个新的标准的将取代DES。

对称密钥密码

1引言 计算机的发展给人类带来了前所未有的便利,以计算机信息技术为手段的企业信息化建设,已成为企业必不可少的部分。计算机CAD技术高速度、高精度和高效等的优点,已经逐步取代手工设计,广泛应用于产品设计工作中。CAD图纸,在任何时候,都是一个企业的命脉。在使用SolidWorks等软件绘制图纸的过程中,作为企业是否经常会考虑:我们厂刚刚设计出来的新产品,怎么市场上别的牌子的产品也已经上市啦?技术人员的流动,是否会同时有图纸的流动?我们花了几十万买的图纸,怎么隔壁的那个厂子图纸和我们的一样呢?我们的光驱、软驱、U盘接口都封掉了,可是图纸怎么还是传出去啦?解决这些问题的一种有效方法就是使用现代密码技术,加密技术是保障信息安全的最基本的、最核心的技术措施。对CAD图纸进行加密应该是一种比较合适的安全保密措施 2密码技术 2.1基本概念 密码学是研究编制密码和破译密码的技术科学。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。随着先进科学技术的应用,密码学已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。密码就是一组含有参数K的变换E。设已知信息M,通过变换E得到密文C。即C=EK(M)这个过程称之为加密,参数K称为密钥。

2.1.1传统密码学 自从有了人类社会就有了信息交流,特别是出现了战争,为了信息交流的安全,就出现了密码技术。从古代到16世纪末由于这个时期生产力低下,产生的许多密码体制都是可用纸笔或者简单的器械实现加密/解密的,这个时期的密码体制主要有两大类:一类是换位密码体制,另一类是代替密码体制。从二十世纪初到20世纪50年代末,为了适应密码通信的需要,密码设计者设计出了一些采用复杂的机械和电动机械设备实现信息加密/解密操作,他们代替了繁重的手工作业方式,在战争中发挥了重要的作用。转轮密码机是这一时期的杰出代表。 2.1.2现代密码学 对称密钥密码体制又称为单密钥密码体制或秘密密钥密码体制。这种密码体制的加密密钥和解密密钥相同,或者虽然不相同,但可由其中的任意一个可以和容易地推导出另一个。传统的密码学都是属于对称密钥密码体制。现在,在传统密码学地基础上对称密码体制也有了新地发展,像序列密码,分组密码,还有对称密钥密码体制的典型代表:数据加密标准DES和高级数据加密标准AES。非对称密钥密码体制又称为双密钥密码体制或公开密钥密码体制。这种密码体制的加密/解密操作分别使用两个不同地密钥,并且不可能由加密密钥推导出解密密钥。采用非对称密钥密码体制的每个用户都有一对相互关联而又彼此不同地密钥,使用其中的一个密钥加密的数据,不能使用该密钥自身进行解密,而只能使用对应的另一个密钥进行解密。在这一对密钥中,其中一个密钥称为公钥,它可以公开并通过公开的信道发给任何一位想与自己通信的另

用非对称密码RSA算法加密文件

大连民族学院计算机学院 《网络安全》实验报告 学院:计算机科学与工程 题目:用非对称密码RSA算法加密文件 专业:网络工程 姓名:熊秋蕾 学号:2009083124 指导老师:姜楠

1、实验类型:设计型 2、实验目的 通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。 3、实验内容 (1)RSA算法分析。 (2)RSA算法编程。 4、实验原理 RSA密码体制描述: 1.密钥的生成 选择p,q,p,q为两个大的互异素数,计算n=p*q, ?(n)=(p-1)(q-1), 选择整数e使gcd(?(n),e)=1,(1

(3)实验结束后进行角色互换,再重复(1)中的实验,直到每个人都轮流当过三种角色。 7、实验步骤及注意事项 (1)利用奇数生成器,生成密钥对和私钥、公钥 java提供了密钥的生成器函数KeyPairGenerator;公钥保存在Skey_public.dat文件中,私钥保存在Skey_privat.dat package newpackge1; import java.io.*; import java.security.*; public class Skey_RSA{ public static void main(String args[]) throws Exception{ //创建密钥对生成器,指定加密和解密算法为RSA KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA"); //指定密钥的长度,初始化密钥对生成器 kpg.initialize(1024); //生成密钥对 KeyPair kp=kpg.genKeyPair(); //获取公钥 PublicKey pbkey=kp.getPublic(); //获取私钥 PrivateKey prkey=kp.getPrivate(); //保存公钥到文件 FileOutputStream f1=new FileOutputStream("Skey_public.dat"); ObjectOutputStream b1=new ObjectOutputStream(f1); b1.writeObject(pbkey); //保存私钥到文件 FileOutputStream f2=new FileOutputStream("Skey_privat.dat"); ObjectOutputStream b2=new ObjectOutputStream(f2); b2.writeObject(prkey); }} (2)加密过程,提取公钥,对字符串进行加密,将密文以字符串形式保存在文件中package newpackge1; import java.security.interfaces.*; import java.math.*;

非对称加密、解密算法RSA的C++实现

信息安全技术实验报告 ———非对称加密、解密算法RSA的C++实现 计算机学院 2008级12班 学号:53081224 姓名:胡守峰

非对称加密、解密算法RSA的C++实现 【我的目的】根据课上老师所讲“非对称加密、解密算法RSA”的有关知识, 编写其的C++语言实现。 【我的加密思想】第一步,用户首先输入两个素数p和q,并求出 n = p*q,然后再求出n的欧拉函数值phi。 第二步,在[e,phi]中选出一个与phi互素的整数e,并根据e*d ≡1(mod phi),求出e的乘法逆元。至此我们已经得到了公开密钥{e,n}和秘密密钥{d,n}。 第三步,让用户输入要进行加密的小于n一组正整数(个数不超过MAXLENGTH=500),输入以-1为结束标志,实际个数存入size中,正整数以clear[MAXLENGTH]保存。 第四步,对第三步所得的明文clear[MAXLENGTH]进行加密。遍历clear[size],对每一个整数用以下算法进行加密,并将加密后的密文保存在Ciphertext[MAXLENGTH]中。 注意:此处不能用m2[j] = clear[j] ^ e整数的幂,因为当e和clear[j]较大时,会发生溢出,至使出现无法预料的结果。 第五步,输出加密后的密文。 【我的解密思想】第一步,根据在以上算法中求出的解密密钥[d,phi],对加 密后的密文Ciphertext[MAXLENGTH]进行解密,结果保存在DecryptionText[MAXLENGTH]中,算法如下:

第二步,输出对加密前的明文和加密并解密后的密文进行比较,判断两个数组是否一致,从而得知算法是否正确。 【我的实验】 1、RSA加密、解密算法的C++实现(可以在VC6.0上运行): #include #include using namespace std; #define MAXLENGTH 500 //明文最大长度,即所允许最大整数个数 int size = 0;//保存要进行加密的正整数的个数 int p, q; //两个大素数 int n, phi; //n = p * q,phi = (p-1) * (q-1) 是n的欧拉函数值 int e; //{e, n}为公开密钥 int d; //{d, n}为秘密密钥 int clear[MAXLENGTH], Ciphertext[MAXLENGTH];//分别用于存放加//密前的明//文和加密后的密文 int DecryptionText[MAXLENGTH];//存放解密后的明文 //////////////////////////////////////////////////////////// //以下为加密算法 void Encryption() {//加密算法 cout << " 请输入两个较大的素数:" ; cin >> p >> q ; cout << " p = " << p << ", q = " << q << endl; n = p * q;//求解n, phi = (p - 1) * ( q - 1 );//求解n 的欧拉函数值 cout << " n = " << n << ", phi = " << phi << endl; cout << " 请从[0," << phi - 1 << "]中选择一个与" << phi << " 互素的数e:"; cin >> e; float d0; for( int i = 1; ; i++) {///求解乘法逆元e * d ≡1 (mod phi) d0 = (float)(phi*i+1) / e; if( d0 - (int)d0 == 0 )

非对称密码算法

实验1-3 非对称密码算法 RSA 一.实验目的 通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。 二.实验原理 前面讲的对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。 非对称密码算法是指一个加密系统的加密密钥和解密密钥是不相同,或者说不能从其中一个推导出另一个。在非对称密码算法的两个密钥中,一个是用于加密的密钥,它是可以公开的称为公钥;另一个是用于解密的密钥,是保密的,称为私钥。非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学的最重要的发明和进展。 RSA密码体制是目前为止最为成功的非对称密码算法,是在1977年由Rivest、Shamir 和Adleman提出的第一个比较完善的非对称密码算法。它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量相当大。虽然的安全性还未能得到理论证明,但经过20多年的密码分析和攻击,迄今仍然被实践证明是安全的。 RSA算法描述如下: 1. 公钥 选择两个互异的大素数p和q,n是二者的乘积,即n = pq,使Φ(n)=(p-1)(q-1),Φ(n)为欧拉函数。随机选取正整数e,使其满足gcd(e, Φ(n))=1,即e和Φ(n)互质,则将(n,e)作为公钥。 2. 私钥 求出正数d,使其满足e×d=1 modΦ(n),则将(n,d)作为私钥。 3. 加密算法 对于明文M,由C=M e mod n ,得到密文C。 4.解密算法 对于密文C,由M=C d mod n,得到明文M。 如果窃密者获得了n,e和密文C,为了破解密文他必须计算出私钥d,为此需要先分解n为p和q。为了提高破解难度,达到更高的安全性,一般商业应用要求n的长度不小于1024bit,更重要的场合不小于2048bit。 三.实验环境 运行windows或linux操作系统的PC机,具有gcc(linux)、VC(windows)等C语言编译环境。 四.实验内容和步骤 1.为了加深对RSA算法,根据已知参数:p=3,q=11,M=2,手工计算公私钥,并对明文进行加密,然后对密文进行解密。 2.光盘中给出了一个可以进行RSA加密和解密的对话框程序RSATool,运行这个程序加密一段文字,了解RSA算法原理。尝试着加密一大段文字,记录程序的运行时间。使用DES算法加密相同的文字,比较两种算法加密的速度。 五.实验报告要求 e e mod n,记录程序 1.编写一个程序,随机选择三个较大的数x,,n然后计算x n 运行时间。实际中应用的素数为512bit,也就为1024bit。这样的大数在计算机上如何表示,如何进行运算,查阅资料给出简单说明。

非对称加密、公钥、密钥、证书、签名的区别和联系

非对称加密、公钥、密钥、证书、签名的区别和联系以及(2009-12-02 13:27:46) 转载▼ 分类:安全性 标签: 杂谈 【1】非对称加密算法: 非对称加密算法又称为公钥加密算法,按照密码学的Kerckhoff原则:“所有算法都是公开的,只有密钥是保密的”。即安全系统的设计者不能指望使用某种秘密的无人知道的算法来保密,而应当使用一种公开的被验证过的算法——只要密钥是安全的,已知算法的攻击者实际上无法破解秘文的算法才是好的算法。 RSA算法是目前最流行的公钥密码算法,它使用长度可以变化的密钥。RSA是第一个既能用于数据加密也能用于数字签名的算法。RSA算法的原理如下: 1.随机选择两个大质数p和q,p不等于q,计算N=pq; 2.选择一个大于1小于N的自然数e,e必须与(p-1)×(q-1)互素。 3.用公式计算出d:d×e = 1 (mod (p-1)×(q-1)) 。 4.销毁p和q。 最终得到的N和e就是“公钥”,d就是“私钥”,发送方使用N去加密数据,接收方只有使用d才能解开数据内容。 RSA的安全性依赖于大数分解,小于1024位的N已经被证明是不安全的,而且由于RSA 算法进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,这也是RSA最大的缺陷,因此它通常只能用于加密少量数据或者加密密钥。需要注意的是,RSA算法的安全性只是一种计算安全性,绝不是无条件的安全性,这是由它的理论基础决定的。因此,在实现RSA算法的过程中,每一步都应尽量从安全性方面考虑。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。 【2】公钥和私钥: 对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 公钥加密:公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证.NET 通过抽象基类(System.Security.Crytography.AsymmetricAlgorithm) 提供下列非对称(公钥/私钥)加密算法: ?D SACryptoServiceProvider ?R SACryptoServiceProvider

实验2 对称加密算法:DES

实验1-2 对称密码算法DES 一.实验原理 信息加密根据采用的密钥类型可以划分为对称密码算法和非对称密码算法。对称密码算法是指加密系统的加密密钥和解密密钥相同,或者虽然不同,但是可以从其中任意一个推导出另一个,更形象的说就是用同一把钥匙开锁和解锁。在对称密码算法的发展历史中曾出现过多种优秀的算法,包括DES、3DES、AES等。下面我们以DES算法为例介绍对称密码算法的实现机制。 DES算法是有美国IBM公司在20世纪70年代提出,并被美国政府、美国国家标准局和美国国家标准协会采纳和承认的一种标准加密算法。它属于分组加密算法,即明文加密和密文解密过程中,信息都是按照固定长度分组后进行处理的。混淆和扩散是它采用的两个最重要的安全特性,混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。扩散是指明文和密钥中每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码安全。 DES将明文分成64比特位大小的众多数据块,即分组长度为64位。同时用56位密钥对64位明文信息加密,最终形成64位的密文。如果明文长度不足64位,则将其扩展为64位(例如补零等方法)。具体加密过程首先是将输入的数据进行初始换位(IP),即将明文M 中数据的排列顺序按一定的规则重新排列,生成新的数据序列,以打乱原来的次序。然后将变换后的数据平分成左右两部分,左边记为L0,右边记为R0,然后对R0施行在子密钥(由加密密钥产生)控制下的变换f,结果记为f(R0 ,K1),再与L0做逐位异或运算,其结果记为R1,R0则作为下一轮的L1。如此循环16轮,最后得到L16、R16,再对L16、R16施行逆初始置换IP-1,即可得到加密数据。解密过程与此类似,不同之处仅在于子密钥的使用顺序正好相反。 DES全部16轮的加密过程如图1-1所示。 DES的加密算法包括3个基本函数: 1.初始换位(IP) 它的作用是把输入的64位数据块的排列顺序打乱,每位数据按照下面换位规则重新组合。即将第58位换到第1位,第50位换到第2位,…,依次类推。重组后的64位输出分为L0、R0(左、右)两部分,每部分分别为32位。 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8 57, 49, 41, 33, 25, 17, 9, 1 59, 51, 43, 35, 27, 19, 11, 3 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 R0和K1经过f(R0,K1)变换后的输出结果,再和L0进行异或运算,输出结果做为R1。R0则赋给L1。L1和R1同样再做类似运算生成L2和R2,…,经过16次运算后生成L16和R16。 2.f函数 f函数是多个置换函数和替代函数的组合函数,它将32位比特的输入变换为32位的输出,如图1-2。R i经过扩展运算E变换后扩展为48比特的E(R i),与K i+1进行异或运算后输出的结果分成8组,每组6比特的并联B,B=B1B2B3B4B5B6B7B8,再经过8个S盒的选择压缩运算转换为4比特,8个4比特合并为32比特后再经过P变换输出为32比特的f(R i-1,K i)。其中,扩展运算E与置换P主要作用是增加算法的扩散效果。

相关主题