密码学笔记

密码学笔记

课程地址:https://www.bilibili.com/video/BV1Ht411w7Re?p=1&t=255

离散数学基础

详细内容见http://en.wikibooks.org/High_School_Mathematics_Extensions/Discrete_Probability

image-20220214162544672

以平均分布、点分布为例,简单介绍了概率与分布。

image-20220214162939048

事件与概率

image-20220214163634981

image-20220214164043202

lsb最低有效位

image-20220214164319924

对称加密

定义

密码由两个算法组成,分别是加密算法和解密算法。一个三元组(k, m, e),k为密钥空间,m为全体可能明文的集合,e为全体密文的集合,这定义了密码的环境。

通信双方除了共享的私钥k,其他所有的都是公开的,包括加密、解密算法。你应当使用业界验证很多年的公开加密算法,而不是使用私有加密算法。(如WEP,wifi的加密算法,非常不安全)

image-20220214111304424

通信过程:

  1. 输入信息,即原文m;
  2. 输入密钥k,利用公开算法加密即E(k,m),得到函数值c;
  3. 将函数值c和密钥k作为公开算法解密的输入,得到原文m。

历史中典型对称加密用例:

  1. 替换密码(简单的字符映射):凯撒密码(no key,just shift by 3)-> 利用字母的频率进行破解,日常用语中字母频率相对固定。
  2. DES(Data Encryption Standard):keys = 256 , block size = 64 bits
  3. ……

OTP一次性密码本

image-20220214171925011

image-20220214171903426

QQ图片20220214172535

同理,k=m⊕c,因此练习题中选择2

  • 优点:计算快,加密解密速度快
  • 缺点:密钥需要和明文一样长

image-20220214173108260

对于一次性密码本安全性问题的研究,首先我们需要了解什么是安全的密码,即密码安全的定义

image-20220214173819550

