非对称加密技术的教学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非对称加密技术的教学探讨
一、问题的提出
非对称加密技术是电子商务安全的基础,是电子商务安全课程的教学重点。笔者查阅许多电子商务安全教材、网络安全教材,发现这些教材过于注重理论,涉及具体操作较少,内容不够通俗易懂。笔者认为,学生掌握非对称加密技术,需要学习以下四个方面:图形直观认识、
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@,并导出公钥。
第二,导入老师的公钥“laoshi公钥.asc”。
第三,新建word文档,录入文本“我是××号学生,完成pgp
作业”→复制文本→打开pgpmail中的“加签并签名”图标→选择剪贴板→选择接收人laoshi@→输入自己的密码→确定。第四,将结果粘贴到文本中提交上来、同时还要提交学生的公钥。老师导入自己的私钥,选择pgpmail中的“解密/效验”图标,输入自己的密码解密文本,实现对接收者身份的验证;若导入学生