【实验原理】
非对称密码体制又称为公钥密码体制,加解密使用公私钥密钥对,私钥由密钥拥有者保管,公钥可以公开,基于公开渠道进行分发,解决了对称密钥体制中密钥管理、分发和数字签名等难题。
-
RSA算法
RSA公钥算法由Rivest、Shamir、Adleman于1978年提出的,是目前公钥密码的国际标准。算法的数学基础是Euler定理,是基于Deffie-Hellman的单项陷门函数的定义而给出的第一个公钥密码的实际实现,其安全性建立在大整数因子分解的困难性之上。
RSA算法的明文空间M=密文空间C=Zn整数,其算法描述如下:
密钥生成
随机选择两个大素数p和q,计算n=p•q,;选择一个随机整数e<,满足,计算整数;公开公钥(n,e),安全的销毁p、q和,并保留(d,n)作为私钥。
加密
解密
使用中国剩余定理可以加速RSA密码算法的实现。
-
ElGamal算法
ElGamal算法是Deffie-Hellman单项陷门函数的一个成功应用,把函数转化为公钥加密体制,其安全性建立在有限域上的离散对数问题。
ElGamal算法的描述如下:
密钥生成
随机选择一个素数p,计算p个元素的有限域的乘法群的一个随机乘法生成元g;均匀随机地在模p-1的整数集合中选取x,计算;把(p,g,y)作为公钥公开,把(p,g,x)作为私钥。
加密
均匀随机地在模p-1的整数集合中选取k,消息m<p,计算密文对(c1,c2):
解密
实验步骤
ElGamal
加解密计算
- 选择“ElGamal”标签,进入ElGamal实验界面。
- 选择明文形式,输入明文信息。
- 参数生成
点击“生成g和P”按钮,生成ElGamal参数p和g,如图1.1.7‑17所示。
图1.1.7‑17
密钥生成
点击“生成密钥”按钮,生成密钥Y和X,如图1.1.7‑18所示。
图1.1.7‑18
加密
点击“加密”按钮,使用公开密钥Y对明文加密,密文以十六进制形式显示在密文文本框中,如图1.1.7‑19所示。
图1.1.7‑19
解密
清除明文文本框中的内容,点击“解密”按钮对密文进行解密,明文默认以十六进制形式显示在明文文本框中,如图1.1.7‑20所示;可选择以文本形式查看明文。