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

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

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

一、问题的提出非对称加密技术是电子商务安全的基础,是电子商务安全课程的教学重点。笔者查阅许多电子商务安全教材、网络安全教材,发现这些教材过于注重理论,涉及具体操作较少,内容不够通俗易懂。笔者认为,学生掌握非对称加密技术,需要学习以下四个方面:图形直观认识、

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”。

第五,对比“RSA.txt”和“RSA.dec.txt”文本内容一致。

通过RSA File演示软件操作,学生对密钥对的生成,加密解密操作基本掌握,但对于用公钥加密,用私钥解密这一现象还是不明白,此时还需通过RSA算法来进一步解释。

四、RSA算法直接计算

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

1.RSA加密算法

(1)选取两个大素数p和q,并计算乘积N(N=pq)。

(2)任意选取一个大整数e,e与ф(N)=(p-1)*(q-1)互质,整数e用作加密密钥。

(3)确定解密密钥d,由d*e=1 mod((p-1)*(q-1)),根据e,p和q可以容易地计算出d;

(4)若用整数X表示明文,整数Y表示密文(X,Y均小于N),则加解密运算为:

加密:Y = Xe mod N

解密:X = Yd mod N

注意,其中d和N也互素。e和N是公开密钥,d是秘密密钥。两个素数p和q保密。

2.相关数学背景知识

(1)素数:素数是一大于1,且只能被1和这个数本身整除的整数。素数是无限的。例如,2,3,5,7……等。

(2)两个数互为素数:指的是它们除了1之外没有共同的因子。也可以说这两个数的最大公因子是1。例如:4和9、13和27等。

(3)模变换:两个数相模,如A模N运算,它给出了A的余数,余数是从0到N-1的某个整数,这种运算称为模运算。

3.算法的具体实现

(1)为了方便计算,我们选取素数p=3和q=11,则N=pq

=3*11=33。

(2)ф(N)=(p-1)(q-1)=2*10=20。

(3)从[0,ф(N)-1]中,即[0,19]之间任意选取加密密钥e = 3,且e和ф(N)互素。

(4)求解密密钥d。将公式ed=1modф(N)转换成形式ed=k*ф(N)+1,即3d=k*20+1,将0,1,2,3…依次代入k,求出d。

取k=0,得d=1/3;不满足d为整数;

取k=1,得d=7;满足d为整数条件;

取k=2时,得d=41/3,不满足d为整数;

取k=3时,得d=61/3,不满足d为整数条件;

取k=4时,得d=81/3=27,满足d为整数条件;

……

若明文X=15,N=33,e=3,d=7,

加密:Y=Xe mod N= 153 mod 33=9

解密:X=Yd mod N = 97 mod 33= 15

也可取d=27,通过电脑附件中的计算器计算如下:

解密:X=Yd mod N=927 mod 33= 58149737003040059690390169 mod 33=15

通过手工计算RSA加密算法,让学生更直观更深层理解非对称加密原理。

RSA的安全N足够大,我们测试中使用的N是非常小的,根本不能保障安全性,当前小于1024位的N已经被证明是不安全的,最好使用2048位的。通过一款“攻击RSA算法-分解n-求素数因子”软件可以快速实现因式分解,为获得足够大的N及D 、E,我们可以通过RSAKit、RSATool之类的工具测试。

RSA简捷,但计算速度比较慢,通常加密中并不是直接使用RSA 来对所有的信息进行加密,最常见的情况是随机产生一个对称加密的密钥,然后使用对称加密算法对信息加密,之后用RSA对刚才的加密密钥进行加密。

五、PGP的实际应用

PGP是美国PGP公司开发的基于RSA公开密钥体制的邮件加密软件,在电子商务事务中得到广泛的应用。付费的PGP个人版软件可实现邮件加密解密,这里采用的PGP8.1汉化版实现对文件的加密解密、签名及验证签名。具体操作如下:

第一,启动PGP Key,创建学生密钥对xues@21.,并导出公钥。

第二,导入老师的公钥“laoshi公钥.asc”。

第三,新建Word文档,录入文本“我是××号学生,完成PGP 作业”→复制文本→打开PGPmail中的“加签并签名”图标→选择剪贴板→选择接收人laoshi@21.→输入自己的密码→确定。

