searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

数据加密以及国密基础知识

2022-06-30 06:30:23
31
0

加密基础知识

为什么要进行加密

数据加密是为了保证 数据存储 和 传输中 的保密性、完整性、及进行身份验证。

在这里插入图片描述

密码学的发展史

在这里插入图片描述

古典密码学

置换密码加密法

置换密码(Transposition Technique): 将明文字母互相换位,打乱顺序。

在这里插入图片描述

栅栏加密法

栅栏加密法(Rail Fence):就是把要加密的明文分成N个一组,然后把每组纵向连起来,形成一段无规律的话。

在这里插入图片描述

代换密码

代换密码(Substitution Technique) : 将明文的每个字母用密文字母或符号替代。

在这里插入图片描述

维吉尼亚密码

在这里插入图片描述

比如我们协定

第一行是密钥字母列

第一列是明文字母行

密钥为: redio

在这里插入图片描述

 

现代密码学

百科

现代密码学 研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已有的密码体制,即“知彼”。

基本准则

基本原则(Kerckhoff原): 安全的加密算法建立在算法的公开不用想文明和秘钥的安全

密码体制的安全性

无条件安全

即使破译者提供了无穷的资源,依然无法破译,则该密码体制是无条件安全的,也称为完善保密性(PerfectSecrecy)。

可证明安全性

该方法是将密码算法的安全性归结为某个数学难题,而这个数学难题被证明在目前求解是困难的。

计算安全性

指在目前的计算资源条件下,破译该密码算法所需要的努力超出了破译者的破译能力(诸如时间、空间、资金等资源)。该密码算法的安全是暂时的,也称为实际安全性(PracticalSecrecy)。

现代密码破译(密码分析)

穷举法

密码分析者试图试遍所有的明文或密钥来进行破译。

– 穷举明文-主要用于公钥密码技术及数字签名。

– 穷举密文-增加秘钥长度、添加随机冗余信息进行预防。

统计分析法

密码分析者通过分析密文、明文和密钥的统计规律来达到破译密码技术。

– 使明文的统计特性与密文的统计特性不一样来预防。

密码体制分析法

根据所掌握的明文、密文的有关信息,通过数学求解的方法找到相应的加解密算法。

– 选用具有坚实数学基础和足够复杂的加解密算法来预防。

 

密码体制

在这里插入图片描述

明文P(Plaintext)或 M(message):消息的初始形式

密文C(Cipher Text):加密后的形式

秘钥K(Key):加密或解密算法用的随机数

加密E(Encryption):C=Ek( P),E为加密算法

解密D(Decryption):P=Dk( C),D为解密算法

满足:P=D(E( P))

 

国际标准加密算法

对称性秘钥加密

加密密钥、解密密钥可以相互推算得出,通常是相同的

在这里插入图片描述

 

 

DES

Data Encryption Standard 数据加密标准

简介

由IBM公司研发,并于1977年定为美国联邦信息加密标准。

它是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位(每个第8位作为奇偶校验,共64位),加密解密用同一算法。

安全性

DES现在已经不是一种安全的加密算法,主要因为它使用的56位密钥过短。。

1999年1月,distributed.net与电子前哨基金会合作,在22小时15分钟内即公开破解了一个DES密钥。

为了提升安全性,派生了3DES。但现在它们已经被AES取代。

AES

Advanced Encryption Standard 高级加密标准

简介

1997年,美国国家标准与技术研究所NIST开始征集新一代数据加密标准来接任即将退役的DES。2000年10月,由比利时密码学家JoanDaemen和VincentRijmen发明的Rijndael密码算法当选成为新一代数据加密标准——AES(Advanced Encryption Standard)。2001年11月26日,NIST正式公布高级加密标准,并于2002年5月26日正式生效。

分组密码算法,分组长度是128位,密钥长度为128,192和256位;

安全性

速度比3DES快,安全性至少和3DES一样。

目标:能抗击所有的已知攻击;在广大范围平台上的快速和代码简洁;

IDEA

International Data Encryption Algorithm 国际数据加密算法

简介

由瑞士联邦理工学院Xuejia Lai和James Massey的在1990年提出的

以64位分组为单位,使用128位密钥,加密数据。

