非对称加密技术非对称加密技术的教学探讨
一、问题的提出非对称加密技术是电子商务安全的基础,是电子商务安全课程的教学重点。
笔者查阅许多电子商务安全教材、网络安全教材,发现这些教材过于注重理论,涉及具体操作较少,内容不够通俗易懂。
笔者认为,学生掌握非对称加密技术,需要学习以下四个方面:图形直观认识、
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.→输入自己的密码→确定。
第四,将结果粘贴到文本中提交上来、同时还要提交学生的公钥。
老师导入自己的私钥,选择PGPmail中的“解密/效验”图标,输入自己的密码解密文本,实现对接收者身份的验证;若导入学生的公钥,则显示签名者的信息,实现对发送者身份的验证。
通过PGP的实际应用,利用两个密钥实现对发送方和接收方身份的认证问题,让学生掌握非对称加密技术。
通过图形、实操、算法分析、实际应用由浅入深,由理论到实践不断深化学习非对称加密技术。
(:广东省高级技工学校)
内容仅供参考。