【The Joy of Cryptography 学习笔记】| 第1章 一次性密码本(One-Time Pad)和柯克霍夫原则(Kerckhoffs‘ Principle)

目录

1 什么是密码学(密码学基础概念)

1.1 基础概念

1.2 柯克霍夫原则

2 一次性密码本(One-Time Pad)

2.1 加密方案

2.2 正确性

2.3 安全性

2.4 局限性

疑问


1 什么是密码学(密码学基础概念)

1.1 基础概念

考虑这样一个场景,Alice希望将消息m秘密地发送给Bob,并且不希望窃听者Eve获得消息的具体内容。

  • 明文(plaintext):Alice希望发送的信息m
  • 密文(ciphertext):Alice将明文m转换为密文c发送给Bob
  • 加密算法(encryption algorithm):Alice使用加密算法将明文m转换为密文c,可以表示为Enc
  • 解密算法(decryption algorithm):Bob使用解密算法将密文c转换为明文m,可以表示为Dec
  • 密钥生成算法(key generation algorithm):用于生成随机密钥k,可以表示为KeyGen
  • 加密方案(encryption scheme):三种算法的集合(Enc,Dec,KeyGen)

1.2 柯克霍夫原则

密码系统应该就算被所有人知道系统的运作步骤,仍然是安全的。

对应1.1中描述的场景,柯克霍夫原则指出,加密方案本身应当是可以公开的。如果系统的安全性依赖于加密方案的保密,那么一旦方案被泄露则需要发明新的算法,其难度可见一斑。因此,需要考虑在系统中将其他的信息保密用以确保系统的安全性,即密钥。在保密密钥的情况下,如果发生密钥被泄露的情况,重新选择密钥进行加解密即可,而不是发明新的算法。

2 一次性密码本(One-Time Pad)

2.1 加密方案

在一次性密码本中,明文、密文、密钥均为01串。此处的\lambda表示密钥k的长度,即01串的位数。在一次性密码本中,\lambda的大小不影响系统的安全性,但是要求\lambda必须与明文的长度相匹配

KeyGen:从长度为\lambda的01串中均匀采样

Enc:明文和密钥做异或运算(XOR,exclusive or),加密得到密文

Dec:密钥和密文做异或运算,解密得到明文

2.2 正确性

正确性指的是Bob能通过解密收到的密文得到正确的明文,即对于任意的k,m\in (0,1)^{\lambda},满足Dec(k,Enc(k,m))=m,其证明如下:


Dec(k, Enc(k,m))=Dec(k,k\oplus m)\newline =k\oplus (k\oplus m)\newline =k\oplus k\oplus m\newline =m


2.3 安全性

从攻击者Eve的角度来看,得到一个密文等价于从如下的窃听算法得到一个输出:

这个算法不是描述攻击者做了什么,而是表示攻击者所得到的信息的产生过程(由Alice和Bob执行)。 将攻击者视为接收窃听算法输出的过程,则安全性指的是,窃听算法的输出不会暴露输入m。

窃听算法EAVESDROP(m)是一种随机算法,因此我们可以将其看做关于输出值的概率分布。得到一个密文就相当于从分布EAVESDROP(m)中随机采样。

证明一次性密码本的安全性,只需要证明“对于每个m\in (0,1)^{\lambda}概率分布EAVESDROP(m)服从均匀分布”。换而言之,对于所有的长度为\lambda的明文来说,加密后的密文的概率分布是相同的。其证明如下:


对于给定的c,m\in (0,1)^{\lambda}计算EAVESDROP(m)输出c的概率。

由于c=k\oplus m\Leftrightarrow k=m\oplus c

则有Pr[eavesdrop(m) = c]=Pr[k=m\oplus c],其中k是从(0,1)^{\lambda}随机选择的,服从均匀分布。

因此,EAVESDROP(m)服从均匀分布,Pr[eavesdrop(m)=c]=\frac{1}{2^{\lambda}}


如果攻击者获得一个用一次性密码本加密的密文,其中密钥被均匀地选择并且对攻击者来说是保密的,那么这个密文就会是均匀分布的。确保了一次性密码本的安全性。

2.4 局限性

一次性密码本在实践中是非常局限的,主要体现在:

  1. 一次性密码本要求密钥和明文以及密文都是等长的,一方面,当原文很长的时候对应的密文也会很长;另一方面,会存在“先有鸡还是先有蛋的问题”,即Bob如果想解密就必须拿到密钥,如果Alice能够隐私地传输密钥给Bob,为什么不直接将原文隐私地传送给Bob呢?
  2. 每个密钥只用一次,意味着每次加密都要不停地更换密钥,增加了复杂性。

疑问

直观上,如果\lambda越小,那么密文被破解的概率就越大,Pr[eavesdrop(m)=c]=\frac{1}{2^{\lambda}}。但是书中指出\lambda的大小不影响系统的安全性,此处想表达的含义是啥?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值