单片机学习小组
直播中

大红枣

11年用户 630经验值
私信 关注

加密解密的用途都有哪些呢

有哪些加密算法呢?加密解密的用途都有哪些呢?

回帖(1)

h1654155275.5994

2022-1-20 10:48:04
一、en.x-cube-cryptolib ST加密库下载地址

二、加密与解密相关内容简介

1、相关术语


AEADAuthenticated encryption with associated data(已验证的加密与相关数据)
AESAdvanced encryption standard(高级加密标准)
ARC4
Alleged RC4(所谓RC4)
CBC
Cipher block chaining(密码块链接)
CCMCounter with CBC-MAC(计数器与CBC-MAC)
CFBCipher feedback(密码反馈)
CMACCipher-based message authentication code(基于密文的消息认证码)
CTRCounter(计数器)
DESData encryption standard(数据加密标准)
ECBElectronic codebook(电子码)
ECCElliptic curve cryptography(椭圆曲线密码学)
ECDSAElliptic curve digital signature algorithm(椭圆曲线数字签名算法)
FIPSFederal information processing standard(联邦资料处理标准)
GCMGalois/counter mode(伽罗瓦/计数器模式)
HMACkeyed-hash message authentication code(密钥散列/哈希运算消息认证码)
HKDFHash-based key derivation function(基于散列的键派生函数)
MACMessage authentication code(信息认证码)
MD5Message digest 5(消息摘要)
NISTNational institute of standards and technology(国家标准技术局)
OFBOutput feedback(输出反馈)
RNGRandom number generation(随机数生成)
RSARonald Rivest, Adi Shamir and Leonard Adleman(该加密算法的3个发明者)
SHASecure Hash algorithm(安全散列算法)
TDESTriple DES(三重数据加密标准)
XTSXEX-based tweakable codebook mode with cipher-text stealing
三、密码学的应用领域(加密解密的用途)

1、用途




  • 数据完整性服务解决未经授权或意外的数据修改。这包括数据插入、删除和修改。为了确保数据的完整性,系统必须能够检测未经授权的数据修改。目标是让数据的接收者验证数据没有被更改
  • 保密服务将敏感数据内容的访问限制为只有那些被授权查看数据的个人。保密措施防止信息未经授权泄露给未经授权的个人或程序
  • 身份验证和身份验证服务确定传输、消息及其发起者的有效性。目标是让数据的接收者确定它的来源。
  • 不可抵赖性服务防止个人否认以前的行为已经执行。目标是确保数据的接收方能够确认发送方的身份。

2、应用领域:

(1)加密:

加密与界面的总流程图:

加密与解密的两种类型:



  • 使用对称密码:使用单个密钥进行加密和解密的密码(AES)
  • 使用非对称密码:使用两种密钥的密码,一种用于加密,另一种用于解密。(RSA)


(2)哈希加密:

哈希加密操作流程图:

用途:这个确定性算法接受一个任意大小的输入数据块,并返回一个固定大小的位串,称为digest。
注意:



  • 不能通过给定一个未知数据的“摘要”,找到数据值
  • 不能找到散列到相同摘要的两条消息


(3)消息认证码:

消息认证码流程:

用途:一个MAC(消息认证码)需要两个输入:一个消息一个秘密密钥,这个密钥只有消息的发起者和它的目标接收者知道。这允许消息的接收者验证其完整性,并确保消息的发送者拥有共享的密钥。如果发送方不知道密钥,那么散列值就会不同,从而允许接收方理解消息不是来自原始发送方

(4)数字签名:

数字签名流程:

用途:数字签名是一种验证消息的机制,即证明消息有效地来自给定的发送者,这与纸质文档上的签名非常相似。这是基于非对称加密的:使用私钥对消息进行签名,而验证签名只需要公钥。因此,只有私钥的所有者可以计算签名,而其他各方可以验证签名

(5)RNG:

随机数生成流程:

用途:加密算法的安全方面基于不可能猜测密钥。因此,密钥必须是随机的。为了执行这一生成过程,可以使用RNG算法:它接收一个短熵字符串作为输入,并产生一个大得多的强密码学随机输出

(6)小结

[tr]应用数据完整性机密性识别和身份验证 不可否认性[/tr]
Symmetric key encryption
(对称密钥加密)
NOYESNONO
Secure Hash Functions
(安全哈希函数)
YESNONONO
MAC
(信息认证码)
YESNOYESNO
Digital signatures
(数字签名)
YESNOYESYES
四、部分加密算法简介

1、DES

    研究过加密的朋友十分熟悉,老牌的加密方法了。这是一个可逆的对称加密算法,也是应用最广泛的密钥系统。好像是从1977年美国***开始采用的。大家都看过U-571吧,DES的思路就是参照二战时期盟军缴获的德军恩格玛加密机,不过DES比那个要NB的多多了。到现在为止,除了差分分析法和线性分析法外只有暴力穷举法了。前两种方法不是密码学家或数学家都不懂呵,不过穷举DES,以现有我们大家都可以掌握的技术手段,恐怕没个几百上千年下不来呵。不过,咱们破解不了,不能说明就没人或没有设备破解不了。正因为如此,所以才衍生出了3重DES加密。常规的DES密钥是64位的(实际上有8位是校验用),而3DES是128位(当然有16位也是校验用)。增加密钥长度并增加运算量来防止破解,并在后来的AES出来之前确定为过度方案。不过现在即便有了AES,3DES也没少用,它依然很NB。