香农教授(Shannon)定义的密码安全性。(对于信息m0m1只有一个前提,它们满足长度相同

方框内的为该定义的主要内容,通俗即是如果攻击者截取到了一段密文c,那么密文c出自E(k, m0)的概率与出自E(k, m1)的概率应该是相等的,此时攻击者无法得知密文来自于m0还是m1

image-20220214174621937

即密文中无法得知任何关于明文的信息,即对于完美安全的密码,任何惟密文攻击都是无效的

OTP(The One Time Pad,一次性密码本)就是完美安全的密码,只是实际应用上比较麻烦。

image-20220214180712839

即只有一种映射关系。

image-20220215143742172

OTP具有密码完美安全性的证明(不理解这个#是什么意思)

image-20220215144020270

即如果它具有密码完美安全性则密钥数必须不小于明文数,或者说密钥长度必须不小于明文长度

image-20220215145125624

Stream Ciphers 流密码

流密码(Stream Ciphers),OTP改良后的实用性密码。它利用伪随机数发生器(PRG,pseudo-random generator)取代了随机函数,用G表示该伪随机函数。

image-20220215150641187

这个函数取一个种子为输入,我利用{0,1}^s 表示所有长度为s的字符串,这就是种子空间。它将s位种子映射到一个长的多的字符串{0,1}^n , n>>s,种子可能只有128位,我们将其拓展成了一个长得多的字符串。

注意:函数G本身没有随机性

image-20220215151102358

上图表示了流密码的加密解密过程

image-20220215151250982

上面提到了如果它具有密码完美安全性则密钥数必须不小于明文数,或者说密钥长度必须不小于明文长度,因此PRG不是完美安全的

一方面,PRG没有满足完美安全,另一方面,PRG是不可预测的(即给定明文的前缀,攻击者无法推导出整个原文)

针对流密码和一次密码本的攻击:

  1. Attack:two time pad is insecure!!多次使用同密码本加密不同原文

    image-20220215213256461

    得到m0m1的异或后是非常容易还原两个原文的。

    由于English和ASCII的冗余度,减少了计算的空间

    多次使用流秘钥是错误的❌,历史中的反例:

    1. Project Venona

    2. MS-PPTP(Windows NT)

    3. 802.11b WEP(WIFI通信)

      image-20220215214958253

      100w帧左右出现重复,改良如下:

      image-20220215215327774

      PRG计算结果的不同部分来分别为不同帧的数据流加密(这种情况下密钥看起来是随机的),即IV参数应该是变化且不重复的。

  2. Attack:no integrity(OTP is malleable)通过修改密文来对解密造成影响

    image-20220215222305215

    原文m在解密后变成了m⊕p

    image-20220215222553983

    From: Bob 变成了From: Eve ,原文被修改了。

RC4

image-20220215223542112

  1. RC4中不完全满足均匀分布,第二个字节为0的概率为2/256 而不是 1/256(如果不得不使用RC4,推荐从发生器产生的第257个字节开始,前面的字节是不均匀的)。
  2. RC4的一段长输出中,序列00的出现的可能性更大,1/2563 是偏差,大数据情况下这种偏差影响会更大。
  3. 根据key来做出攻击。我们以WEP为例,在WEP中key是严格可预测的,因为IV参数是从零开始递增的,所以可以根据key来做出攻击。同理RC4中也有这样的问题,使用的密钥之间紧密联系,导致容易还原出根密钥。

CSS

CSS是基于线性反馈移位寄存器(LFSR)的,原理如图:

image-20220216151620792

线条标注的区域叫做出头,它只在特定单元出现。新单元是出头的异或,而最右单元被抛弃。

image-20220216151758207

CSS使用两个寄存器,一个17-bit 另一个25-bits

17 = 1 + first 2bytes = 1 + 16 bits = 17bits
25 = 1 + last 3bytes = 1 + 24 bits = 25bits

eStream

image-20220216161124846

Nonce是或Number once的缩写,在密码学中Nonce是一个只被使用一次的任意或非重复的随机数值。

image-20220216164405484

第一步的输入中有4个4-bytes的常数τi (其中i = 0、1、2、3、4)以及16-bytesk8-bytes的计数器i8-bytesr,函数h是一个双射函数

||表示联结,而最后一步表示+,按位相加。

eStream在x86的机器上运行速度特别快

image-20220216194445321

image-20220216212808059

定义了一个Advantage(优势),即伪随机数与随机数的相似性(在我看来,该结果越接近于0表示,伪随机数发生器生成的结果与随机数发生器生成的结果越相似、接近,即伪随机数发生器越好)

A close to 1 --》A can dist G from rand
A close to 0 --》A cannot dist

image-20220216213431734

答案为0

image-20220216214509357

msb为最高有效位,因此Pr[ A(r) = 1 ] = 1/2

分组加密

image-20220217095947591

k为密钥,k越长,算法运行越慢,但是也越安全。

分组加密中,输入和输出长度严格相等

image-20220217100038769

R(k,m)叫做回合函数,一个输入为密钥k,另一个输入为当前的信息状态m

image-20220217100435498

数字签名

实际上就是待签内容的函数值,因此数字签名的复制、粘贴方式是不可行的

匿名通信

mixnet,它的工作原理基本上是当Alice发出信息,信息通过一系列代理被适当加密、解密以至于Bob不知道对方的身份,且这种沟通方式是双向的。

安全多方计算

多个私密输入,一个计算函数F,一个可信任的第三方,由第三方公布函数值而不泄露输入内容。

而在密码学中,所有依赖可信任方的计算都可以变成完全不依赖第可信任方的计算,比如通过公有协议来实现。

私有外包计算

image-20220214110454662基于加密数据的Google搜索,得到的结果以加密的形式返回,其中Google并不知道Alice的搜索内容。

posted @ 2022-03-23 09:31  sherlson  阅读(367)  评论(0编辑  收藏  举报