第四,将结果粘贴到文本中提交上来、同时还要提交学生的公钥。

网络加密技术的研究资料

第一章引言 如果要问人类在刚刚过去的20世纪中最伟大的发明是什么,那就要属计算机和网络了。1946年诞生于美国的ENIAC还只是一个笨重、高耗能、低效率的半机械产物,而仅仅半个多世纪后的今天,计算机在经历了3个发展时期后,体积、耗能以及性能都有了巨大的飞跃。和计算机的发展一样,上世纪60年代用于美国军方通信的网络逐渐发展成为今天这个广泛应用于各个领域的计算机互联网。它是在计算机之间以特定介质互相连接,按照特定网络协议进行数据交换的一个资源共享的组织形式。 随着网络技术的不断发展,全球信息资源共享已成为人类发展的趋势。计算机已经被广泛应用到人们的社会生活和生产中的各个领域,网络已成为极其重要的通信手段,但由于现在的计算机网络很庞大,它具有多样的连接形式、不均匀的终端分布和网络的开放性、互联性等特征,导致网络中传输的数据很容易受到监听和攻击,因此造成的损失也是巨大的,所以网络信息的安全问题是一个至关重要的问题。特别是对于诸如银行、通迅和国防等等传输机密数据的网络而言,其网络中数据的安全性就更加重要了。由此可见,网络至少要有足够的安全措施来保障数据的安全传输,否则将严重的制约网络的应用和发展,甚至会危害国家利益、危及国家安全。网络的安全问题是网络加密技术产生的直接原因和发展的指导方向。 国际标准化组织(ISO)将“计算机安全”定义为:“为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件、软件数据不因偶然和恶意的原因而遭到破坏、更改和泄漏”。这包含了物理安全和逻辑安全两方面。物理安全不难理解,而逻辑安全就可以理解为我们常常提到的数据信息安全,它指的是保护信息的完整可用以及数据的加密特性。从这样,我们就可以很容易的引伸出网络安全性的含义:那就是保护在网络中传输的数据的完整可用以及加密特性。 信息是推动社会向前发展的重要资源。随着网络技术的不断发展,Internet规模逐渐扩大和成熟,其涉及到几乎所有的领域,由此给人们的工作、学习和生活等便捷的同时,网络的安全问题也日趋严重,病毒、木马、黑客等各种各样的攻击也无时无刻地困扰着我们,尤其是对那些商业,科研,国防等在网络上传输敏感数据的机构,网络信息安全的解决更加迫在眉睫。 中国公安部公共信息网络安全监察局所做的2007年度全国信息网络安全状况暨计算机病毒疫情调查显示(2006年5月至2007年5月),中国信息网络安全事件发生比例连续3年呈上升趋势,65.7%的被调查单位发生过信息网络安全事件,比2006年上升15个百分点;其中发生过3次以上的占33%,较2006年上升11.7%。在网络安全事件中,感染计算机病毒、蠕虫和木马程序仍然是最突出的网络安全情况,占安全事件总数的58%,“遭到端口扫描或网络攻击”(25%)次之。信息网络安全事件的主要类型是:感染计算机病毒、蠕虫和木马程序,垃圾电子邮件,遭到网络扫描、攻击和网页篡改。[9]病毒攻击、黑客攻击的泛滥猖獗使处在网络时代的人们感觉无所适从。也许已经有了一定的技术手段可以改善网络安全的状况,然而,这一切的安全问题是不可能全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒木马程序,因为任何反病毒程序都只能在新病毒被发现之后才能捕获它们,然后通过解剖病毒了解病毒的特征并更新到病毒特征库,才能被反病毒软件检测到并杀除或者隔离。迄今为止还没有一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,这说明,网络永远不可能得到绝对的安全。所以我们不能期待网络绝对安全了再展开网络的应用,只要网络存在,病毒、木马以及黑客也会存在,就像是寄生在网络上的寄生虫一样。 加密技术就是在网络安全的迫切需要下应运而生的,它为人们在网络上进行的数据交换行为提供了一定的安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。 本文就网络加密技术的方方面面做一个详细的介绍。

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