安全性

比DES更加安全,最近几年提出的用来替代DES的许多算法中的一种。

密码强度包括分组长度、密钥长度、混淆(Confusion)和扩散(Diffusion)。

方便硬件和软件实现:通过由超大规模集成电路(VLSI)进行的硬件实现的设计目标是取得高速度,而软件实现则有灵活和低价的优点。

非对称性秘钥加密

加密、解密密钥不相同,不能推算。通信模型1-数据加密

在这里插入图片描述

加密、解密密钥不相同,不能推算。通信模型2-数字签名

在这里插入图片描述

RSA

简介

1978年,R.L.Rivest,A.Shamir和L.Adleman实现了RSA公钥密码学,此后成为了公钥密码学中杰出的代表。

两个相关密钥中任何一个都可以用作加密而让另一个用作解密(数据加密与数据签名)

SA算法的安全性依赖于大整数分解因子的难度。。

安全性

1999年底,有人把512位的整数分解因子,512位的RSA秘钥被破解。。

就目前的计算机水平,用1024位的密钥是安全的,2048位是绝对安全的。

私钥的长度和安全性是保证RSA加密算法安全的重要手段。

DSA

Digital Signature Algorithm 签名算法

简介

Schnorr和ElGamal签名算法的变种

验证时计算 w = s^(-1)mod q

安全性

DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。

DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却做不到。

单向散列算法

单向散列算法,又称hash函数,Hash函数(也称杂凑函数或杂凑算法)

将任意长度的二进制值映射为较短的固定长度的二进制值,这个较短的固定长度的二进制值称为哈希值

在这里插入图片描述

MD5

Message Digest Algorithm 信息摘要

简介

MD系列单向散列算法是Ron Rivest设计的,包括MD2、MD4和MD5。

以变长的信息为输入,把其压缩成一个定长128位(即32位16进制)的散列值输出。例如:2db3f62a87dfd43714394a0d971060ea

安全性

MD5的安全性弱点在于其压缩函数的冲突已经被找到。1995年有论文指出,花费 1,000万美元,设计寻找冲突的特制硬件设备,平均在24天内可以找出一个MD5的冲突。

主要破解手段:使用彩虹表记录明文与密文之间的对应关系,根据获得的密文从彩虹表查找其对应的明文。

SHA

Secure Hash Algorithm,安全哈希算法

简介

是美国国家标准技术研究所发布的国家标准FIPS PUB 180,最新的标准已经于2008年更新到FIPS PUB 180-3。其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种。SHA-1,SHA-224和SHA-256适用于长度不超过264二进制位的消息。SHA-384和SHA-512适用于长度不超过2128二进制位的消息。

安全性

2005年,密码学家就证明SHA-1的破解速度比预期提高了2000倍。随着计算机发展,计算速度的加快,SHA-1算法的安全性逐年降低,现在逐渐由安全强度更高的SHA-2(SHA-256、HSA-512)替代它。

国密

非对称密钥加密 - SM2椭圆曲线算法

SM2算法就是ECC椭圆曲线密码机制,包括:

– 数字签名算法(包括数字签名生成算法和验证算法)。

– 密钥交换协议

– 以及公钥加密算法(包括加密算法和解密算法)。

在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。

SM2推荐了一条256位的曲线作为标准曲线。

单向散列算法 - SM3杂凑算法

SM3算法适用于商用密码应用中的:

– 数字签名和验证。

– 消息认证码的生成与验证

– 以及随机数的生成。

在SM2,SM9标准中使用。

此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值。

其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。

对称密钥加密 - SM4分组密码算法

SM4算法主要用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。

加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反。

此算法采用非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。

总结

在这里插入图片描述

常用加密工具及资源

工具类

– SM.js

书籍

– 《Java加密与解密的艺术》

– 《Communication Theory of Secrecy Systems》

————————————————

版权声明:本文为CSDN博主「Solution.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_40540178/article/details/109852913

0条评论
0 / 1000
我是小朋友
80文章数
5粉丝数
我是小朋友
80 文章 | 5 粉丝

数据加密以及国密基础知识

2022-06-30 06:30:23
31
0

加密基础知识

为什么要进行加密

