0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

加密:最常见的算法

星星科技指导员 作者:jwallrabenstein 2023-06-27 15:47 次阅读

在加密中:它是什么以及它是如何工作的? 我们承诺了单字母替换密码的解决方案。见下文:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
I Z S G K B X J F E R T U Q A W O H M Y N C V L D P

密文: ITT VAHR IQG QA WTID UIRKM EISR I GNTT ZAD

明文:全是工作,不玩耍,让杰克成为一个沉闷的男孩

在这篇博客中,我们将介绍一些众所周知的对称加密算法。对称算法类是指所涉及的每一方都必须访问相同的密钥,因此它们关于密钥的信息是相同或对称的。在我们的下一篇博客中,我们将介绍非对称算法,其中所有参与者之间有关密钥的信息并不相同。让我们首先研究一个众所周知的,但现在大部分已停用的对称算法:DES。

数据加密标准 (DES) 是由 IBM 开发并于 1977 年标准化的对称加密算法。尽管它已被AES取代(我们将在下面进行研究),但DES的设计选择为关键空间问题提供了一个极好的真实示例。虽然对这些算法如何工作的完整描述远远超出了本文的范围,但让我们看一下它们设计中举例说明对称加密算法重要属性的部分。

DES 算法在 64 位输入数据块上运行,并通过称为 Feistel 网络的结构处理每个块(如右图所示)。由于该算法在 64 位块的固定大小输入上运行,我们稍后需要引入不同的操作模式:将较大的输入拆分为块并组合输出以形成最终密文的方法。正如我们将看到的,它并不像简单地连接对应于每个块的 64 位密文那么简单!

明文输入首先是排列的,但由于排列是固定的并且是公开的,因此它不会为设计增加安全性——它只是为了减慢缺乏算法硬件实现的对手的速度。需要注意的是,现代加密算法的安全性不依赖于算法任何部分的保密性。相反,只有密钥被假定为对手不知道。现代密码设计中的这一重要概念被称为Kerckhoffs原理。

然后将数据拆分为左 (L0) 和右 (R0) 的一半,右半部分与子键 K1(通过算法从主键派生)组合。右半部分和子键通过函数“f”组合在一起,以红色突出显示。

f被称为Feistel函数,是使DES成为一个难题的重要组成部分。有趣的是,我们将看到,与本文开头的一般难题示例 f(x) 不同,DES 中的 Feistel 函数 f 实际上不是可逆的!相反,可逆性属性(使用 DES 解密的能力)来自 Feistel 网络结构:使用密文块和子密钥以相反的顺序运行网络会产生原始明文。

Feistel 函数 f(如下图所示)的结构是通过扩展和独占 or 运算符将正确的 32 位数据与子键 K 组合在一起来操作的。然后将此组合结果分成 8 个 6 位块,每个块通过替换盒或“S-box”。这些 S 盒中的每一个都实现了众所周知的非线性转换,将 6 位输入映射到 4 位输出。选择这些映射中的每一个对于DES的安全性至关重要,在标准化之前,NSA用自己的映射替换了原始映射。当时被广泛认为是恶意的,后来发现NSA的映射可以抵抗一种(当时公开未知的)称为差分密码分析的攻击。

wKgaomSaoWSAZehjAAC3-INrpUU510.png

不幸的是,并非所有国家安全局对DES的贡献都是无私的。最初的设计要求使用64位密钥,这在1970年代的安全性绰绰有余。然而,NSA强烈主张使用更弱的48位密钥,该标准最终确定为56位。当时的公开理由是使用每个字节的一个位作为奇偶校验位(导致只有 64 个有意义位的“56 位”密钥)来验证 DES 密钥是否“有效”。当然,尝试使用错误的密钥解密将达到相同的目标。如今,56 位 DES 密钥不提供安全性,因此不应使用 DES 算法。相反,对称加密算法应该至少使用128位密钥,这是我们研究的下一个算法满足的属性:高级加密标准AES。

AES

1997年,美国国家标准与威廉希尔官方网站 研究院(NIST)宣布了一项开发高级加密标准(AES)的竞赛,这是一种将取代DES的对称加密算法。2001年,Rijndael算法(比利时设计师Vincent Rijmen和Joan Daemen的姓氏组合)被选为获胜者,并被标准化为AES。它定义为 128、192 和 256 位的密钥大小,远大于 DES 使用的 56 位密钥。

wKgaomSaoWmASa_NAAEUj8qBGwo064.png

AES 算法使用替换-置换网络,该网络类似于 DES 使用的 Feistel 网络,但不同之处在于替换盒 (S-box) 是可逆的。AES执行四个基本操作:

添加圆键

为了混合密钥材料,从主密钥派生一个子密钥以形成 AES 圆形密钥。状态数组 s 初始化为 128 位明文输入块,并通过 exclusive-or 与 round 键的单词 w 组合以形成更新的状态。

子字节

