意大利 网站设计,网站开发济南招聘,域名推荐工具,商城app开发多少钱文章目录 对称加密算法简述对称加密算法的由来对称加密算法的家谱数据加密标准-DES简述DES算法的消息传递模型DES算法的消息传递过程和Base64算法的消息传递模型的区别 算法的实现三重DES-DESede三重DES-DESede实现 高级数据加密标准一AES实现 国际数据加密标准-IDEA实现 基于口… 文章目录 对称加密算法简述对称加密算法的由来对称加密算法的家谱数据加密标准-DES简述DES算法的消息传递模型DES算法的消息传递过程和Base64算法的消息传递模型的区别 算法的实现三重DES-DESede三重DES-DESede实现 高级数据加密标准一AES实现 国际数据加密标准-IDEA实现 基于口令加密-PBE基于PBE算法的消息传递模型 应用场景参考 我们都有使用密码保护私密信息的经历甚至可以说是习惯。我们往往不希望无关的人窥探我们的隐私从孩童时代就知道用“密码日记本”记录自己的一些隐私。密码日记本无非是一个带锁的日记本。不管是读日记还是写日记都离不开这个密码。 上述情形就好比我们应用黑匣子需要读写操作需要同一套密钥。写操作伴随加读操作伴随解密。加密和解密操作使用同一套密钥这就是对称加密算法的核心。 对称加密算法简述
对称加密算法是当今应用范围最广使用频率最高的加密算法。它不仅应用于软件行业在硬件行业同样流行。各种基础设施但凡涉及安全需求都会优先考虑对称加密算法。
对称加密算法的由来
对于大多数对称加密算法而言解密算法是加密算法的逆运算加密密钥和解密密钥相同。如果我们把Base64算法改良将其字符映射表作为密钥保存就可以把这个改良后的Base64算法作为一种对称加密算法来看。当然加密算法这样改良后的安全强度还远远不够但足以让我们认识对称加密算法的特点。
对于Base64概念模糊的同学可以来这里报到密码学一文看懂Base64算法
对称加密算法易于理解便于实现根据加密方式又分为密码和分组密码其分组密码工作模式又可分为ECB、CBC、CFB、OFB和CTR等密钥长度决定了加密算法的安全性。 有关对称加密算法相关理论知识可以来这里报到密码学一文读懂对称密钥体系
对称加密算法发展至今已相当完备。以DES算法为例由于密钥长度的不满足衍生出了DESede算法 (也称为TripleDES或3DES算法翻译成中文是“三重DES”算法)。为了替代DES算法又有了AES (Rijndael) 算法。此外还有RC系列算法包含RC2、RC4以及针对32位/64位计算机设计的RC5算法(细分为RC5-32和RC5-64分别对应32位和64位计算机) 除了上述算法我们还常常会用到Blowfish、 Twofish、Serpent、IDEA和PBE等对称加密算法。
对称加密算法的家谱
在对称加密算法中DES算法最具有代表性堪称典范。DESede是DES算法的变种。AES算法则作为DES算法的替代者而IDEA算法作为一种强加密算法成为电子邮件加密软件PGP (Pretty Good Privacy) 的核心算法之一。
数据加密标准-DES
DES算法和DESede算法统称DES系列算法。DES算法是对称加密算法领域中的典型算法为后续对称加密算法的发展奠定了坚实的基础。DESede算法基于DES算法进行三重迭代增加其算法安全性。经过一番筛选Rijndeal算法最终成为了AES算法。这期间对称加密算法发展迅速与Rijndeal算法竞争的算法包括Blowfish、Serpent等。IDEA算法也源于增加算法的安全性替代DES算法诸多对称加密算法的发展均源于DES算法的研究而来。
简述
1973年美国国家标准局 (NBS National Bureau ofStandards) (即现在的美国国家标准技术研究所 (NationalInstitute of Standards and TechnologyNIST) ) 征求国家密码标准方案IBM公司提交了自己研制的算法 (Luciffer算法于1971年末提出)。1977年7月15日该算法被正式采纳作为美国联邦信息处理标准生效并很快应用到国际商用数据加密领域成为事实标准即数据加密标准 (DataEncryption StandardDES) DES算法由此诞生。
DES算法作为现代密码学领域中第一个官方授权的加密算法受到全球各大密码学机构的关注。DES算法密钥偏短仅有56位迭代次数偏少受到诸如查分密码分析和线性密码分析等各种攻击威胁安全性受到严重威胁。不仅如此由于DES算法具有半公开性质被怀疑存在美国国家安全局 (National SecurityAgencyNSA) 安置的后门受到各大密码学机构的强烈质疑。
1998年后实用化DES算法破译机的出现彻底宣告DES算法已不具备安全性。1999年NIST颁布新标准规定DES算法只能用于遗留加密系统但不限制使用DESede算法。以当今计算机技术能力经DES算法加密的数据在24小时内可能被破解。由此DES算法正式退出历史舞台AES算法成为它的替代者。
即便如此DES算法对于密码学领域的贡献确实是巨大的。各种对称加密算法均由研究DES算法发展而来对后续对称加密算法的发展起到奠基作用。DES算法实现不仅遍布软件行业甚至很多硬件芯片本身也具备DES加密实现。同时作为一款较易实现的加密算法DES算法也成为最应学习的对称加密算法其地位堪比C语言在计算机语言中的地位。
基于CBC工作模式的DES算法相关文档可参考RFC1829
历经20年发展DES算法不仅应用在软件行业成为电子商务必不可少的加密算法同时也逐步渗透到硬件行业。芯片级DES算法生产工艺相当完备完全可以支持底层加密需求。
DES算法的消息传递模型
先来看看DES算法的消息传递过程如下
DES算法的消息传递过程 甲乙双方作为消息传递双方 (甲方作为发送方乙方作为接收方)我们假定甲乙双方在消息传递前已商定加密算法欲完成一次消息传递需经过如下步骤
1)由消息传递双方约定密钥这里由甲方构建密钥
2)由密钥构建者公布密钥这里由甲方将密钥公布给乙方
3)由消息发送方使用密钥对数据加密这里由甲方对数据加密
4)由消息发送方将加密数据发送给消息接收者这里由甲方将加密数据发送给乙方
5)由消息接收方使用密钥对加密数据解密这里由乙方完成数据解密
对称加密算法的优点就是简单易行通俗易懂。对于上述单向消息传递而言如果乙方想要回复甲方消息并不需要重复步骤1、2仅须由乙方执行步骤3、4由甲方执行步骤5即可。
基于DES算法构建的消息传递模型大都按照上述模型构建同时包括其他对称加密算法如DESede、AES和IDEA等。 并不是所有基于对称加密算法的消息传递模型都按此步骤构建PBE算法就是一个例外。 和Base64算法的消息传递模型的区别
Base64算法和DES算法消息传递模型的主要差别在于密钥的使用。
基于Base64算法的消息传递模型中没有密钥的概念。那是因为Base64字符映射表本身已经公开而Base64字符映射表本身起到了密钥的作用。消息传递双方通讯前不需要商榷该密钥也就省去了构建密钥、公布密钥的步骤。
一文看懂Base64算法
算法的实现 来看一个加密例子
原文: DES
密钥: qA2oZBaKNOk
加密后: QwCjNM5G8KM
解密后: DES随着计算机的发展密钥长度仅有56位的DES算法显得越来越不安全为了提高其安全强度DES算法在设计上的漏洞已经不能通过单纯地增加密钥长度来弥补这引发了对称加密算法研发竞赛。 DESede和AES算法正是这场竞赛中具有代表性的算法。
三重DES-DESede
作为DES算法的一种改良DESede算法针对其密钥长度偏短和迭代次数偏少等问题做了相应改进提高了安全强度。但这仍不是终点DESede算法的出现仅为DES算法的改良提供了一种参考。DESede算法处理速度较慢密钥计算时间较长加密效率不高等问题使得对称加密算法的发展仍不容乐观。
DES算法被广大密码学机构质疑的原因主要在于DES算法的半公开性违反了柯克霍夫原则各大密码学结构怀疑美国国家安全局在未公开的算法实现内安置后门。
DES算法有3点安全隐患: 密钥太短、迭代偏少和半公开性。这使得淘汰DES算法成为一种必然但要淘汰DES算法必须找到合适的替代方案。
针对密钥太短和迭代偏少问题有人提出了多重DES的方式来克服这些缺陷。比较典型的有两重DES (2DES) 、三重DES(3DES)和四重DES (4DES)等几种形式但在实际应用中一般采用3DES方案它还有两个别名Triple DES和DESede。在Java中我们通常称其为DESede算法。当然其他两种名称在使用时同样可以获得支持。
DESede算法将密钥长度增至112位或168位抗穷举攻击的的能力显著增强但核心仍是DES算法虽然通过增加迭代次数提高了安全性但同时也造成处理速度较慢密钥计算时间加长加密效率不高的问题。
三重DES-DESede实现
DESede算法与DES算法实现的主要差别在于算法、密钥长度两个方面。
算法: 自然不用说这是基本差别只是DESede还有很多别名如TripleDES和3DES指的都是DESede算法。密钥长度DES算法实现支持56位密钥长度加上Bouncy Castle相应实现可以支持到64位密钥长度。DESede算法实现所支持的密钥长度支持为112位和168位。DESede算法密钥长度恰恰是DES算法密钥长度的2倍或3倍。 来看看一个例子
原文: DESede
密钥: N8jTp6RuZxkjJea2XVvquV5YegHQ31cV
加密后: touXuJw8vrc
解密后: DESede高级数据加密标准一AES
DES算法漏洞的发现加速了对称加密算法的改进通过对DES算法的简单改造得到的DESede算法虽然在一定程度上提升了算法安全强度。但DESede算法低效的加密实现和较慢的处理速度仍不能满足我们对安全的要求。AES算法正是基于这些缘由而诞生。
1997年NIST发起了征集DES替代算法一AES (AdvancedEncryption Standard高级数据加密标准)算法的活动。1997年9月12日NIST发布了征集算法的正式公告和具体细节要求AES算法要比DESede算法快至少与DESede算法样安全具有128位的分组长度支持128位、192位和256位的密钥长度同时要求AES要能够在世界范围内免费使用。
1998年8月20日NIST在“第一次AES候选大会”上公布了满足条件的15个AES的候选算法继而又从中筛选出5个候选算法包括MARS、RC6、Rijndael、Serpent和Twofish。
2000年10月2日由Daemen和 Rijmen两位比利时人提出的Rijndael算法以其密钥设置快、存储要求低在硬件实现和限制存储的条件下性能优异当选AES算法。
经过验证目前采用的AES算法能够有效抵御已知的针对DES算法的所有攻击方法如部分差分攻击、相关密钥攻击等。至今还没有AES破译的官方报道。
AES算法因密钥建立时间短、灵敏性好、内存需求低等优点在各个领域得到广泛的研究与应用。
目前AES常用 于 UMTS (Universal MobileTelecommunications System通用移动通信系统) 。基于SSH (Secure shell安全外壳) 协议的一些软件也使用了AES算法SecureCRT。
除了常用的SSH软件外在一些无线路由器中也使用AES算法构建加密协议。
实现 原文: AES
密钥: 4qrBlCmeHHyEAyoNRY2djo1HWx8LLCH2NQHG9c0ahi4
加密后: XhWaN6Am1T3NVSFYs1OMVg
解密后: AES国际数据加密标准-IDEA
早在NIST发布征集AES算法以前就已经有人在找寻DES算法的替代算法了。IDEA算法的提出者未像DESede算法那样在原有DES算法的基础上做改进而是独辟蹊径地寻求了突破性解决方案。IDEA算法早于AES算法作为DES算法的可选替代算法出现。
IDEA (International Data Encryption Algorithm国际数据加密标准)算法是由旅居瑞士的中国青年学者来学嘉和著名密码专家James Massey于1990年提出的一种对称分组密码并于1992年修改完成
IDEA算法使用长度为128位的密钥数据块大小为64位。
从理论上讲IDEA属于“强”加密算法。
IDEA算法在美国之外提出并发展起来避开了美国法律上对加密技术的诸多限制。因此有关IDEA算法和实现技术的书籍均可自由出版和交流极大地促进了IDEA算法的发展和完善 IDEA算法是目前较为常用的电子邮件加密算法之一。
电子邮件加密软件PGP (Pretty Good Privacy) 使用了具有商业版权的IDEA算法实现邮件加密/解密工作。
实现 原文: IDEA
密钥: W1a1IFCKIbXKdnejfT5b2A
加密后: er43StU2Txk
解密后: IDEA基于口令加密-PBE
前面阐述了几种常用的对称加密算法这些算法的应用模型甚至包括实现)几乎同出一辙。但并不是所有的对称加密算法都是如此PBE算法综合了上述对称加密算法和消息摘要算法的优势形成了对称加密算法的一个特例。
PBE (Password Based Encryption基于口令加密)算法是一种基于口令的加密算法其特点在于口令由用户自己掌管采用随机数 (这里我们叫做盐)杂凑多重加密等方法保证数据的安全性。
PBE算法没有密钥的概念密钥在其他对称加密算法中是经过算法计算得出的PBE算法中则使用口令替代了密钥。
密钥的长短直接影响了算法的安全性但不方便记忆。
即便是我们将密钥通过Base64编码转换为可见字符长密钥一样不容易记忆。因此在这种情况下密钥是需要存储的但是口令则不然。
比如我们程序员天天都要开关电脑那么进入操作系统的唯一途径就是输入口令。口令是我们便于记忆的一种凭证基于这一点PBE算法使用口令代替了密钥。
PBE算法并没有真正构建新的加密/解密算法而是对我们已知的对称加密算法(如DES算法)做了包装。使用PBE算法对数据做加密/解密操作时其实是使用了DES或AES等其他对称加密算法做了相应的操作。
既然PBE算法使用了我们较为常用的对称加密算法那就无法回避密钥的问题。口令并不能替代密钥密钥是经过加密算法计算得出的但口令本身不可能很长单纯的口令很容易通过穷举攻击方式破译这就引入了“盐””。
盐能够阻止字典攻击或预先计算的攻击它本身是一个随机信息相同的随机信息极不可能使用两次。将盐附加在口令上通过消息摘要算法经过迭代计算获得构建密钥/初始化向量的基本材料使得破译加密信息的难度加大。
PBE算法是对称加密算法的综合性算法常见算法如PBEWithMD5AndDES该算法使用了MD5和DES算法构建PBE算法。
基于PBE算法的消息传递模型
基于PBE算法的消息传递模型与基于DES算法的消息传递模型还是有一定差别的。
甲乙双方作为消息传递双方 (甲方作为发送方乙方作为接收方)我们假定甲乙双方在消息传递前已商定加密算法和迭代次数欲完成一次消息传递需经过如下步骤
1)由消息传递双方约定口令这里由甲方构建口令
2)由口令构建者公布口令这里由甲方将口令公布给乙方
3)由口令构建者构建本次消息传的使用的盐这里由甲方构建胜
4)由消息发送方使用口令、盐对数据加密这里由甲方对数据加密
5)由消息发送方将盐、加密数据发送给消息接收者这里由甲方将盐、加密数据发送给乙方
6)由消息接收方使用盐、口令对加密数据解密这里由乙方完成数据解密
对于上述单向消息传递而言如果乙方想要回复甲方消息甲乙并不需要重复步骤1、2仅仅需由乙方执行步骤3、4、5由甲方执行步骤6即可。
当然甲乙双方也可以在消息传递过程中传递迭代次数。
我们可以设想“盐”本身是一种可以由消息传递双方按一定规律约定的信息譬如时间。也可以是某个不可变物理硬件的编号譬如U盘的自身唯一标识。
甲乙双方可以通过约定消息传递时间并将其作为“盐”的基本信息根据预定算法(如MD5算法)对其处理最终获得真正的“盐”。这样一来“盐”就无需传递提高了安全性。
换一种思路考虑有这样一种系统使用者需要将U盘插入计算机同时输入口令方能登录系统那么U盘就是“盐”信息的提供者。即使U盘丢失加密的信息也未必能被窃取。
从另一个角度思考盐”与口令就像两把不可分割的钥匙
应用场景
对称加密是一种加密方式其中使用相同的密钥进行加密和解密。常用的对称加密算法包括 DESData Encryption Standard、AESAdvanced Encryption Standard、3DESTriple DES、Blowfish 等。对称加密算法的主要特点是加密解密速度快但密钥管理相对复杂。
下面是对称加密的一些常用应用场景 数据传输保密性 对称加密常用于确保数据在传输过程中的保密性。通信的两端使用相同的密钥来加密和解密传输的数据以防止未经授权的访问者能够读取或篡改数据。例如在安全套接字层SSL/TLS中对称加密算法用于保护 Web 浏览器和服务器之间的数据传输。 文件加密 对称加密可以用于对存储在本地计算机或云存储中的文件进行加密。用户可以使用相同的密钥来加密和解密文件确保只有授权用户能够访问文件内容。 数据库加密 对称加密可以用于对数据库中的敏感数据进行加密。这可以防止未经授权的访问者在数据库被盗或泄漏时查看敏感信息。 身份验证令牌加密 在身份验证和授权场景中对称加密可用于加密和验证令牌确保只有授权的用户能够访问受保护的资源。例如JSON Web TokensJWTs可以使用对称加密算法进行签名和验证。 硬件加密 对称加密也常用于硬件加密设备如智能卡、硬件安全模块HSM等。这些设备可以用于存储密钥并执行对称加密操作以提供更高的安全性。 电子邮件加密 对称加密可以用于加密电子邮件的内容确保只有合法的收件人能够解密和阅读电子邮件。
但是需要注意的是密钥的安全分发和管理对系统的整体安全性至关重要。
参考
《Java加密与解密艺术》