数据加密是为了保证 数据存储 和 传输中 的保密性、完整性、及进行身份验证。

在这里插入图片描述

密码学的发展史

在这里插入图片描述

古典密码学

置换密码加密法

置换密码(Transposition Technique): 将明文字母互相换位,打乱顺序。

在这里插入图片描述

栅栏加密法

栅栏加密法(Rail Fence):就是把要加密的明文分成N个一组,然后把每组纵向连起来,形成一段无规律的话。

在这里插入图片描述

代换密码

代换密码(Substitution Technique) : 将明文的每个字母用密文字母或符号替代。

在这里插入图片描述

维吉尼亚密码

在这里插入图片描述

比如我们协定

第一行是密钥字母列

第一列是明文字母行

密钥为: redio

在这里插入图片描述

 

现代密码学

百科

现代密码学 研究信息从发端到收端的安全传输和安全存储,是研究“知己知彼”的一门科学。其核心是密码编码学和密码分析学。前者致力于建立难以被敌方或对手攻破的安全密码体制,即“知己”;后者则力图破译敌方或对手已有的密码体制,即“知彼”。

基本准则

基本原则(Kerckhoff原): 安全的加密算法建立在算法的公开不用想文明和秘钥的安全

密码体制的安全性

无条件安全

即使破译者提供了无穷的资源,依然无法破译,则该密码体制是无条件安全的,也称为完善保密性(PerfectSecrecy)。

可证明安全性

该方法是将密码算法的安全性归结为某个数学难题,而这个数学难题被证明在目前求解是困难的。

计算安全性

指在目前的计算资源条件下,破译该密码算法所需要的努力超出了破译者的破译能力(诸如时间、空间、资金等资源)。该密码算法的安全是暂时的,也称为实际安全性(PracticalSecrecy)。

现代密码破译(密码分析)

穷举法

密码分析者试图试遍所有的明文或密钥来进行破译。

– 穷举明文-主要用于公钥密码技术及数字签名。

– 穷举密文-增加秘钥长度、添加随机冗余信息进行预防。

统计分析法

密码分析者通过分析密文、明文和密钥的统计规律来达到破译密码技术。

– 使明文的统计特性与密文的统计特性不一样来预防。

密码体制分析法

根据所掌握的明文、密文的有关信息,通过数学求解的方法找到相应的加解密算法。

– 选用具有坚实数学基础和足够复杂的加解密算法来预防。

 

密码体制

在这里插入图片描述

明文P(Plaintext)或 M(message):消息的初始形式

密文C(Cipher Text):加密后的形式

秘钥K(Key):加密或解密算法用的随机数

加密E(Encryption):C=Ek( P),E为加密算法

解密D(Decryption):P=Dk( C),D为解密算法

满足:P=D(E( P))

 

国际标准加密算法

对称性秘钥加密

加密密钥、解密密钥可以相互推算得出,通常是相同的

在这里插入图片描述

 

 

DES

Data Encryption Standard 数据加密标准

简介

由IBM公司研发,并于1977年定为美国联邦信息加密标准。

它是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位(每个第8位作为奇偶校验,共64位),加密解密用同一算法。

安全性

DES现在已经不是一种安全的加密算法,主要因为它使用的56位密钥过短。。

1999年1月,distributed.net与电子前哨基金会合作,在22小时15分钟内即公开破解了一个DES密钥。

为了提升安全性,派生了3DES。但现在它们已经被AES取代。

AES

Advanced Encryption Standard 高级加密标准

简介

1997年,美国国家标准与技术研究所NIST开始征集新一代数据加密标准来接任即将退役的DES。2000年10月,由比利时密码学家JoanDaemen和VincentRijmen发明的Rijndael密码算法当选成为新一代数据加密标准——AES(Advanced Encryption Standard)。2001年11月26日,NIST正式公布高级加密标准,并于2002年5月26日正式生效。

分组密码算法,分组长度是128位,密钥长度为128,192和256位;

安全性

速度比3DES快,安全性至少和3DES一样。

目标:能抗击所有的已知攻击;在广大范围平台上的快速和代码简洁;

IDEA

International Data Encryption Algorithm 国际数据加密算法

简介

