浅读《图解密码技术》--学习笔记

浅读《图解密码技术》(学习笔记)

一、什么是密码学?

密码学(Cryptography)

Cryptography is about constructing and analyzing protocols that prevent third parties or the public from reading private messages.

①protocol:n. 协议; 议定书;方法;
②private:adj. 私有的; 私人的;
翻译:密码学就是构建和分析一系列方法,这些方法能阻止第三方或公众读取私密信息。

二、历史上的密码

1.凯撒密码

  凯撒加密法的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
破解该密码最多需要尝试26种可能

2.单表替换密码

  单表替代密码对明文中的所有字母都使用一个固定的映射(明文字母表到密文字母表)。设A={a0, a1,…, an-1}为包含了n个字母的明文字母表;B={b0, b1,…, bn-1} 为包含n个字母的密文字母表,单表替代密码使用了A到B的映射关系:f:A→B, f ( ai )= bj,如下图所示:

  破解该密码最多需要尝试26!种可能
  频率分析攻击

3.多表替换密码

  使用维尔纳密码实现,需要根据明文和索引来找到相对应的密文,维尔纳密码表如下图所示:

①首先将索引(短于明文)复制成若干份,直至同明文长度保持一致
②将索引(增长之后的)与明文对应
如:明文:IJFKSLAIWOOSJWNCBWGEUCNFBEHH
  索引:LSYLSYLSYLSYLSYLSYLSYLSYLSYLSY
 则密文:ABIVJJ……
(明文为横向对应的纵列,索引为纵向对应的横行,交叉点即为密文)
  破解方式:按照索引长度,将明文切片,然后再分别根据每个切片中索引的同一位置的同一字母进行频率分析

4.机械密码:Enigma(谜)

  密码机如下图所示,操作由发报员按动密码机下方的小键盘,则对应上方的小灯泡会亮,亮的小灯泡所对应的字母即为原来输入字母的密文。
  在显示器的上方是三个直径6厘米的转子,它们的主要部分隐藏在面板下,转子才是“恩尼格玛”密码机最核心关键的部分。同一个字母在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,又可以代表明文中的不同字母,字母频率分析法在这里丝毫无用武之地了。这种加密方式在密码学上被称为“复式替换密码”。当第一次键入A,灯泡B亮,转子转动一格,各字母所对应的密码就改变了。第二次再键入A时,它所对应的字母就可能变成了C;同样地,第三次键入A时,又可能是灯泡D亮了。
  使用“恩尼格玛”通讯时,发信人首先要调节三个转子的方向(而这个转子的初始方向就是密匙,是收发双方必须预先约定好的),然后依次键入明文,并把显示器上灯泡闪亮的字母依次记下来,最后把记录下的闪亮字母按照顺序用正常的电报方式发送出去。收信方收到电文后,只要也使用一台“恩尼格玛”,按照原来的约定,把转子的方向调整到和发信方相同的初始方向上,然后依次键入收到的密文,显示器上自动闪亮的字母就是明文了。加密和解密的过程完全一样,这就是反射器的作用,同时反射器的一个副作用就是一个字母永远也不会被加密成它自己,因为反射器中一个字母总是被连接到另一个不同的字母。

  相当于是26×26×26张表的多表替换。
  破译方法:用的也是机器进行破解

三、现代密码学工具

信息安全所面临的威胁受威胁的特征用来应对的技术
窃听机密性对称密码
公钥密码
篡改完整性单项散列函数
消息认证码
数字签名
伪装认证消息认证码
数字签名
否认不可否认性数字签名

1.信息安全的五大特性:

(1)完整性:指信息在传输、交换、存储和处理过程保持非修改、非破坏和非丢失的特性,即保持信息原样性,使信息能正确生成、存储、传输。这是最基本的安全特征。
(2)机密性:指信息按给定要求不泄漏给非授权的个人、实体,即杜绝有用信息泄漏给非授权个人或实体,强调有用信息只被授权使用的特征。
(3)可用性:指网络信息可被授权实体正确访问,并按要求能正常使用或在非正常情况下能恢复使用的特征,即在系统运行时能正确存取所需信息,当系统遭受攻击或破坏时,能迅速恢复并能投入使用。可用性是衡量网络信息系统面向用户的一种安全性能(使信息能够按照用户的要求被正常使用)。
(4)不可否认性:指通信双方在信息交互过程中,确信参与者本身,以及参与者所提供的信息的真实同一性,即所有参与者都不可能否认或抵赖本人的真实身份,以及提供信息的原样性和完成的操作与承诺。
(5)可控性:指对流通在网络系统中的信息传播及具体内容能够实现有效控制的特性,即网络系统中的任何信息要在一定传输范围和存放空间内可控。

2.信息安全存在的威胁

(1)窃听:指的是在发送方A给接收方B发送信息的过程中,第三方X非法读取信息内容,从而对信息安全构成威胁。
(2)篡改:指的是在发送方A给接收方B发送信息的过程中,第三方X非法修改信息内容,从而对信息安全构成威胁。
(3)伪装:指的是第三方X将自己伪装成发送方A,给接收方B发送信息,从而对信息安全构成威胁。
(4)否认:指的是在发送方A给接收方B发送信息之后,发送方A对向接收方B发送信息这件事进行事后否认,从而对信息安全构成威胁。