非对称加密技术非对称加密技术的教学探讨 一、问题的提出非对称加密技术是电子商务安全的基础,是电子商务安全课程的教学重点。笔者查阅许多电子商务安全教材、网络安全教材,发现这些教材过于注重理论,涉及具体操作较少,内容不够通俗易懂。笔者认为,学生掌握非对称加密技术,需要学习以下四个方面:图形直观认识、 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”。

非对称密钥加密

<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

实验二非对称密码算法RSA 一、实验目的 通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。 二、实验环境 运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。 三、实验内容和步骤 1)编写一个程序,随机选择3个较大的数x、e、n,然后计算xe mod n, 记录程序运行时间。实际中应用的素数为512位,n也就为1024位。 这样的大数在计算机上如何表示、如何进行运算,查阅资料给出简单说明。 RSA依赖大数运算,目前主流RSA算法都建立在512位到1024位的大数运算之上,所以我们在现阶段首先需要掌握1024位的大数运算原理。 大多数的编译器只能支持到64位的整数运算,即我们在运算中所使用的整数必须小于等于64位,即:0xffffffffffffffff也就是 18446744073709551615,这远远达不到RSA的需要,于是需要专门建立大数运算库来解决这一问题。 最简单的办法是将大数当作字符串进行处理,也就是将大数用10进制字

