其他分享
首页 > 其他分享> > 一、非对称密码和RAS基本知识

一、非对称密码和RAS基本知识

作者:互联网

一、非对称密码

1.基本介绍
2.公钥密码体制要求

C = E K U ( M ) C = E_{KU}(M) C=EKU​(M)

M = D K R ( C ) = D K R ( E K U ( M ) ) M = D_{KR}(C) = D_{KR}(E_{KU}(M)) M=DKR​(C)=DKR​(EKU​(M))

M = D K R ( E K U ( M )   ( 机 密 性 实 现 ) M = D K U ( E K R ( M ) )   ( 数 字 签 名 实 现 ) M=D_{KR}(E_{KU}(M) \ (机密性实现)\\ M=D_{KU}(E_{KR}(M)) \ (数字签名实现) M=DKR​(EKU​(M) (机密性实现)M=DKU​(EKR​(M)) (数字签名实现)

2.单向陷门函数

单项陷门函数是满足下列条件的函数 f

公钥加密体制中的公钥用于单向陷门函数的正向(加密)计算,私钥用于反向(解密)计算。

也就是说,对于单向陷门函数而言,它是指除非知道某种附加信息,否则这样的函数在一个方向上计算容易,在相反的方向上不能计算;有了附加信息,函数的逆就可以容易计算出来。

3.本原元和离散对数

对于一个素数 q,如果数值 a m o d q , a 2 m o d q , ⋯ a q − 1 m o d q a mod q,a^2 mod q,\cdots a^{q-1} mod q amodq,a2modq,⋯aq−1modq 是各不相同的正数,并且以某种排列方式组成了从 1q-1 的所有整数,则称整数 a 是素数 q 的一个本原元。本原元也成为生成元、基元或根元。(欧拉定理中的内容)

对于一个整数 b ,和素数 q 的一个本原元 a ,可以找到唯一的一个指数 i ,使得
b = a i m o d q ( 0 ≤ i ≤ q − 1 ) b = a^i mod q(0\leq i\leq q-1) b=aimodq(0≤i≤q−1)
成立。则指数 i 称为 b 的以 a 为底的模 q 的离散对数。

对于给定的 a , iq ,容易计算出 b;在最坏情况下需执行 i 次乘法,并且存在计算出 b 的有效算法。但是给定 baq ,计算出 i 一般非常困难,这就是离散对数问题的难解性。

二、RSA

1.算法描述
2.密钥生成

首先,选择两个互异的大素数 pq(保密),计算 n = p q n = p q n=pq (公开), φ ( n ) = ( p − 1 ) ( q − 1 ) \varphi (n) = (p-1)(q-1) φ(n)=(p−1)(q−1) (保密),选择一个随机整数 e ( 0 < e < φ ( n ) ) e(0 < e < \varphi(n)) e(0<e<φ(n)) (公开), 满足 g c d ( e , φ ( n ) ) = 1 gcd(e, \varphi(n)) = 1 gcd(e,φ(n))=1 。计算 d = e − 1 m o d φ ( n ) d = e^{-1} mod \varphi(n) d=e−1modφ(n) (保密)。 确定:公钥 KU = {e,n}, 私钥 KR = {d,p,q}, 或 KR = {d, n}

3.加密

已知:明文 M < n (因为所有明文和密文空间均为 Zn,即在 0 ~ n -1 的范围内;实际处理时对于 M >= n 的情形,则需要对大报文进行分组,确保每一个分组满足该条件) 和公钥 KU = {e,n}。计算密文:
C = M e m o d n C = M^e mod n C=Memodn

4.解密

已知:密文 C 和私钥 KR = {d, n}。计算明文:
M = C d m o d n M = C^d mod n M=Cdmodn

5.算法归纳

标签:KU,密钥,基本知识,KR,RAS,计算,密文,非对称,mod
来源: https://blog.csdn.net/weixin_50972562/article/details/121595714