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

    文章

    119

    浏览量

    19590
  • DES
    DES
    +关注

    关注

    0

    文章

    63

    浏览量

    48031
收藏 人收藏

    评论

    相关推荐

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

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

    支持国密算法加密芯片

    大幅提升,适用于高速数据流加密。同时,该芯片还集成了键盘控制模块,适用于高端键盘和安全键盘的设计。TF32A09系列芯片支持国家密码管理局指定的对称密码算法、非对称密码算法和杂凑算法
    发表于 04-27 17:17

    电工最常见电路

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

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

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

    uid加密算法

    uid加密算法,1.STM32可以加密程序,不然可能有被窃取的可能JTAG 可以直接通过J-LINK-FLASH获取代码,首先新建工程,型号选好,read back即可save data fileUID加密函数,在我的链接里,一
    发表于 07-19 08:23

    DES加密算法是什么

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

    对称加密算法是什么

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

    变频电源最常见的故障问题有哪些

    大家总结下变频电源最常见的故障问题有哪些:1、安装环境的问题2、外部的电磁感应干扰3、冷却系统问题 4、主回路故障问题以上就是变频电源最常见的四大问题,如果你在变频电源出现问题之后,只要不是人为造...
    发表于 12-30 08:11

    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.3w次阅读

    最常见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>

    最常见的目标跟踪算法

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

    常见加密算法分类

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