与 DES 类似,状态随后通过非线性 S 盒进行转换,在 AES 中,S-box 以可逆的方式将字节映射到字节。根据 Kerckhoffs 原理,这种转换和 AES 算法的整个描述是众所周知的。

移位行

此步骤在当前状态下循环移动最后三行。此操作与 MixColumns 操作一起提供扩散:在整个生成的密文输出中传播明文输入中的微小变化。这种“雪崩效应”可以防止攻击者知道明文-密文对的攻击:多次扩散操作,加上每次迭代中添加圆形密钥的混乱,使得即使知道明文和密文也难以恢复密钥。

混合列

最终操作将信息混合在一列中,从而提供进一步的扩散效果。

然后,根据所选的密钥大小,对这些操作组进行多次迭代。

我们已经看到,DES 和 AES 都是分别处理 64 位和 128 位明文块的对称加密算法。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 密钥
    +关注

    关注

    1

    文章

    138

    浏览量

    19755
  • DES
    DES
    +关注

    关注

    0

    文章

    64

    浏览量

    48219
收藏 人收藏

    评论

    相关推荐

    分享一些最常见最实用的机器学习算法

    在这篇文章中,分享一些最常用的机器学习算法
    的头像 发表于 10-14 14:24 9110次阅读
    分享一些<b class='flag-5'>最常见</b>最实用的机器学习<b class='flag-5'>算法</b>

    电工最常见电路

    电工最常见电路
    发表于 10-12 21:11

    算法授权加密方案,图像算法加密,语音算法加密,硬件加密方案

    核心威廉希尔官方网站 的保护固然重要,而对封装和PCB布线等可见部分的保护也不容忽视。多数公司一般习惯于使用采纳了安全芯片和算法的版权保护系统。 深圳市鼎恒创科技专注于固件保护和数据加密传输多年,相关负责人从事加密
    发表于 11-20 10:24

    DES加密算法是什么

    一、加密算法1、 DES加密算法DES数据加密标准,是一种使用密钥加密的块算法。DES中的密钥key为8个字节64位,但每第8个为校验位不参
    发表于 07-22 09:13

    对称加密算法是什么

    对称加密算法也叫私钥加密算法,其特征是收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。非对称加密算法也叫公钥加密算法。其特
    发表于 07-22 07:09

    TN404_ELF2 AES加密使用指南

    正文 AES(Advanced Encryption Standard,高级加密标准)算法,是一种最常见的对称加密算法。AES 在密码学中又称 Rijndael
    发表于 10-28 08:06

    电工最常见电路集

    电工最常见电路集:
    发表于 02-28 15:39 415次下载
    电工<b class='flag-5'>最常见</b>电路集

    常见公钥加密算法有哪些

    RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以说是RSA方法的特例)、Diffie-Hellman (D-H) 密钥交换协议中的公钥加密算法、Elliptic Curve
    发表于 12-10 09:41 4.4w次阅读

    最常见10大算法类型

    本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。算法按用途分,体现设计目的、有什么特点算法
    发表于 01-29 11:10 2.4w次阅读

    举例几种常见加密算法

    今天主要总结下常用的对称性加密算法DES和AES,非对称性加密算法RSA。 01  DES加密算法 1.DES含义 DES全称为Data Encrypt
    的头像 发表于 04-28 13:52 2w次阅读
    举例几种<b class='flag-5'>常见</b>的<b class='flag-5'>加密算法</b>

    量子计算机如何破解最常见加密算法

    主流量子计算可能还有几十年的时间,但其破解加密的能力意味着研究人员现在正在研究如何提高量子时代的安全性。
    的头像 发表于 08-09 14:15 4098次阅读

    最常见的目标跟踪算法

    对象跟踪问题一直是计算机视觉的热点任务之一,简单的可以分为单目标跟踪与多目标跟踪,最常见的目标跟踪算法都是基于检测的跟踪算法,首先发现然后标记,好的跟踪算法必须具备REID的能力。今天
    的头像 发表于 09-14 16:20 2745次阅读

    常见加密算法分类

    在开发过程中,为了保证程序能够安全高效运行,数据信息不被泄露,我们通常都会对要操作的数据进行加解密,从而提高程序的安全性。常见加密算法分类见下图,可分为对称加密、非对称加密、散列
    的头像 发表于 11-21 10:08 1436次阅读
    <b class='flag-5'>常见</b><b class='flag-5'>加密算法</b>分类

    aes加密常见错误及解决方案

    AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,它使用固定长度的密钥对数据进行加密。在使用AES加密时,可能会遇到一些
    的头像 发表于 11-14 15:13 1250次阅读

    常见加密算法有哪些?它们各自的优势是什么?

    常见加密算法及其优势如下: AES(Advanced Encryption Standard): AES是一种对称加密算法,采用分组密码体制,支持128位、192位和256位密钥长度。AES的优势
    的头像 发表于 12-17 15:57 89次阅读