应用于数字签名
1.过程
- 发送者用其秘密密钥对邮件进行加密,建立一个 “ 数字签名 ”
- 发送者通过公开的通信途径将签名和邮件一起发给接收者
- 接收者在接收后使用发送者的公开密钥对签名进行解密
- 如果计算的结果相同就通过了验证
数字签名有下述特点 :
( l) 接收者能够核实发送者对报文 的签名 ;
(2 ) 发送者事后不能抵赖对报文 的签名;
(3 ) 接收者不能伪造对报文的签名 。
2. 基本原理
- 发送方 A 用其私有密钥 d 对报文摘要 M 进行运算,加密后形成密文 Erypt ( M , d) ,传送给接收方 B
- 接收方 B 用己知 A 的公开密钥 e 对接收到的内容进行运算,得出解密结果 Drypt( Erypt(M ,d) ,e)
- 除了发送方 A 以外没有人能拥有发送方 A 的私有密钥并产生出密文Erypt(M ,d) 。
3.RSA 系统
RSA是首个能同时用于加解密和数字签名的算法,易于理解和操作 。 可分为
系统两种形式,后者为前者 的一种推广 。
1 . RSA (n,e) 系统
- 随机选大的素数 p , q
- 计算
- 再随机选 e , 并计算 d ,满足以下公式,则公钥为 ( e ,n ) ,私钥为 (d ,n )
- 设原文 为 m ( m < n ,否则把原文分成小于 n 的数据块) ,则加密后的密文c , 解密后的明文m , 分别如下:
参数选取原则应是 :
(p - q) 差不宜太小 ,
gcd( (p - l) ,(q - 1))不能太大
(p - l) 或 (q - l) 都应至少有一大素数因子
2 . RSA k 系统
-
设有 k 个用户 。 随机选大素数 p , q 。计算
-
随机选 k 个正整数,即两两互素
-
计算 di (l ≤ i ≤k ) , 使得
-
假设原文信息为 m ,0≤m < n ,
-
计算密文
-
将 k 维向量 ( c1,c2, , ,ck ) 作为 m 对应的密文
-
解密后 的明文