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

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

3天内不再提示

密码学科普:多个加密算法的详细说明

如意 来源:ETHFANS 作者:Ajian 2020-06-28 09:48 次阅读

密码学的基本原理

所谓加密,就是一个改变数据,使之变得不可辨识、无授权者无法使用的过程;同时,它还要保证解密过程能成功把改变后的数据恢复成原始形式。安全技术一般都把加密的数学方法和用于加密的参数(叫做 “key(密钥)”)区别开来。被选定的密钥(通常是一段随机的字符串)也是加密过程的输入,对加密过程来说也是必不可少的。同一把密钥往往也是解密过程的必要输入。

这个保护过程的原理是,只要密钥(有时候也叫 “口令”,password)没有暴露、只被得到授权的人所知,那么原始数据就不会暴露给其他人。只有知道密钥的人才能解密密文。这个思路,我们叫 “私钥” 密码设计学(译者注:称作 “对称密码学” 可能更恰当一些,因为加解密过程是对称的,都使用同一把密钥),也是最广为人知的加密形式。

那么,加密之所以必要的基本理由如下:

机密性(confidentiality)—— 在传输数据的时候,不希望窃听者能够知道被广播的消息的内容。在保管数据的时候不希望未经授权的人(比如黑客)能够访问,也是同理。

身份认证(Authentication)—— 相当于签名。收信者希望能确证该信息是特定的某个人发出的,其他人不能冒充(甚至初始发信方后面想抵赖也不可能)。

完整性(Integrity)—— 这意味着收信者能够证实自己得到的数据是完完整整、没有经第三方改动过的。

不可抵赖性(Non-repudiation)—— 防止发信方抵赖自己创建过、发送过某条消息。

译者注:作者在这里提到的才算是现代密码学研究的范围。比如身份认证和不可抵赖性,都是很重要的属性,但是在实用中几乎与加解密过程无关,但对数字签名的研究毫无疑问是密码学的内容。加解密的安全性跟机密性有关,只是现代密码学的一部分。

Cipher

密码设计学是(通过加密)隐藏敏感数据的艺术和科学。它包括加密过程(就是在原始的 “原文” 上使用加密算法)和解密过程(就是在密文上使用算法,使之恢复到可读的形式)。

要解释什么是 Cipher,最好还是给你看几个简单的例子:

波利比乌斯密码

波利比乌斯密码(Polibius Cipher)也是一种字符替换型密码。在我这个示例中,我用的是一个 6×6 的二维矩阵,可以把所有的大写字母和数字 0 到 9 都包括进去。然后我们可以得出下表:

密码学科普:多个加密算法的详细说明

有了这个举证,我们就可以开始代换了。比如,字母 “A” 可以表示成 “1 × 1”,或者 “X = 1,Y = 1”,甚至再简化成 11。再举例,字幕 “N” 可以表示成 “2 × 3”,或者 “X = 2,Y = 3”,简化后就是 23。

来试试加密一条简单的信息:

消息(原文):ENCRYPT ME 2 DAY

加密后的数据(密文):51–23–31–63–15–43–24 13–51 55 41–11–15

纳入生僻字符后,这张表可以变得很大很复杂。而且,定期地随机改变字符的位置也会让暴力破解无从下手。这很像我们今天在高级计算型加密方法所用的多态性(polymorphism)。

凯撒密码

密码学科普:多个加密算法的详细说明

历史最悠久的加密算法之一就是以其创造者凯撒而闻名的凯撒密码(Caeser Cipher)。他用这套方法来保证跟罗马将军们的安全通信,这样罗马帝国的敌人们就算拿到信也没有办法读懂。凯撒密码是加密的一种初级形式,很容易被破解,所以今天已经基本不会用在任何安全用途中了。

从原理上来说,凯撒密码就是重排字母表,不同的位移值也会使得编码后的数据完全不同。位移值,顾名思义,就是通过让字母左移或者右移一定位数来生成密文的数值。(译者注:所以,在这里,大家可以把凯撒密码理解成一种根据字母表顺序的位移来加密的算法(cipher),而位移值就是那个 Key,密钥。)

这里我们用右移 3 位的做法来看一个实际的例子:

英文原文:ENCRYPT ME

密文:HQFUBSW PH (解密时候要相应左移 3 位才能解密)

上面这条消息可以通过尝试所有可能的位移值来暴力破解:不断尝试新的位移值,直到解出来的原文看起来像样子。更加复杂的密码比如 Vigenere 密码和 Gronsfeld 密码也是用同样的原理设计出来的。但是解密起来就很麻烦,因此每个字母都代表一个位移值。

维吉尼亚密码表

密码学科普:多个加密算法的详细说明

在理解密码设计学之前,我们先要了解加密算法的工作原理,因为它们是所有加密过程的基础。速记是一种记录隐藏信息的方法,实际上可以归为古典密码设计学一类,因为现代密码设计学已经成了 “计算机安全” 的代名词。

多态性

多态性是密码设计学中较为高级的部分,在计算机加密技术中最为常见。多态性指的是,一种加密方法在每次使用时都会产生不同的结果,而且在每次使用过后都会发生改变。多态性常见于计算机加密算法。也就是说,如果我们将相同的数据加密两次,每次都会得到一个不同的加密结果。

