密码学(二)---DES、SM、RSA

在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明:
信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。
非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要决定之前,请咨询相关领域的专业人士。
个人责任:使用本博客内容的风险由用户自行承担。作者不对因使用本博客内容而导致的任何直接或间接损失承担责任。
版权声明:本博客中的所有内容均为作者原创,如需转载,请注明出处。同时,若有引用他人作品,也将尽力标明出处,如有侵权请及时联系作者。
链接免责:博客中可能包含外部链接,作者对这些链接所指向的内容不负责任,访问此类链接需谨慎。
感谢您的理解与支持!希望本博客能够为您的学习提供帮助。

对称加密算法总结*

DES加密过程:

110011-->

首位和为行:11-->3

中间内容为列:1001-->9

--->14

---->1110

SM算法*

国产密码算法:是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前已 经公布的国产密码算法如下:

公钥密码分类*

■ 目前公认的比较安全的公钥密码有两类:

. 基于大素数因子分解困难性:RSA

· 基于离散对数问题困难性:DH、Elgamal、ECC   (椭圆曲线密码)

RSA算法

■RSA 算法是非对称算法,由Ronald Rivest、Adi Shamir、Leonard Adleman三人发明。RSA 算法中, 公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。

■ RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。 ■SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA 进行加密和数字签名功能。

■ 公钥密码思想是将传统密码的密钥K一分为二,分为加密钥Ke和解密钥Kd, 用加密钥Ke控制加密,用解 密钥Kd 控制解密。

■ 每个用户都将自己的姓名、地址和公开的加密钥等信息在KMC (密钥管理中心)登记,将公钥记入共享的 公钥数据库PKDB(Public Key Database)。

RSA三种模式-加密模式

■ (1)加密模式(确保数据的秘密性\机密性)

■ 发方:

·①A首先查PKDB,查 到B的公开的公钥KeB

·②A 用KeB加密明文M得到密文C:C=E(M,KeB)

·③A发密文C给B

■ 收方:

·①B接受C

·②B用自己的私钥KdB解密C,  得到明文M=D(C,KdB)

RSA 三种模式-认证模式

■ (2)认证模式(确保数据的真实性)

■ 发方:

·①A用自己的私钥KdA加密M, 得到密文C:C=E(M,KdA)

·②A发密文C给B

■ 收方:

· ①B接受C

·②B查PKDB, 查 到A 的公开的公钥KeA

·③用KeA解密C得到明文M:M=D(C,KeA)

RSA 三种模式-混合模式

■ (3) 加密认证混合模式(同时确保数据的秘密性和真实性)

■ 发方:

·①A 用自己的私钥KdA 加密M, 得到中间密文S:S=E(M,KdA)

·②然后A查PKDB, 查到B的公开的公钥KeB

·③A用KeB加密S得到最终的密文C:C=E(S,KeB) · ④A 发密文C 给B

■ 收方:

·①B接受C

·②B用自己的私KdB 解密C,得到中间密文S=D(C,KdB)

·③B查PKDB, 查 到A的公开的公钥KeA。用 KeA 解密S得到明文M,M=D(S,KeA)

非对称加密算法RSA-  相关数学基础(1)

■欧拉函数:对于一个正整数n,小 于n且与n互素(最大公约数只能是1)的正整数的个数,记为φ(n)。

·对于一个素数n, 可知φ(n)=n-1

·对于两个素数p和q,它们的乘积满足n=p*q,则可知 ·φ(n)=(p-1)*(q-1)

■欧几里得算法:gcd(a,b)表示a和b的最大公约数,gcd(a,b)=1,表示a,b最大公约数为1,说明a和b互质。

■同余:两个整数a,b,若它们除以整数m 所得的余数相等,则称a与b对于模m 同余,或a同余b模m, 记作 a=b(mod m)。

· 例如:40=1(mod 13),26=2 (mod 12)。

■求解乘法逆元

·5×d=1 mod 72,求d ?

·5×d-1=n×72(n=1,2,3,4...)

· 得:当n=2,d=29

非对称加密算法RSA计算

步骤

操作

是否保密

随机选择两个大素数p和q

p和q保密

计算n=p×q

n公开

计算φ(n)=(p-1)(q-1)

φ(n)保密

随机选取一个正整数e,1<e<φ(n)且gcd(e,φ(n))=1互素

e公开

根据e×d=1 mod φ(n),求出d

d保密

加密运算C=Me mod n,解密运算M=Cd mod n

RSA密码公开密钥(公钥)Ke=<n,e>,保密的解密钥(私钥)Kd=<p,q,d,φ(n)>

案例:

设素数p=5,q=17, 并令e=11, 明文M=2, 则RSA 的加密操作如下:(自己换着试一下)

已知:p=5 q=17 e=11 M=2

n=p*q=85

φ(n)=(p-1)(q-1)=4*16=64

e=11

ed=1modφ(n)

11d=64n+1

d=35,n=6

C=M^e mod n = 2^11 mod 6 =

M=C^d mod n = ....

■设在RSA 的公钥密码体制中,公钥为 (e,n)=(7,55),则私钥d=(66)。

.A.8           B.13         C.23         D.37

RSA密码的安全性

■ 因子分解攻击:小合数的因子分解是容易的,然而大合数的因子分解却是十分困难的。

■ 为了确保RSA 密码的安全,必须认真选择RSA 的密码参数,各个参数选择如下:

·应 用RSA 密码,应当采用足够大的整数n,p 和q要足够大并且p和q应为强素数。

·一般加密密钥和认证密钥选n为1024位,而平台根密钥和存储根密钥则选n为2048位。

·为了使加密速度快,e 的二进制表示中应当含有尽量少的1。

·为了使解密速度快,希望选用小的d, 但是d太小也是不好的。当d小于n的1/4时,已有求出d的攻击方法。

·不要许多用户共用一个模数n。

以下是常见加密方式的简要介绍: - 3DES(Triple Data Encryption Standard):对称加密算法,使用三次DES算法对数据进行加密。 - DES(Data Encryption Standard):对称加密算法,使用56位密钥对数据进行加密。 - AES(Advanced Encryption Standard):对称加密算法,是目前最常用的加密标准之一,使用128、192或256位密钥进行加密。 - DSA(Digital Signature Algorithm):非对称加密算法,用于数字签名。 - MD5(Message Digest Algorithm 5):散列函数,将数据转换为128位的散列值。 - MQV(Menezes–Qu–Vanstone Key Agreement Protocol):密钥协商协议。 - ECDSA(Elliptic Curve Digital Signature Algorithm):基于椭圆曲线密码学的数字签名算法。 - RSA(Rivest-Shamir-Adleman):非对称加密算法,用于加密和数字签名。 - SHA-1(Secure Hash Algorithm 1):散列函数,将数据转换为160位的散列值。 - SHA-2(Secure Hash Algorithm 2):包含SHA-224、SHA-256、SHA-384和SHA-512等几种不同长度的散列函数。 - SHA-3(Secure Hash Algorithm 3):最新的散列函数标准,包括多种长度的散列函数。 - SM2:国密算法,非对称加密算法,用于数字签名和密钥交换。 - SM3:国密算法,散列函数,用于生成固定长度的散列值。 - SM4:国密算法,对称加密算法,用于数据加密。 - TLS(Transport Layer Security):安全传输层协议,用于保护网络通信的安全性。 请注意,这只是对这些加密方式的简要介绍,每种加密方式都有更详细的特点和使用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔同

请给的动力,生活囧迫!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值