2、AES

    它是一种高级加密标准,也叫Rijndael算法,2002年成为标准。它是用来代替原来的DES加密方法的。它也是一个可逆的对称加密算法。研究过IAP的朋友应该明白,把做好的固件程序通过AES加密后发布,用户可以通过IAP的方式来在线升级程序,而开发者则不必担心自己的生产代码流失。即能加密又能还原,这就是可逆加密算法,这也是我们想用到的。AES在早期的方案征集时就规定了要软硬件可以很好的集成,所以它也比较小,程序量比DES要少一些。
3、RC6

    有个算法RC4听说过吧,在无线传输和串行流传输的加密领域占有相当的分量。据说RC6是同一帮人研究出来的,不过它和RC4没太大关系呵。它是AES方案征集时的候选算法之一,但是没有Rijndael算法那么幸运。RC6据说可以抵抗所有已知的攻击,并能够提供AES所要求的安全性,它也是相当优秀的一种可逆加密算法。不过当初它为什么没能当选为AES算法就不得而知了,不知道当时有没有给评委们足够的商务费用呵。
4、TEA

  它是一种分组加密算法,也是可逆算法。短小精悍。它的实现非常简单,超不过10行代码。TEA算法每一次可以操作64位(8字节),采用128位(16字节)作为密钥,算法采用迭代的形式,尽管32轮迭代已经足够了,但是最好的迭代轮数是64轮。数据流加密可能比较适合,因为据说早期的QQ采用过TEA加密算法。
5、RSA

  顶顶有名的非对称公钥加密算法,也许你可能不熟悉,不过网银总应该用过吧,多数都是RSA算法来认证的。1977年就开发出来了,DES时代的东东了。不过用到现在依然坚挺,可见加密强度有多高。呵呵,不过它防解密的原理也很简单:只告诉你两个数相乘后的结果,你能知道原来的两个数是什么吗?RSA的安全性依赖于大数的因子分解,但是并没有理论上可以证明破译RSA的难度与大数分解难度是同样的。它是第一个既能用于数据加密也能用于数字签名的算法,也是可逆算法。不过,在不告诉你密钥的情况下,你就是想什么办法加密后的数据也还原不回去,银行系统用它自有道理呵。告诉你个小秘密,前面说过的RC6好像就是有RSA开发组成员参与搞出来的。不过,RSA也有不少缺点。它受到素数产生技术的限制,产生密钥时很麻烦;出于安全性考虑,分组长度至少也要600位以上,运算代价很高、速度比较慢,比DES之类的对称算法要慢的多。它最大的缺点是需要生成大素数及大数取模时可能会产生特别大的数据量,这些都很耗费时间,生成复杂密钥时在单片机上运行可能都不止10分钟,所以解密时还是尽量让PC或服务器来做吧。
6、MD5

  非常著名的哈希算法,不可逆算法。网站登录、操作系统的用户认证、文件完整性和数字签名等领域广泛应用。不可逆算法一般做的都比较绝,例如彩虹加密狗,只告诉你一个余数,你能知道原来的除数和被除数吗?只把运算过的数据相比较,而不非得知道原数据,这样就完成了认证过程。要想破解MD5的密码,即使采用现在最快的巨型计算机,据说也要运算100万年以上。不过,加密和解密都是数学领域的竞赛,每一种加密算法都或多或少的存在漏洞或缺陷,MD5看上去真那么牢不可破吗?和MD5同样有名的是山东大学的王小云教授。在2004年的国际密码大会上王小云宣布了她的研究小组完成了对MD5杂凑函数的杂凑冲撞,也就是从理论上说使用MD5的数字签名可以伪造。这也意味着MD5可能需要和其他加密算法共用才可以保证数字签名的安全。不过,说MD5已被破解,那也有些杞人忧天了。可以肯定的告诉你,网络上所有针对MD5提供的破解服务,全部都是查询用字典法暴力破解后的数据包,没有一个是真正伪造出来的数字签名,那些号称有几百亿条的记录对MD5庞大算法来说太小了。试想想,动用美国军方的巨型计算机,利用王小云研究理论,来破解我们的一个单片机或网站认证程序?没必要吧。所以MD5依然可用呵,只不过再加上3DES、AES或SHA来防止字典就更好了。
7、SHA

  著名的哈希算法,不可逆算法。也是多用在数字签名上。SHA-1和MD5一样,也被王小云教授找出杂凑冲撞的漏洞,不过也是停留在理论上的。SHA-256是很NB的,它光密钥就有64个long,恐怕想要破解已经是天文数字了。最NB的是SHA-512,咱们这里没有收录,这里恐怕还没有人能用得上。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分