3.存在的疑惑

(1)表格中“伪装”行为威胁到的是信息安全五大特征中的什么特征?
(2)密钥的读音为(mi yue),口语中也可以读成(mi yao)

4.现代密码学工具

(1)对称密码
  在对称密码中,加密用的密钥和解密用的密钥是相同的,如下图所示。密钥要相对较短。

①代表性的对称密码算法:DES、AES、Blowfish、Twofish…
②对称密码终极版:One-Time Pad,理论上无法破译,但不实用,是量子密钥分发所以来的基本理论;
首先用明文和密钥做异或运算得到密文

明文:01101101
密钥:01101011
密文:00000110

然后用密文和密钥再次做异或运算得到解密后的明文

密文:00000110
密钥:01101011
明文:01101101(解密后的明文)

条件:a)密钥和明文等长;
   b)密钥必须完全随机;
   c)密钥不能重复使用;
(2)公钥密码(非对称密码)
  公钥密码中,加密使用的密钥和解密使用的密钥是不同的,如下图所示。

①代表性的公钥密码算法:RSA、DH、DSA、ECDSA…
②RSA公钥密码算法
  RSA的加密解密过程如下图所示:

  RSA算法的原理:

由于对称密码速度快但密钥难以分发,公钥密码密钥容易分发,但速度慢,所以引入混合密码:
a)用公钥密码来加密和分发对称密码的密钥;
b)用对称密码来加密要传输的消息;
(3)哈希函数(散列函数)
  由于哈希函数具有雪崩效应(原消息中有任何细微变化都会导致经过哈希函数得到的哈希值有巨大变化),所以哈希函数可以用来验证消息的完整性。
  应用:用哈希函数处理用户口令(Password),即将用户口令利用哈希函数,计算哈希值之后,将哈希值存在数据库里面。
(4)消息验证码
  哈希函数+密钥=消息验证码(MAC)
  威胁:重放攻击
  破解方法:采用随机编码的方法,在每个消息中加入一个随机数,每个随机数只能使用一次,然后再经过哈希之后发送给接收者,以此来抵御重放攻击。
(5)数字签名
  数字签名与前面学习过的公钥密码方式类似,公钥密码由一个公钥和一个私钥构成密钥对,公钥进行加密,私钥进行解密,如下图所示。

  数字签名也是由公钥密码由一个公钥和一个私钥构成密钥对,不同的是,此处的公钥用来解密,私钥则是用来加密,如下图所示。用私钥加密相当于生成签名,用公钥解密则相当于验证签名。

  应用:iOS App
  威胁:中间人攻击
  破解方法:数字证书

5.其他

(1)加密与解密
  发送者Alice将发送明文加密之后得到密文,将密文发送给接收者Bob,Bob将接收到的密文解密,从而得到明文,在此过程中,窃听者Eve只能窃听到密文,无法解密得到明文,如下图所示,从而保证了消息的机密性。

(2)随机数生成器
  具有不可预测性,C语言中的rand函数并非密码学领域中可靠的随机数生成函数。

四、密码学应用——SSL/TLS&区块链

1.HTTP+SSL/TLS=HTTPS

2.比特币与区块链

(1)比特币的地址:公钥+哈希函数
(2)比特币钱包:私钥
(3)比特币交易记录:区块链

五、量子时代的密码学

1.量子密码

  量子密码是基于量子理论的通信技术,由Bennett和 Brassard于20世纪80年代提出。尽管带有“密码”这个词,但严格来说它并没有直接构成―种密码体系,而是一种让通信本身不可窃听的技术,也可以理解为是一种利用光子的量子特性来实现通信的方法。

2.量子计算机和量子算法

  Shor量子算法可以再多项式时间内完成质因数分解(RSA公钥密码算法的基础),但是现在没有能够运行Shor算法的实用量子计算机。

3.后量子算法

即便使用量子计算机和量子算法依然难以破解的密码:
(1)基于格理论的密码;
(2)多变量公钥密码;
(3)基于哈希函数的密码;
(4)基于编码的密码;

六、一些小建议

1.不要使用保密的密码算法
  密码算法是公开的,要保密的是密钥;
2.使用低强度的密码还不如不使用密码
  用户对信息安全性的错误依赖;
3.任何密码总有一天都会被破解(处理One-Time Pad)
  权衡信息的重要性和生命周期;
4.密码只是信息安全的一部分
  信息安全最脆弱的环节不是密码,而是人类自身;
5.密码不能解决所有的安全问题
6.密码学的可靠性严重依赖于是否正确实现和使用
  不要认为自己能发明一个可靠的密码学算法;
  即便对于AES、RSA之类的公认算法,也不要尝试自己去实现,而是要使用主流的实现;
7.即使最安全的密码学系统也可能因为一个设计或程序错误而变得毫无用处,做再多单元测试也难以发现密码学系统中的漏洞

Dan Boneh教授的课:https://www.coursera.org/learn/crypto
好好学数学!尤其数论、群论……

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值