符数组进行表示,然后模拟人们手工进行“竖式计算”的过程编写其加减乘除函数。但是这样做效率很低,因为1024位的大数其10进制数字个数就有数百个,对于任何一种运算,都需要在两个有数百个元素的数组空间上做多重循环,还需要许多额外的空间存放计算的进位退位标志及中间结果。当然其优点是算法符合人们的日常习惯,易于理解。 另一种思路是将大数当作一个二进制流进行处理,使用各种移位和逻辑操作来进行加减乘除运算,但是这样做代码设计非常复杂,可读性很低,难以理解也难以调试。 (2)计算机在生成一个随机数时,并不一定就是素数,因此要进行素性检测。 是否有确定的方法判定一个大数是素数,要查阅资料,找出目前实际可行的素数判定法则,并且比较各自的优缺点。 所谓素数,是指除了能被1和它本身整除而不能被其他任何数整除的数。 根据素数的定义,只需用2到N-1去除N,如果都除不尽则N是素数,结束知其循环。由此得算法1。 (1)flay=0,i=2. /*flay为标志,其初值为0,只要有一个数除尽,其值变为1. (2)If n mod i=0 then flay=l else i=i+1/* n mod i是n除以i的余数. (3)If flay=0 and I<=n-1 then(2) else go (4) (4)If flay=0 then write“n是素数。”else write“不是素数” 最坏的情形下,即N是素数时,算法1需要执行N-2次除法,时间复杂

非对称加密技术的教学

非对称加密技术的教学探讨 一、问题的提出 非对称加密技术是电子商务安全的基础,是电子商务安全课程的教学重点。笔者查阅许多电子商务安全教材、网络安全教材,发现这些教材过于注重理论,涉及具体操作较少,内容不够通俗易懂。笔者认为,学生掌握非对称加密技术,需要学习以下四个方面:图形直观认识、 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”。 第五,对比“rsa.txt”和“rsa.dec.txt”文本内容一致。 通过rsa file演示软件操作,学生对密钥对的生成,加密解密操作基本掌握,但对于用公钥加密,用私钥解密这一现象还是不明白,此时还需通过rsa算法来进一步解释。 四、rsa算法直接计算 rsa算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。 1.rsa加密算法

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

【深度分析】运用非对称加密技术进行去中心化身份验证 文章出自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允许用户使用他们的脸书帐户登录,但如果脸书遭到入侵无法使用,应用程序

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

非对称加密算法有什么特点 什么非对称加密算法非对称加密算法是一种密钥的保密方法。 非对称加密算法需要两个密钥:公开密钥(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的私钥。

非对称加密技术

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

能用与之对应的公钥来验证,其他人无法仿冒。 三、RSA File演示软件直观操作 利用一款RSA F订e演示软件可向学生直观展示非对称加密解密过程。其步骤如下: 第一,点击图标,生成密钥对,公钥保存为,私钥保存为。 第二,新建文本,输入内容“RSA演示”。 第三,点击加密图标,装载公钥,然后载入明文文件,点击 加密文件按钮,生成密文“”。若将密文扩展名改为TXT,打开将全是乱码。 第四,点击解密图标,装载私钥,然后载入密文文件,点击 解密文件按钮,生成明文“”。 第五,对比“”和“”文本内容一致。 通过RSA F订e演示软件操作,学生对密钥对的生成,加密解密操作基本掌握,但对于用公钥加密,用私钥解密这一现象还是不明白,此时还需通过RSA算法来进一步解释。 四、RSA算法直接计算 RSA算法基于一个分简单的数论事实:将两个大素数相乘分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。 加密算法 选取两个大素数P和q,并计算乘积N。 任意选取一个大整数e, e与d)=*互质,整数e用作加密密

数字加密技术研究与分析

类型:课程设计 题目:数字加密技术研究与分析

目录 摘要............................................... 错误!未定义书签。ABSTRACT ........................................... 错误!未定义书签。目录 (2) 第一章RSA公钥密码简介 (4) 1.1公开密钥密码系统 (4) 1.2RSA加密算法 (5) 1.3RSA公钥密码的安全 (8) 第二章RSA加密算法的有关数学知识 (10) 2.1数论 (10) 2.1.1 模运算 (10) 2.1.2素数 (10) 2.1.3最大公因子 (12) 2.1.4幂模运算 (14) 2.1.5 乘法逆元 (16) 2.2RSA中重要定理 (18) 2.2.1 费马定理 (18) 2.2.2 欧拉定理 (19) 2.2.3 欧几里德算法 (22) 第三章 MD5算法简介 (27) 3.1MD5算法的发展史 (27) 3.2MD5算法的应用 (28) 3.3MD5算法描述 (29)

3.3.1 MD5算法的步骤 (29) 3.3.2 MD5的压缩函数 (36) 3.4 MD5算法的安全 (41) 第四章 MD5算法在RSA算法中应用 (42) 4.1RSA算法加密文件 (42) 4.1.1 加密过程 (42) 4.1.2 解密过程 (43) 4.2文件的信息摘要 (46) 4.3MD5算法在RSA算法中的应用 (47) 4.4补充说明 (48)

第一章RSA公钥密码简介 1.1 公开密钥密码系统 一个好的加密算法的重要特点之一是具有这种能力:可以指定一个密码或密钥,并用它来加密明文,不同的密码或密钥产生不同的密文。这又分为两种方式:对称密钥算法和非对称密钥算法。所谓对称密钥算法就是加密解密都使用相同的密钥,非对称密钥算法就是加密解密使用不同的密钥。非常著名的pgp公钥加密以及RSA加密方法都是非对称加密算法。加密密钥,即公钥,与解密密钥,即私钥,是非常的不同的。从数学理论上讲,几乎没有真正不可逆的算法存在。 公钥密码又称为双钥密码和非对称密码,是1976年由Diffie和Hellman在其“密码学新方向”一文中提出的。他是用一个密钥进行加密,而用另一个不同但是有关的密钥进行解密。 图1.1.1给出了公开密钥加密过程。其中重要步骤如下: 1)网络中的每个端系统都产生一对用于它将接收的报文进行加密和解密的密钥。 2)每个系统都通过把自己的加密密钥放进一个登记或者文件来公布告它,这就是公开密钥。另一个密钥则是私有的。 3)如果A想给B发送一个报瘪他就用B的公开密钥加密这个报文。 4)B收到这个报文后就用他的保密密钥解密报文。其他所有收到这个报文的人都无法解密它,因为只有B才有B的私有密钥。

非对称加密、解密算法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 )

非对称密码算法RSA原理

非对称密钥加密算法-RSA 一.非对称密钥加密概述 前面讲述了对称密钥加密体制。使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥。这样,如果一个网络中有n个用户,他们之间彼此可能需要进行秘密通信,这时网络中将共需要n(n-1)/2个密钥(其中,每个用户都需要保存n-1个密钥),这样巨大的密钥量给密钥分配和管理带来了极大的困难。另外,随着计算机网络,特别是因特网的发展,网络上互不相识的用户可能需要进行保密的会话(例如,如果用户在进行电子商务活动时,需要保密的连接,这时的客户对象可能根本不是固定的对象)。最后,对称密钥加密机制难以解决签名验证问题。 非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。每一个用户的加密密钥都是公开的(因此,加密密钥也称为公开密钥)。所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。同时,每一个用户的解密密钥将由用户保存并严格保密(因此,解密密钥也称为私有密钥)。 非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,已知两个大素数a、b,求出a*b是容易计算的,而已知a*b,想知道其是哪两个大素数的乘积目前还没有好的计算方法,另外也有一些非对称加密算法(如ELGamal算法)的安全性是基于求“离散对数”这个数学难题上的。

实验1-非对称加密实验

ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级:计(2)学号:27姓名:邱哲桐指导教师:刘玉仙成绩 实验题目非对称加密实验实验时间2013-5-6 一、实验目的: 非对称加密实验 二、实验内容以及步骤: 实验内容: 通过运算器工具实现RSA、ElGamal算法的加解密计算 手工计算RSA密钥并检验,将其应用于签名中并验证 对RSA、ElGamal、ECC算法进行扩展实验 对RSA密钥生成、RSA密钥加密、ElGamal参数生成、ElGamal密钥生成和ElGamal加密进行算法跟踪 一、RSA (一)加解密计算 (1)打开实验实施,默认的选择即为RSA标签,显示RSA实验界面。 (2)选择明文格式,输入要加密的明文信息。 (3)选择密钥长度,此处以512比特为例,点击“生成密钥对”按钮,生成密钥对和参数。 (4)选择“标准方法”标签,在标签下查看生成的密钥对和参数, (5)标准方法加解密 标准方法可选择公钥加密/私钥解密形式和公钥加密/私钥解密形式进行加解密,此处以公 钥加密/私钥解密形式进行加解密,公钥加密/私钥解密可参照完成;注意在一次加解密过程中 不要重新生成密钥对。 点击“公钥加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文 本框中;清除明文文本框中的内容,点击“私钥解密”按钮对密文进行解密,明文默认以文 本形式显示在明文文本框中;可选择以16进制查看明文。

(6)选择“中国剩余定理方法”标签,在标签下查看生成的密钥对和参数,如图1.1.7-3 所示。 图1.1.7-3 (7)中国剩余定理方法加解密 点击“加密”按钮使用生成的公钥对明文进行加密,密文以十六进制显示在密文文本框中;清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以文本形式显示在明文文本框中,可选择以十六进制查看明文。 (二)RSA密钥计算 (1)点击“扩展实验”框中的“RSA计算”按钮,进入RSA计算窗体。 (2)输入报文信息,点击“计算MD5值”生成报文信息的信息摘要,如图1.1.7-5所示。 图1.1.7-5 (3)选择p、q值,计算n、φ(n)、e和d并输入相应的文本框中,点击“检验”按钮对 计算的各个参数值进行检验,如图1.1.7-6所示。 图1.1.7-6 (4)检验无误后,根据上述计算得到的RSA私钥,计算报文MD5值即报文摘要的前8 位的签名值,并输入相应的文本框;点击“生成签名并检验”按钮,检验签名输入是

对称与非对称密钥的区别

密码学中两种常见的密码算法为对称密码算法(单钥密码算法)和非对称密码算法(公钥密码算法)。 所谓对称密钥算法是指如果一个加密算法的加密密钥和解密密钥相同,或者虽然不相同,但是可由其中的任意一个很容易的推导出另一个,即密钥是双方共享的。 非对称密钥算法是指一个加密算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥。这两个密钥其中一个称为公钥,用于加密,是公开的,另一个称为私钥,用于解密,是保密的。其中由公钥计算私钥是计算上不可行的。 这两种密码算法的不同之处主要有如下几个方面: 1、加解密时采用的密钥的差异:从上述对对称密钥算法和非对称密钥算法的描述中可看出,对称密钥加解密使用的同一个密钥,或者能从加密密钥很容易推出解密密钥;而非对称密钥算法加解密使用的不同密钥,其中一个很难推出另一个密钥。 2、算法上区别:①对称密钥算法采用的分组加密技术,即将待处理的明文按照固定长度分组,并对分组利用密钥进行数次的迭代编码,最终得到密文。解密的处理同样,在固定长度密钥控制下,以一个分组为单位进行数次迭代解码,得到明文。而非对称密钥算法采用一种特殊的数学函数,单向陷门函数(one way trapdoor function),即从一个方向求值是容易的,而其逆向计算却很困难,或者说是计算不可行的。加密时对明文利用公钥进行加密变换,得到密文。解密时对密文利用私钥进行解密变换,得到明文。②对称密钥算法具有加密处理简单,加解密速度快,密钥较短,发展历史悠久等特点,非对称密钥算法具有加解密速度慢的特点,密钥尺寸大,发展历史较短等特点。 3、密钥管理安全性的区别:对称密钥算法由于其算法是公开的,其保密性取决于对密钥的保密。由于加解密双方采用的密钥是相同的,因此密钥的分发、更换困难。而非对称密钥算法由于密钥已事先分配,无需在通信过程中传输密钥,安全性大大提高,也解决了密钥管理问题。 4、安全性:对称密钥算法由于其算法是公开的,其安全性依赖于分组的长度和密钥的长度,常的攻击方法包括:穷举密钥搜索法,字典攻击、查表攻击,差分密码分析,线性密码分析,其中最有效的当属差分密码分析,它通过分析明文对密文对的差值的影响来恢复某些密钥比特。非对称密钥算法安全性建立在所采用单向函数的难解性上,如椭圆曲线密码算法,许多密码专家认为它是指数级的难度,从已知求解算法看,160bit的椭圆曲线密码算法安全性相当于1024bit RSA算法。

数字加密技术综述

浅谈数字加密技术 【摘要】数字加密是研究利用数学算法将明文转变为不可能理解的密文和反过来将密文转变为可理解形式的明文的方法、手段和理论的一门科学。利用数字加密,你可以将敏感信息加密并通过一种并不安全的途径传递。这样,只有指定的收件人才能解读原始信息。 【关键词】电子签名;对称密钥技术;非对称密钥技术;数据签名;数字证书一,引言 随着互联网技术的快速发展,信息通过网络泄密的事件层出不穷。为了保证信息在传输和发布过程中的安全性,我们通常需要对信息进行加密。数据加密后可以有效的阻止消息在传递过程中被恶意截获,避免泄密事件发生。 二、什么是数字加密 电子签名是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。关于电子签名技术,主要有手书签名或者图章的模式识别技术、生物识别技术、基于量子力学的计算机技术等。由于技术落后或成本高等原因,上述电子签名技术没有获得普遍应用。目前技术成熟的、可实际使用的是基于PKI的数字签名技术。 数字签名的基础是加密技术,如对称密钥加密技术、非对称密钥加密技术、其中,基于(PKI PUBLIC KEY INFRASTRUCTURE)的非对称密钥加密技术是理解数字签名的一把金钥匙。 三、加密的相关概念

明文:也成为明码,可以直接被用户阅读并理解的原始报文。 密文:经过某种算法和密钥加密后的生成的不能直接被理解的报文,只有通过对应的算法和密钥,才可以还原为可以阅读和理解的原始报文信息。 密钥:明文与密文相互转换时,需要传递给加密或解密算法的数据,通常为一个字符串或数字。 加密:是指使用某种加密算法和密钥,将明文转换为密文,使得只有持有正确密钥的授权持有者才能对加密后的信息进行解密。 消息摘要:是对原始报文用hash函数进行计算而得到的定长的压缩输出,该压缩输出是一个单向散列值。 数字签名:是采用私钥对发送的消息摘要进行加密后,生成的一个字母数字串[1]。 四、传统加密算法 传统的加密方法的密钥是由简单的字符串组成的,这种加密方法比较稳定,它的好处在于可以秘密而又方便地变换密钥,从而达到保密的目的。常用的加密方法有四种:代码加密、替换加密、变位加密和一次性加密。 1、代码加密 发送秘密消息的最简单的方法,就是使用通信双方预先设定的一组代码,它简单而有效,得到了比较广泛的应用。例如: 密文:老鼠已经出洞了 明文:劫匪已出现在目标区 2、替换加密 替换加密是用一组密文字母来代替一组明文字母以隐藏明文,同时保持

实验三 非对称加密算法

实验三非对称密码算法(RSA) 实验日期:2012.9.27 班级:10网络安全(CIW)姓名:学号:一、实验目的 (1)理解非对称加密算法的原理和特点 (2)理解RSA算法的加密原理 二、实验要求 (1)会使用密码工具和VC++6.0 (2)准确完成实验内容,得出实验结果 (3)写出实验步骤和实验小结 三、实验步骤 本实验主机A、B为一组,C、D为一组,E、F为一组。 首先使用“快照X”恢复Windows系统环境。 (一) RSA生成公私钥及加密解密过程演示 (1)本机进入“密码工具”|“加密解密”|“RSA加密算法”|“公私钥”页签,在生成公私钥区输入素数p和素数q,这里要求p和q不能相等(因为很容易开平方求出p与q的值)并且p与q的乘积也不能小于 127(因为小于127不能包括所有的ASCII码,导致加密失败),你选用的素数p与q分别是:p=__71___;q=___53___。 (2)单击“随机选取正整数e”下拉按钮,随机选取e,e=__1013________。 如图1-1所示: 图1-1 素数p、q和随机数e (3)单击“生成公私钥”按钮生成公私钥,记录下公钥(1013,3763) , 私钥(2677,3763),如图1-2所示: 图1-2 生成的公私钥 (4)在公私钥生成演示区中输入素数p=_71__和素数q=_53__,还有正整数e=_1013___。 单击“开始演示”按钮,如图1-3所示,查看结果,填写表3-1。

图1-3 公私钥生成演示 表3-1 公私钥生成演示结果 私钥d2677私钥n3763 公钥e1013公钥n3763 (5)在加/解密演示区中输入明文m=_3760_,公钥 n=_3763_(m

非对称加密技术RSA在电子商务中的应用

非对称加密技术RSA在电子商务中的应用 摘要:本文论述和分析了非对称加密技术及其在电子商务安全方面的应用现状。加密技术是利用一定的密码算法, 对原始信息又称为明文加密使其变成不能识别的密文进行传输, 接收方再通过事先约定的解密方式将密文还原为明文的技术, 分为对称加密和非对称加密。借助RSA算法实现非对称加密和解密,实现在电子商务中一些交易活动的安全和保密。在电子商务系统中,RSA加密算法可以作为实现数据保密性和数据完整性的主要手段。叙述了如何在电子商务网站中,应用非对称加密算法RSA实现顾客个人信息的加密和数据完整性认证,讨论了加密算法所需的模、幂算法的构造、素数和强素数的生成、数据加密和数字签名协议等关键技术。 关键词:RSA;加密技术;电子商务;非对称加密;应用 电子商务正在改变着人们的生活以及整个社会的发展进程,网络贸易将引起人们对管理模式、工作和生活方式、乃至经营管理思维方式等等的综合革新。电子商务中的网络安全和交易安全是实现电子商务的关键之所在。网络安全是电子商务安全的基础, 一个完整的电子商务系统应建立在安全的网络基础设施之上。网络安全威胁主要是来自于黑客、计算机病毒等方面的攻击, 其安全技术涉及操作系统安全、防火墙、虚拟专用网和各种反黑客、反病毒及漏洞检测技术等。交易安全则是传统商务在互联网上应用时产生的各种安全问题, 即实现电子商务的有效性、保密性、完整性、认证性、和不可抵赖性。交易安全技术包括加密技术、数字签名、认证技术以及多种安全交易标准协议等, 而加密技术是其中最根本的技术。为保证电子商务中的数据和交易的安全、防止欺骗和确认交易双方的真实身份,加密技术是保障安全电子商务技术手段,加密技术20世纪70年代才进入到公共研究领域,随着计算机的高速发展加密技术也进入了崭新阶段。 一、加密技术 加密技术是一种主动的信息安全防范措施,是对信息进行重新编码,隐藏信息内容,使非法用户无法获取信息真实内容的一种技术手段。加密技术提供了信息加密保护的基本方法,通过不同的加密机制和加密算法实现对信息的保密和防止信息伪造。目前加密技术分为两类, 即对称加密和非对称加密, 它们的主要

相关文档
最新文档