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 密码也是用同样的原理设计出来的。但是解密起来就很麻烦,因此每个字母都代表一个位移值。

维吉尼亚密码表

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

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

多态性

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

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

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

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

    关注

    9

    文章

    195

    浏览量

    31282
  • 加密算法
    +关注

    关注

    0

    文章

    219

    浏览量

    26140
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    选择加密算法时需考虑哪些因素?

    芯源半导体安全芯片的硬件加密引擎支持多种国际通用加密算法,在实际为物联网设备选择加密算法时,需考虑哪些因素?
    发表于 11-17 07:43

    AMI在Aptio V UEFI固件中成功部署后量子密码学

    UEFI固件已成功部署后量子密码学(PQC)支持。 这一成果标志着业界首次在UEFI固件中成功部署PQC,为量子计算时代初期的基础设施安全与合规准备树立了全新标杆。 AMI企业徽标 应对量子计算对基础设施安全与合规性挑战 随着量子计算技术不断发展,传统加密算法正面临被淘
    的头像 发表于 11-13 21:08 145次阅读

    SM4算法实现分享(一)算法原理

    。而解密算法加密算法采用同一结构,只是轮密钥使用的顺序不同,加密采用顺序的,解密采用逆序的。 SM4加密算法是典型的分组密码
    发表于 10-30 08:10

    SM4算法原理及分享1

    SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(
    发表于 10-30 06:54

    国密系列算法简介及SM4算法原理介绍

    所示: 非对称加密算法:SM2算法可用于电子认证服务;SM9算法可用于各种互联网新兴应用。 对称加密算法:SM1算法未公布,以IP核的形式
    发表于 10-24 08:25

    加密算法的应用

    加密是一种保护信息安全的重要手段,近年来随着信息技术的发展,加密技术的应用越来越广泛。本文将介绍加密算法的发展、含义、分类及应用场景。 1. 加密算法的发展
    发表于 10-24 08:03

    AES加密流程

    等领域。 在1997年,美国国家标准技术研究院(NIST)发起了一个密码竞赛,以寻求一种新的高级加密标准来替代DES加密算法。经过多轮的评选和筛选,Rijndael算法成为最终的胜者,
    发表于 10-23 06:13

    RISCV-K指令集扩展分享

    RISC-V K扩展指的是RISC-V用于提升密码学算法的速度、减小应用程序大小的一个扩展指令集。主要包含了:AES加密算法的加速指令、SHA算法的加速指令,SM3、SM4
    发表于 10-23 06:12

    抵御量子计算威胁:航芯「抗量子密码加密签名方案」为信息安全筑起新防线

    随着量子计算进入实用化突破期,传统密码体系面临的安全威胁已从理论风险升级为可预见的技术挑战。量子计算机强大的运算能力可能会破解现有的公钥密码体系,例如RSA和椭圆曲线加密算法(ECC)。为了应对量子
    的头像 发表于 04-14 11:01 848次阅读
    抵御量子计算威胁:航芯「抗量子<b class='flag-5'>密码</b><b class='flag-5'>加密</b>签名方案」为信息安全筑起新防线

    深入解析ECC256椭圆曲线加密算法

    点击蓝字关注我们一、加密算法概述数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到
    的头像 发表于 12-26 16:32 2784次阅读
    深入解析ECC256椭圆曲线<b class='flag-5'>加密算法</b>

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

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

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

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

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

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

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

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

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

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