由瑞士联邦理工学院Xuejia Lai和James Massey的在1990年提出的

以64位分组为单位,使用128位密钥,加密数据。

安全性

比DES更加安全,最近几年提出的用来替代DES的许多算法中的一种。

密码强度包括分组长度、密钥长度、混淆(Confusion)和扩散(Diffusion)。

方便硬件和软件实现:通过由超大规模集成电路(VLSI)进行的硬件实现的设计目标是取得高速度,而软件实现则有灵活和低价的优点。

非对称性秘钥加密

加密、解密密钥不相同,不能推算。通信模型1-数据加密

在这里插入图片描述

加密、解密密钥不相同,不能推算。通信模型2-数字签名

在这里插入图片描述

RSA

简介

1978年,R.L.Rivest,A.Shamir和L.Adleman实现了RSA公钥密码学,此后成为了公钥密码学中杰出的代表。

两个相关密钥中任何一个都可以用作加密而让另一个用作解密(数据加密与数据签名)

SA算法的安全性依赖于大整数分解因子的难度。。

安全性

1999年底,有人把512位的整数分解因子,512位的RSA秘钥被破解。。

就目前的计算机水平,用1024位的密钥是安全的,2048位是绝对安全的。

私钥的长度和安全性是保证RSA加密算法安全的重要手段。

DSA

Digital Signature Algorithm 签名算法

简介

Schnorr和ElGamal签名算法的变种

验证时计算 w = s^(-1)mod q

安全性

DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。

DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却做不到。

单向散列算法

单向散列算法,又称hash函数,Hash函数(也称杂凑函数或杂凑算法)

将任意长度的二进制值映射为较短的固定长度的二进制值,这个较短的固定长度的二进制值称为哈希值

在这里插入图片描述

MD5

Message Digest Algorithm 信息摘要

简介

MD系列单向散列算法是Ron Rivest设计的,包括MD2、MD4和MD5。

以变长的信息为输入,把其压缩成一个定长128位(即32位16进制)的散列值输出。例如:2db3f62a87dfd43714394a0d971060ea

安全性

MD5的安全性弱点在于其压缩函数的冲突已经被找到。1995年有论文指出,花费 1,000万美元,设计寻找冲突的特制硬件设备,平均在24天内可以找出一个MD5的冲突。

主要破解手段:使用彩虹表记录明文与密文之间的对应关系,根据获得的密文从彩虹表查找其对应的明文。

SHA

Secure Hash Algorithm,安全哈希算法

简介

是美国国家标准技术研究所发布的国家标准FIPS PUB 180,最新的标准已经于2008年更新到FIPS PUB 180-3。其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种。SHA-1,SHA-224和SHA-256适用于长度不超过264二进制位的消息。SHA-384和SHA-512适用于长度不超过2128二进制位的消息。

安全性

2005年,密码学家就证明SHA-1的破解速度比预期提高了2000倍。随着计算机发展,计算速度的加快,SHA-1算法的安全性逐年降低,现在逐渐由安全强度更高的SHA-2(SHA-256、HSA-512)替代它。

国密

非对称密钥加密 - SM2椭圆曲线算法

SM2算法就是ECC椭圆曲线密码机制,包括:

– 数字签名算法(包括数字签名生成算法和验证算法)。

– 密钥交换协议

– 以及公钥加密算法(包括加密算法和解密算法)。

在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。

SM2推荐了一条256位的曲线作为标准曲线。

单向散列算法 - SM3杂凑算法

SM3算法适用于商用密码应用中的:

– 数字签名和验证。

– 消息认证码的生成与验证

– 以及随机数的生成。

在SM2,SM9标准中使用。

此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值。

其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。

对称密钥加密 - SM4分组密码算法

SM4算法主要用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。

加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反。

此算法采用非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。

总结

在这里插入图片描述

常用加密工具及资源

工具类

– SM.js

书籍

– 《Java加密与解密的艺术》

– 《Communication Theory of Secrecy Systems》

————————————————

版权声明:本文为CSDN博主「Solution.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_40540178/article/details/109852913

文章来自个人专栏
云知识的搬运工
224 文章 | 7 订阅
0条评论
0 / 1000
请输入你的评论
0
0