[XJTU计算机网络安全与管理]——第五讲公钥加密算法

这篇具有很好参考价值的文章主要介绍了[XJTU计算机网络安全与管理]——第五讲公钥加密算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

一、数论知识补充

素数

素数是除了1与自身无其他因子的数;它们无法被写为数字的乘积;1一般不再考虑之内

例如:2,3,5,7是素数,4,6,8,9不是

素数是数论研究的中心

200以内的素数有:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

素因子

N的分解就是将N写为其他数字的分解:n=a x b x c

分解一个数要比通过将因子相乘得到一个数要困难得多

素分解:因子都是素数

互质与最大公约数GCD

当两个数最大公约数是1时称两个数互素

相反的,我们可以通过比较它们的素因子的最小阶数得到

最大公约数可以用欧几里得算法得到

费马小定理——记住

ap-1 mod p = 1 ,这里的p为素数且GCD(a,p)=1

36 mod 7 = 1

在公钥加密与素性检验中很有用

欧拉函数——记住

对于模n的算术运算

其完全剩余集为:0…n-1

将完全剩余集中与n互素的元素的个数称为欧拉函数Euler Totient Function ø(n)——记住

例:n=10

完全剩余集为{0,1,2,3,4,5,6,7,8,9}

其中与n互素的为{1,3,7,9}

欧拉函数值为4

欧拉定理

费尔马定理的推广

若gcd(a,n)=1则对于任意的a,n有 a Φ ( n ) m o d    n = 1 a^{\Phi(n)}\mod n=1 aΦ(n)modn=1

举例

1、a=3;n=10; ø(10)=4;

因此34= 81 = 1 mod 10

2、a=2;n=11; ø(11)=10;

1~10都和11互素,一个素数p的欧拉函数值为p-1,费马小定理是欧拉定理的特殊情况

因此210= 1024 = 1 mod 11

素性检验

经常被用来寻找大素数

传统的方式是试除法:该方法通常用于较小的数字

实际应用中通常利用素数的统计学特征进行选择:

测试所有的素数都满足的特性

但有些合数也同样满足

素数大约是每ln n出现,由于可以忽略偶数所以实际上在n中平均下来看大约寻找一个素数需要的运算量是 0.5 ln ⁡ n 0.5\ln n 0.5lnn

本原根

欧拉定理我们有: a Φ ( n ) m o d    n = 1 a^{\Phi(n)}\mod n=1 aΦ(n)modn=1

考虑 a m = 1 ( m o d    n ) , GCD ( a , n ) = 1 a^m=1 (\mod n),\text{GCD}(a,n)=1 am=1(modn),GCD(a,n)=1