我们用汽车钥匙来打个比方。现在,我们只需要在一个小巧的电子遥控设备上轻轻一按,就可以解锁汽车了。当你解锁车门时,你或许从来没思考过其中的原理 —— 你按下按钮的那一刻,会有一段特定的数据发送到你的车上,一旦匹配成功,车门就解锁了。要实现这点,最简单的方法是为每个遥控设备设定不同的频率。但是,这样管理起来会很麻烦。因此,所有遥控设备都采用了同样的波长,但是使用不同的算法(滚动码)来生成发送给汽车的数据。这些就是多态性算法。

由于这些算法每次使用过后都会发生改变,很难对其进行逆向工程。即使有黑客破解了算法(首先,破解多态性算法本身难度就很大),他还得找到与该算法匹配的汽车/钥匙(这又是一项复杂的任务)。

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

    关注

    8

    文章

    190

    浏览量

    30497
  • 加密算法
    +关注

    关注

    0

    文章

    215

    浏览量

    25540
收藏 人收藏

    评论

    相关推荐

    加密算法在云计算中如何应用?

    加密算法在云计算中的应用主要体现在以下几个方面: 数据加密 : 数据加密是保护数据在传输和存储过程中的机密性的关键技术。在云计算中,数据加密技术可以分为传输
    的头像 发表于 12-17 16:02 56次阅读

    加密算法在网络安全中扮演什么角色?

    加密算法在网络安全中扮演着至关重要的角色,以下是它们的主要功能和作用: 保护数据机密性 : 加密算法确保只有授权用户才能访问敏感数据,防止数据在传输或存储过程中被未授权访问。 确保数据完整性
    的头像 发表于 12-17 16:00 56次阅读

    加密算法的选择对于加密安全有多重要?

    加密算法的选择对于加密安全至关重要,因为它直接影响到数据保护的有效性和可靠性。以下是几个关键点来说明加密算法选择的重要性: 加密强度:
    的头像 发表于 12-17 15:59 56次阅读

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

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

    对称加密技术在实际应用中如何保障数据安全?

    ,如使用安全的密钥协商和密钥分发方式,定期更换密钥等。 密码学原理的安全性: 对称加密算法的安全性基于密码学原理,需要确保密码学原理的安全性,如避免使用弱
    的头像 发表于 12-16 13:59 73次阅读

    华纳云:加密算法在保护网络安全中扮演什么角色

    加密算法在保护网络安全中扮演着至关重要的角色,具体来说,它们的作用包括但不限于以下几点: 数据保密性:加密算法用于加密数据,将其转换为一种不易理解的形式,以防止未经授权的访问者查看或识别数据内容
    的头像 发表于 12-06 15:22 150次阅读

    C加密算法的实现

    电子发烧友网站提供《C加密算法的实现.pdf》资料免费下载
    发表于 09-20 11:10 1次下载
    C<b class='flag-5'>加密算法</b>的实现

    请问ESP-IDF的WPA3-SAE的入网加密算法最耗时的是那个函数?

    请问ESP-IDF的WPA3-SAE的入网加密算法最耗时的是那个函数
    发表于 06-05 08:17

    HarmonyOS开发案例:【字符串加解密】

    使用加密算法API对密码进行加密存储,模拟开发一个用户注册登录应用。
    的头像 发表于 04-21 21:36 536次阅读
    HarmonyOS开发案例:【字符串加解密】

    AES加密协议是什么?AES加密协议的应用

    标准化过程:AES是在1997年由比利时密码学家Joan Daemen和Vincent Rijmen共同提出的Rijndael算法基础上发展起来的。经过严格的国际评审和对比测试,美国国家标准与技术研究
    的头像 发表于 04-15 15:34 844次阅读

    STM32L072系列支持AES加密算法吗?

    STM32L072,L0系列,Cortex-M0/M0+/M1处理器基于ARMv6-M架构,查指令集是没有AES加密支持的请问要怎么支持AES加密算法
    发表于 04-10 08:05

    指纹加密移动硬盘详细方案解析

    国产加密算法加密存储。  连续10次输错密码,设备锁死;只能通过备份密钥进行解锁。  支持多用户多分区,不同用户根据口令进入各自物理分区;有效解决交叉使用造成的数据丢失。  支持各分区容量大小调整。
    的头像 发表于 03-18 15:23 660次阅读
    指纹<b class='flag-5'>加密</b>移动硬盘<b class='flag-5'>详细</b>方案解析

    北斗短报文手持终端如何确保数据安全性?

    北斗短报文手持终端支持的加密算法主要包括SM4算法和AES算法。SM4算法是一种对称加密算法,由国家密码
    的头像 发表于 03-12 17:35 588次阅读

    TC233/TC234系列中的HSM硬件支持哪些加密算法

    HSM 中支持的算法:你能否具体说明 TC233/TC234 系列中的 HSM 硬件支持哪些加密算法? 特别是,我有兴趣了解对 AES、CMAC、RSA、ECC 和 SHA 的支持。 2. 具有类似
    发表于 01-18 10:33

    对称加密算法工作模式详解

    对称密码体制,又称为单密钥密码机制,其基本特征为加密密钥和解密密钥相同。
    的头像 发表于 01-04 11:25 2068次阅读
    对称<b class='flag-5'>加密算法</b>工作模式详解