4.4非对称密码技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RSA密钥的生成
RSA算法归纳
选择两个大素数p和q,通常要求每个均大于10100。 计算n=pxq和φ (n) =(p-1)(q-1)。 选择一与φ (n)互质的数、令其为d 。 找到一个e满足e×d=1 (mod z)。 选好这些参数后,将明文划分成块,使得每个明文报文P 长度m满足0<m<n。加密P时,计算C=Pe(mod n),解密C 时计算P=Cd(mod n)。由于模运算的对称性,可以证明, 在确定的范围内,加密和解密函数是互逆的。
4. 4
非对称密码技术
1
非对称密码算法基本原理
2
RSA算法的原理
3
ECC算法与Diffie-Hellman算法
4.4.1 非对称密码学的基本原理
对称密码体制的缺陷:
密钥分配问题 通信双方要进行加密通信, 需要通过秘密的安全信道协商加密密钥, 而这种安全信道可能很难实现; 密钥管理问题 在有多个用户的网络中, 任何两个用户之间都需要有共享的秘密 钥,当网络中的用户n很大时,需要管理 的密钥数目是非常大 。 没有签名功能:当主体A收到主体B的电 子文挡(电子数据)时,无法向第三方 证明此电子文档确实来源于B。
i 0
计算am mod n am mod n =
[ a ] mod n
(2i)
bi0
=
[ a
bi0
(2i)
mod n
]
快速取模指数算法计算ab mod n
c 0;d 1 for i k downto 0 do c 2×c d (d ×d)mod n if bi=1 then c c+1 d (d ×a)mod n return d
4.4.1 非对称密码学的基本原理
Public-Key Distribution Schemes (PKDS) 用于交换秘密信息(依赖于双方主体) 常用于对称加密算法的密钥 Public Key Encryption (PKE) 用于加密任何消息 任何人可以用公钥加密消息 私钥的拥有者可以解密消息 Signature Schemes 用于生成对某消息的数字签名 私钥的拥有者生成数字签名 任何人可以用公钥验证签名
4.4.1 非对称密码学的基本原理
public-key/two-key/asymmetric 包括两个密钥:
公开密钥(public-key),PK, 可以被任 何人知道, 用于加密或验证签名 私钥(private-key),SK, 只能被消息 的接收者或签名者知道,用于解密或签 名
4.4.1 非对称密码学的基本原理
明文:M<n 密文:C=Me(mod n) 明文:M=Cd(mod n)
解密 (用d,n)
密文:C
示例
(1)密钥生成。设选择p=7, q=19,可计算出 n=p×q=7×19=133 计算出m=φ (n)=(p-1) ×(q-1)=(7-1) ×(19-1) 选择一个随机生成较小的整数e,进而求出d (2)加解密过程。RSA的原则是被加密的信息应小于p和q的较 小者,所以在这个例子中,要指明被加密的数字要小于7,于是 取明文码6为例。 加密:c=pe/n=65/133=7776/133=62,于是密文为62,把62传出 去。 解密:c=pd/n=6255/133,经过计算机,余数为6,则可以得到原始明文是6
相反地,用户也能用自己私人密钥对 使用公共密钥加密的数据加以处理。但该 方法对于加密敏感报文而言并不是很有用, 这是因为每个人都可以获得解密信息的公 共密钥。 当一个用户用纸的私人密钥对数据进 行了处理,可以用它提供的公共密钥对数 据加以处理,这提供了数字签名的基础。
非对称密码系统的应用类型
加密/解密 数字签名 会话密钥交换
为实现加密,需要公开(e, n),为实现解密需要(d, n)。
问题……
如何计算ab mod n?
如何判定一个给定的整数是素数? 如何找到足够大的素数p和q ?
如何计算ab mod n?
要点1:(a x b) mod n = [(a mod n) x (b mod n)] mod n] 要点2:a16=aaaaaaaaaaaaaaaa =a2, a4,a8, a16 更一般性的问题:am k m的二进制表示为bkbk-1…b0, 则 m bi 2 i
4.4.1 非对称密码学的基本原理
在实际保密通信过程中是将公钥密码和对称密码结 合使用.
用对称密码算法对消息加密. 用公钥密码算法实现密钥交换和数字签名.
混合加密体制
采用传统密码体制进行通信
明文m 发送者A 密文C 信息传送信道 明文m 接收者B
加密变换 C=Ek(m)
解密变换 m=Dk(c)
百度文库.4.1 非对称密码学的基本原理
若加密密钥和解密密钥不相同,从其中一个难以推 出另一个,则称为不对称密码技术或双钥密码技术。 不对称密码算法使用两把完全不同但又是完全匹配 的一对钥匙—公钥和私钥。在使用不对称密码算法 加密文件时,只有使用匹配的一对公钥和私钥,才 能完成对明文的加密和解密过程。 用户可以把密钥(公钥)公开地分发给任何人,合 适保密通信,但是也存在算法复杂、加密速度慢等 问题。
4.4.1 非对称密码学的基本原理
网上若有n个用户,则需要C(n,2)= n(n1)/2个密钥. 例如: n=1000,则C(1000,2)=500000.这么 大量的密钥存储和分发都会存在安全隐 患.
非对称密码体制的要求
(1)参与方B容易通过计算产生一对密钥 (公开密钥KUb和私有密钥KRb) (2)对于发送方A,通过计算产生对应的密文:C=EKUb(M) (3)接收方B使用私有密钥解密所得的密文以便恢复原来的报 文:M=DKRb(C)=DKRb(EKUb(M)) (4)敌对方即使知道公开密钥KUb,要确定私有密钥 KRb在计算 上是不可行的。 (5)敌对方即使知道公开密钥KUb和密文C,要想恢复原来的报 文M在计算上也是不可行的。 (6)加密和解密函数可以以两个次序中的任何一个来使用: M=DKRb(EKUb(M)) M=EKUb(DKRb(M))
4.4.1 非对称密码学的基本原理
4.4.1 非对称密码学的基本原理
4.4.1 非对称密码学的基本原理
4.4.1 非对称密码学的基本原理
涉及到各方:发送方、接收方、攻击者 涉及到数据:公钥、私钥、明文、密文 非对称密码算法的条件:
产生一对密钥是计算可行的 已知明文m和公钥PK,计算c=Epk(m)是容易的. 已知明文m和私钥SK,计算c=Esk(m)是容易的. 对于攻击者,利用公钥来推断私钥是计算不可行的 已知公钥和密文,恢复明文是计算不可行的 (可选)加密和解密的顺序可交换
4.4.1 非对称密码学的基本原理
76年Diffie和Hellman发表了“密码学的新方 向”,奠定了非对称密码学的基础 公钥技术是二十世纪最伟大的思想之一 改变了密钥分发的方式 可以广泛用于数字签名和身份认证服务 78年,RSA算法
4.4.1 非对称密码学的基本原理
陷门单向函数:是满足下列条件的函数f:
从中不难看出,此过程之中私钥的保密性和对于大整数的因式分解是困难的,这就保 证了信息传递过程中的安全性。
要求:若使RSA安全,p与q必为足够大的素数,使 分析者没有办法在有效时间内将n分解出来。建议选择 p和q大约是100位的十进制素数。 模n的长度要求至少是 512比特。 为了抵抗现有的整数分解算法,对RSA模n的素因子 p和q还有如下要求: (1)|p-q|很大,通常 p和q的长度相同; (2)p-1 和q-1分别含有大素因子p1和q1 (3)gcd(p1-1,q1-1)应该很小。 为了提高加密速度,通常取e为特定的小整数,如EDI国际标 准中规定 e=216+1,ISO/IEC9796中甚至允许取e=3。这时 加密速度一般比解密速度快10倍以上。
结 束
是
RSA密码体制描述
明文空间P=密文空间C=Zn 密钥的生成
选择互异素数p,q,计算n=p*q, (n)=(p-1)(q-1), 选择整数e 使((n),e)=1,1<e<(n),计算d,使d=e-1mod (n) 公钥Pk={e,n} 私钥Sk={d,n}
加密 (用e,n)
若明文为m,则PK,SK满足. 1) c = Epk(m) , 则: m = Dsk(c) 2) c = Esk(m) , 则: m = Dpk(c)
4.4.1 非对称密码学的概念
非对称密码相对对称密码的主要区别: 公钥密码算法的基本工具不再是代换 和置换.而是数学函数. 公钥密码算法是以非对称的形式使用 两个密钥.
4.4.1 非对称密码学的基本原理
从上述条件 可以看出,公开密钥体制下, 加密密钥不等于解密密钥。加密密钥可对 外公开,使任何用户都可将传送给此用户 的信息用公开密钥加密发送,而该用户唯 一保存的私人密钥是保密的,也只有它能 将密文复原、解密。虽然解密密钥理论上 可以由加密密钥推算出来,但这种算法设 计在实际上是不可能的。
如何判定一个给定的整数是素数
Miller and Rabin, WITNESS算法 WITNESS(a,n) 判定n 是否为素数,a是某个小于n的整数
1. 令bkbk-1…b0 为(n-1)的二进制表示, 2. d 1 3. for i k downto 0 4. do x d 5. d (d d) mod n 6. if d = 1 and x 1 and x n-1 7. then return TRUE 8. if bi = 1 9. then d (d a) mod n 10. if d 1 11. then return TRUE 12. return FALSE 返回值: TRUE: n一定不是素数 FALSE: n可能是素数
(1)给定x,计算y=f(x)是容易的 (2)给定y, 计算x使y=f(x)是困难的 (3)存在δ,已知δ 时,对给定的任何y,若相应的x存在,则计算x使 y=f(x)是容易的
研究公钥密码算法就是要找出合适的陷门单向函数.
注:1*. 仅满足(1)、(2)两条的称为单向函数;第(3)条称为陷门性,δ 称为陷 门信息。 2*. 当用陷门函数f作为加密函数时,可将f公开,这相当于公开加密密钥。 此时加密密钥便称为公开密钥,记为Pk。 f函数的设计者将δ 保密,用作解密 密钥,此时δ 称为秘密密钥,记为Sk。由于加密函数是公开的,任何人都可以 将信息x加密成y=f(x),然后送给函数的设计者(当然可以通过不安全信道传 送);由于设计者拥有Sk,他自然可以解出x=f-1(y)。 3*.单向陷门函数的第(2)条性质表明窃听者由截获的密文y=f(x)推测x是不可 行的。
采用公开密钥密码体制对传统密码体制的密钥进行加密后的通信
信息加密密 钥K
加密变换 Ck=EEB(k)
解密变换 k=DDB(Ck)
信息解密密 钥K
加密器
B公开密钥EB
解密器
B私有密钥DB
4.4.3 RSA算法的原理
由Rivest,Shamir和Adleman在1978年提出来的 数学基础:Euler定理,并建立在大整数因子分解假 设的公钥体系。简单地说就是找两个很大的质数。 一个用来做对外公开的公钥(Public key),另一 个不告诉任何人,称为私钥(Private key)。
公钥
C f ( M ) M e mod n
M f 1 (C ) C d mod n
私钥 图 RSA利用单向陷门函数的原理
开 始
产 生 第 一 个 素 数
产 生 第 二 个 素 数
两 个 素 数 是 否 相 同
否
产 生 公 钥
求 欧 拉 值
产 生 加 密 密 钥
产 生 解 密 密 钥
4.4.1 非对称密码学的基本原理
非对称加密算法的优缺点:
优点:
大型网络中每个用户需要的密钥量少. 只要对私钥保密,而公钥只要保证它的真实性. 可以实现对信息加密和数字签名功能.
缺点:
公钥加密比对称加密的速度要慢几个数量级. 公钥加密方案的密钥长度比对称加密的密钥要长.