M是一定存在的(因为可以 m = Φ ( n ) m = \Phi(n) m=Φ(n)

一旦阶数达到m则出现循环

m = Φ ( n ) m = \Phi(n) m=Φ(n)那么a被称为本原根

若p为素数则连续不断的a的阶生成了模p的群。

二、公钥密码学

公钥密码与传统密钥比较

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

公钥密码学的引入

私钥密码学

传统的私钥加密使用单一的密钥

发送方与接收方共享密钥

若密钥泄露则通信会出现泄密

是对称的,当事双方地位均等。因此无法避免当接收方伪造消息并声称来源于发送方

背景

对称密钥编码所面临的难题:

密钥分配:通信密钥太多,管理和分发困难。

数字签名和认证。

密码体制上的突破

Diffie & Hellman,“New Direction in Cryptography”,1976。

首次公开提出了“公开密钥密码编码学”的概念。

这是一个与对称密码编码截然不同的方案。

提出公开密钥的理论时,其实用性并没有又得到证明:

当时还未发现满足公开密钥编码理论的算法;

直到1978 年,RSA 算法的提出。

公钥密码学

也许是3000年来密码学发展史中最巨大的进步

使用两个密钥-私钥与公钥

非对称,因此参与者地位不再相当

通过巧妙的利用数论观念实现

是私钥密码学的补充而不是取代

为解决两个关键性问题

1️⃣ 密钥分配(key distribution)-如何在不需要密钥分配中心KDC的前提下安全通信

2️⃣ 数字签名-如何验证消息来源于被声称的发送方

公开提出:Whitfield Diffie & Martin Hellman 1976

其实在60年代中期已在NSA中提出

公钥密码体制

公钥/双密钥/非对称密码学涉及两个密钥

公钥:可被所有人知道,可被用来加密消息与验证签名

私钥:仅被接受者所知,用来解密消息与创建签名。

拿私钥加密就是创建签名

公钥加的密,私钥解开;私钥加的密,公钥解开

该类算法被称为非对称因为:加密消息或验证签名的那一方无法解密消息或创建签名

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

其主要步骤如下:

1️⃣ 每一用户产生一对密钥,用来加密和解密消息。

2️⃣ 每一用户将其中一个密钥存于公开的寄存器或其他可访问的文件中,该密钥称为公钥,另一密钥是私有的。如图9.1(a)所示,每一用户可以拥有若干其他用户的公钥。

3️⃣ 若Bob要发消息给Alice,则Bob用Alice的公钥对消息加密

4️⃣ Alice收到消息后,用其私钥对消息解密。由于只有Alice知道其自身的私钥,所以其他的接收者均不能解密出消息。

利用这种方法,通信各方均可访问公钥,而私钥是各通信方在本地产生的,所以不必进行分配。只要用户的私钥受到保护,保持秘密性,那么通信就是安全的。在任何时刻,系统可以改变其私钥,并公布相应的公钥以替代原来的公钥。

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

在这种方法中,发送方首先用其私钥对消息加密,得到数字签名,然后再用接收方的公钥加密,所得的密文只能被拥有相应私钥的接收方解密,这样可保证消息的保密性,但这种方法的缺点是,在每次通信中要执行四次复杂的公钥算法而不是两次。
Z = E ( P U b , E ( P R a , X ) ) X = D ( P U a , D ( P R b , Z ) ) 其 中 P R 为 私 钥 , P U 为 公 钥 Z=E(PU_b,E(PR_a,X))\\ X=D(PU_a,D(PR_b,Z))\\ 其中PR为私钥,PU为公钥 Z=E(PUb,E(PRa,X))X=D(PUa,D(PRb,Z))PRPU

公钥密码算法的特征

公钥密码算法依赖于两个密钥,这里:

如果仅知道算法与加密密钥那么要获取解密密钥在计算上是不可行的

当知道相应的加/解密密钥时进行加解密运算在计算上是比较容易的

相关联的两个密钥都可以被用来加密消息而另一个则被用来解密

公钥密码学的应用

通常被用在三个范畴

1️⃣ 加密消息(提供安全性)

2️⃣ 数字签名(提供鉴别)

3️⃣ 密钥交换(会话密钥)

公钥密码策略的安全性

像私钥密码算法一样,采用暴力破解理论上是可行的。

密钥非常长(512bit)(目前2048~3072bit)

安全性依赖于足够大的加解密与密码分析之间的难度差异

需要非常大的数字

相比于私钥加密要慢

公钥密码算法基础

单向函数:对于一个函数 f ( x ) f(x) f(x),如果对于其定义域上的任意 x, f ( x ) f(x) f(x)都容易计算,同时,对于其值域中几乎所有的取值 y ,计算其逆函数 f − 1 ( y ) f^{-1}(y) f1(y)都是不可行的,则函数 f ( x ) f(x) f(x)被称为单向函数

可以提供单向函数的三大数学难题

大整数分解问题(简称IFP);

离散对数问题(简称DLP);

椭圆曲线离散对数问题(简称ECDLP)。

单向陷门函数:对于一个单向函数 f ( x ) f(x) f(x),如果其逆函数 f − 1 ( y ) f^{-1}(y) f1(y)在已知某些辅助信息的情况下容易求解得出,则称该单向函数 f ( x ) f(x) f(x)为单向陷门函数。

构造公钥密码系统的关键是如何在求解某个单向函数的逆函数的NP完全问题中设置合理的“陷门”

一些常用的公钥密码算法

基于因子分解问题的Rabin算法;

椭圆曲线公钥算法;

基于有限域中离散对数难题的ElGamal公钥密码算法

基于代数编码系统的McEliece公钥密码算法;

基于*“子集和难题的Merkle-Hellman Knapsack**公钥密码算法;*

目前被认为安全的Knapsack型公钥密码算法Chor-Rivest

三、RSA算法——重点

Rivest, Shamir & Adleman of MIT in 1977

最为人所知与广泛采用的公钥策略

基于整数有限域中模p的指数运算

指数运算需要O((log n)3) (容易)

使用大整数(1024bits)

安全性来源于大整数的分解困难

分解需要 O ( e log ⁡ n log ⁡ log ⁡ n ) O(e^{\log n\log \log n}) O(elognloglogn)(困难)

RSA密钥的建立

用户通过如下过程生成密钥对

1️⃣ 选择两个随机的大素数p,q

2️⃣ 计算它们的乘积(系统的模) n = p × q n=p\times q n=p×q

注意欧拉函数值 Φ ( n ) = ( p − 1 ) ( q − 1 ) \Phi(n)=(p-1)(q-1) Φ(n)=(p1)(q1)

3️⃣ 随机选取加密密钥e

这里 1 < e < Φ ( n ) , gcd ( e , Φ ( n ) ) = 1 1<e<\Phi(n),\text{gcd}(e,\Phi(n))=1 1<e<Φ(n)gcd(e,Φ(n))=1

4️⃣ 解下面的等式获得解密密钥d

e . d = 1 m o d    Φ ( n ) a n d 0 ≤ d ≤ n e.d=1 \mod \Phi(n) \quad and\quad 0≤d≤n e.d=1modΦ(n)and0dn

5️⃣ 公开其公钥: P U = { e , n } PU=\{e,n\} PU={en};保留私钥: P R = { d , n } PR=\{d,n\} PR={dn}

RSA的使用

1️⃣ 加密一条消息M,发送方需要:

获取公钥PU={e,n}

计算C = Me mod n, where 0≤M<n

2️⃣ 解密C,接收方需要

利用私钥PR={d,n}

计算M = Cd mod n

3️⃣ 必要的时候需要进行分块

举例

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

1️⃣ p = 17   &   q = 11 p=17\ \&\ q=11 p=17 & q=11

2️⃣ n = p q = 17 × 11 = 187 n = pq =17\times 11=187 n=pq=17×11=187

3️⃣ Φ ( n ) = ( p – 1 ) ( q − 1 ) = 16 × 10 = 160 \Phi(n)=(p–1)(q-1)=16 \times 10=160 Φ(n)=(p1)(q1)=16×10=160

4️⃣ e : gcd ( e , 160 ) = 1 ; e = 7 e: \text{gcd}(e,160)=1; e=7 e:gcd(e,160)=1;e=7

5️⃣ d : d ⋅ e = 1 m o d    160   a n d   d < 160   V a l u e   i s   d = 23   s i n c e   23 × 7 = 161 = 1 × 160 + 1 d: d\cdot e=1 \mod 160 \ and \ d < 160\ Value\ is\ d=23 \ since\ 23\times7=161= 1\times160+1 d:de=1mod160 and d<160 Value is d=23 since 23×7=161=1×160+1

6️⃣ P U = { 7 , 187 } PU=\{7,187\} PU={7,187}

7️⃣ P R = { 23 , 187 } PR=\{23,187\} PR={23,187}

加密解密过程如下:

选取M=88(88<187)

加密: C = 8 8 7 m o d    187 = 11 C=88^7\mod 187=11 C=887mod187=11

解密: M = 1 1 23 m o d    187 = 88 M=11^{23}\mod 187=88 M=1123mod187=88

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

数学的破解有三种:

分解n,从而获得ø(n) 然后是 d

直接确定ø(n) ,然后是d

直接d

目前大家觉得1024-2048bit是安全的。

四、Diffie-Hellman密钥交换

第一个提出的公钥类策略

Diffie&Hellman

是一个使用的公开交换密钥的方法

在大量的商业应用中使用

该算法的有效性是建立在计算离散对数很困难的基础上

算法

共享的参数:

大素数 q或多项式

一个 mod q的本原根a:即a mod q,a2 mod q,… ,aq-1 mod q各不相同

在这种方法中,素数q和本原根α是两个公开的整数,假定用户A和B希望交换密钥,那么用户A选择一个随机整数 X A < q X_A<q XA<q,并计算 Y A = α X A m o d    q Y_A=\alpha ^{X_A}\mod q YA=αXAmodq,类似的,用户B也随机选择一个随机整数 X B < q X_B<q XB<q,并计算 Y B = α X B m o d    q Y_B=\alpha ^{X_B}\mod q YB=αXBmodq

A和B保持其X是私有的,但是对另一方而言Y是公开访问的,即 X A 和 X B X_A和X_B XAXB是私有的, Y A 和 Y B Y_A和Y_B YAYB是公开的。

用户A计算 K = ( Y B ) X A m o d    q K=(Y_B)^{X_A}\mod q K=(YB)XAmodq并将其作为密钥;用户B计算 K = ( Y A ) X B m o d    q K=(Y_A)^{X_B}\mod q K=(YA)XBmodq并将其作为密钥,这两种计算所得的结果相同。

至此双方完成了密钥的交换。通常这个秘密值被用于对称密码的密钥。现在考虑一个敌手能够观察到密钥交换的全过程并且期望得到这个秘密K。由于XA和XB是私有的,所以攻击者只能通过q,α,YA,YB来进行攻击,这样,他就必须求离散对数才能确定密钥。例如,要对用户B的密钥进行攻击,攻击者就必须先计算
X B = d log ⁡ α , q ( Y B ) X_B=d\log_{\alpha,q}(Y_B) XB=dlogα,q(YB)
然后他就可以像用户B那样计算出密钥K。
K = ( Y A ) X B m o d    q K=(Y_A)^{X_B}\mod q K=(YA)XBmodq
计算过程如下:

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

Diffie-Hellman密钥交换的安全性建立在下述事实之上:求关于素数的模素数幂运算相对容易,而计算离散对数却非常困难:对于大素数,求离散对数被认为是不可行的。

举例说明

Alice 和 Bob 希望交换密钥:

1️⃣ 共享 q=353 与 α=3

2️⃣ 选择密钥:

A 选择XA=97, B 选择XB=233

3️⃣ 计算公钥:

YA=397 mod 353 = 40 (Alice)

YB=3233 mod 353 = 248 (Bob)

4️⃣ 会话密钥:
K A B = ( Y B ) X A m o d    353 = 24 8 97 m o d    353 = 160 A l i c e 计 算 得 到 K A B = ( Y A ) X B m o d    353 = 4 0 233 m o d    353 = 160 B o b 计 算 得 到 K_{AB}=(Y_B)^{X_A}\mod 353=248^{97}\mod 353=160 \quad Alice计算得到\\ K_{AB}=(Y_A)^{X_B}\mod 353=40^{233}\mod 353=160 \quad Bob计算得到\\ KAB=(YB)XAmod353=24897mod353=160AliceKAB=(YA)XBmod353=40233mod353=160Bob

五、EIgamal 密码体制——基于离散对数

与Diffie-Hellman一样,ElGamal的系统用户也是共同选择一个素数q,α是q的素根。

🔑 用户A生成的密钥对如下:

1️⃣ 随机生成整数XA使得1<XA<q-1。

2️⃣ 计算 Y A = α X A m o d    q Y_A=\alpha ^{X_A}\mod q YA=αXAmodq

3️⃣ A的私钥为 X A X_A XA,公开密钥为 { q , α , Y A } \{q,\alpha,Y_A\} {q,α,YA}

🔑 其他任何用户B通过A的公开密钥可以加密信息:

1️⃣ 将信息表示为一个整数M,其中1≤M≤q-1,以分组密码序列的方式来发送信息,其
中每个分块的长度不小于整数q。

2️⃣ 选择任意整数k,使得1≤k≤q-1。

3️⃣ 计算一次密钥 K = ( Y A ) k  mod  q K=(Y_A)^k\ \text{mod}\ q K=(YA)k mod q

4️⃣ 将M加密成明文对 ( C 1 , C 2 ) (C_1,C_2) (C1,C2),其中

C 1 = α k  mod  q ; C 2 = K M  mod  q C_1=\alpha ^k\ \text{mod}\ q;C_2=KM\ \text{mod}\ q C1=αk mod q;C2=KM mod q

🔑 用户A恢复明文:

1️⃣ 通过计算 K = ( C 1 ) X A  mod  q K=(C_1)^{X_A}\ \text{mod}\ q K=(C1)XA mod q恢复密钥。

2️⃣ 计算 M = ( C 2 K − 1 )  mod  q M=(C_2K^{-1})\ \text{mod}\ q M=(C2K1) mod q

可用下一个图进行说明:

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

[XJTU计算机网络安全与管理]——第五讲公钥加密算法

若信息需要分组加密后发出则要求每个分组必须使用唯一的 k k k,否则对手可用一个已知的分组M1计算其他

六、椭圆曲线密码体制

优点:

密钥尺度较小;

参数选择较灵活;

具有由数学难题保证的安全性;

实现速度较快。

参考资料

[1] 西安交通大学计算机网络安全与管理2022年春PPT 田暄

[2] 密码编码学与网络安全(第七版),William Stallings著,王后珍等译文章来源地址https://www.toymoban.com/news/detail-426597.html

到了这里,关于[XJTU计算机网络安全与管理]——第五讲公钥加密算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 计算机网络】网络安全 : 计算机网络安全威胁 ( 四种网络攻击类型 | 主动攻击与被动攻击 | 分布式拒绝服务攻击 DDos | 恶意程序 | 计算机网络安全目标)

    计算机网络】网络安全 : 计算机网络安全威胁 ( 四种网络攻击类型 | 主动攻击与被动攻击 | 分布式拒绝服务攻击 DDos | 恶意程序 | 计算机网络安全目标)

    一、网络安全内容 网络安全内容 : 网络安全概述 对称加密 和 非对称加密 体质 数字签名 因特网安全协议 链路加密 与 端到端加密 防火墙 二、四种网络攻击 四种网络攻击 : ① 截获 : 窃听 其它的 通信内容 , 不影响网络通信 ; ② 中断 : 中断 他人 的网络通信 ; ③ 篡改 : 篡改

    2024年02月12日
    浏览(15)
  • 计算机网络安全

    计算机网络成为我们现代生活中不可或缺的一部分,人们通过互联网与世界各地的信息进行交流。然而,这种便利性也带来了许多网络安全问题。网络犯罪和黑客攻击已经成为我们社会中一个重要的问题。因此,保护计算机网络安全显得尤为重要。 网络安全威胁种类繁多,并

    2024年02月06日
    浏览(17)
  • 网络安全引言(网络安全概述、计算机安全、OSI安全体系、网络安全模型)

    网络安全引言(网络安全概述、计算机安全、OSI安全体系、网络安全模型)

    1.1 网络中的“安全”问题 信息安全经历两大变革: 从物理和管理方法 转变成 自动化工具保护信息安全 终端普遍使用 网络传输数据并保证数据安全 网络中的“安全”问题 监听 截获 篡改 假冒 假冒网点 Email截取 否认 1.2 网络安全定义 网络安全是一个跨多门学科的综合性科

    2024年02月19日
    浏览(15)
  • 0121-1-计算机网络安全

    0121-1-计算机网络安全

    1.Get 和 Post 的区别 结构 :get 有请求体,post没有请求体 应用场景 :get 用于获取数据,post用于提交数据; 缓存 :get 的缓存保存在浏览器和web服务器日志中; 传输方式 :get 使用明文传输,post请求保存在请求体中; 请求长度 :get 长度限制在2kb以内。 2.常见的HTTP请求 get、

    2024年01月24日
    浏览(16)
  • 计算机网络安全的背景

    虽然传统的计算机发展和当今的电子商务不同,但是不可否认网络已经成 为非常重要的信息和数据互换交换的平台。但是随着网络不断发展渗透到人们的日 常生活、手机终端、交易支付等环节时,网络安全已经成为一个焦点和不可逾越的 发展鸿沟。尽管目前网上支付安全方

    2024年02月10日
    浏览(20)
  • 【网络安全】1.2 计算机网络基础

    【网络安全】1.2 计算机网络基础

    计算机网络是一个非常大的主题,但在我们开始深入探讨网络安全之前,我们需要理解一些基本的概念和原理。本章将涵盖计算机网络的基本概念,包括网络的类型,网络的工作原理,以及一些常用的网络技术和协议。 计算机网络是由两台或更多的计算机组成的系统,这些计

    2024年02月07日
    浏览(15)
  • 【吃透网络安全】2023软考网络管理员考点网络安全(三)计算机系统安全评估

    【吃透网络安全】2023软考网络管理员考点网络安全(三)计算机系统安全评估

    计算机系统安全评估准则,计算机系统安全评估历史,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 后面还有更多续篇希望大家能给个赞哈,这边提供个快捷入口! 第一节网络管理员考点网络安全(1)之安全基础 第二节网络管理员考点网络

    2024年02月13日
    浏览(32)
  • 计算机网络安全基础知识复习

    计算机安全: 对于一个自动化的信息系统,采取措施确保信息系统资源(包括硬件、软件、固件、信息数据和通信)的完整性,可用性和保密性。 目标/服务: 认证;访问控制;数据保密性;数据完整性,不可否认性,可用性. 安全攻击 :任何危及信息系统安全的行为。 安全机

    2024年02月09日
    浏览(13)
  • 计算机网络安全——密码学入门

    计算机网络安全——密码学入门

            网络安全是指在网络领域、专业领域的网络安全包括在基础计算机网络基础设施中所做的规定,网络管理员采取的策略来保护网络及网络可访问资源免受未经授权的访问,以及对其有效性(或缺乏)的持续不断的监控和测量的结合。 1.1.1 保密性         只有授

    2024年01月19日
    浏览(23)
  • 网络空间安全及计算机领域常见英语单词及短语——网络安全(一)

    Cybersecurity 网络安全 Network security 网络安全 Information security 信息安全 Data protection 数据保护 Threat analysis 威胁分析 Risk assessment 风险评估 Intrusion detection system (IDS) 入侵检测系统 Intrusion prevention system (IPS) 入侵防御系统 Malware detection 恶意软件检测 Vulnerability assessment 漏洞评估 Ac

    2024年02月07日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包