【Joy of Cryptography 读书笔记】Chapter 1 一次性密码本(one-time pad)&Kerckhoffs原则

Chapter 1 一次性密码本(one-time pad)&Kerckhoffs原则

一、密码学基础概念

可以想象一个基础场景:Alice有一个信息m要传给Bob,但是不希望Eva知道。

1、基本概念

在这里插入图片描述

  • 明文(plaintext) m m m
  • 密文(ciphertext) c c c
  • 密钥(key/secret) k k k:秘密参数
  • 加密算法(encryption algorithm) E n c Enc Enc
  • 解密算法(decryption algorithm) D e c Dec Dec
  • 密钥生成算法(key generation algorithm) K e y G e n KeyGen KeyGen
  • 密码算法可以即为 ( E n c , D e c , K e y G e n ) (Enc, Dec, KeyGen) (Enc,Dec,KeyGen),要求是不知道密钥则无法从密文 c c c中获取信息
2、Kerckhoffs原则

一个安全保护系统的安全性不是建立在它的算法保密的,而是它所选择的密钥保密的。

二、一次性密码本

1、具体算法

一次性密码本是一种密码算法,其中所有的密钥、明文、密文都是长度为 λ \lambda λ的二进制字符串。具体的密码算法如下:
在这里插入图片描述
其中在密钥生成算法中,是指在所有长度为 λ \lambda λ的二进制串中随机(服从均匀分布)选择一个。

2、正确性

首先对于一个密码算法而言,需要保证接收方能够解密密文,即对于任意 k , m k,m k,m,满足 D e c ( k , E n c ( k , m ) ) = m Dec(k,Enc(k, m))=m Dec(k,Enc(k,m))=m

根据算法和异或的性质可知, D e c ( k , E n c ( k , m ) ) = k ⊕ ( k ⊕ m ) = ( k ⊕ k ) ⊕ m = m Dec(k,Enc(k, m))=k\oplus(k\oplus m)=(k\oplus k)\oplus m=m Dec(k,Enc(k,m))=k(km)=(kk)m=m,因此可以解密。

3、安全性

对于一个偷听者(eavesdrop)来说,上述密码算法其实是如下的一个获取密文的过程。我们需要保证的是无法从这个结果 c c c中获取到有关 m m m的任何信息。
在这里插入图片描述
此处给出一次性密码本的一个结论:对于任意 m ∈ { 0 , 1 } λ m\in \{0, 1\}^\lambda m{0,1}λ e a v e s d r o p ( m ) eavesdrop(m) eavesdrop(m)服从均匀分布。也就是任意两个不一样的输入,加密后的密文的概率分布是一样的,因此即使获得一个密文 c c c也无法知道输入的是哪一个。下面给出该结论的证明:

对于给定的 m , c ∈ { 0 , 1 } λ m,c\in \{0, 1\}^\lambda m,c{0,1}λ,根据eavesdrop算法有 c = k ⊕ m c = k\oplus m c=km。根据异或的性质(见Chapter 0),有
c = k ⊕ m ⟺ k = c ⊕ m c = k\oplus m \Longleftrightarrow k = c\oplus m c=kmk=cm
因此
P r [ e a v e s d r o p ( m ) = c ] = P r [ k = c ⊕ m ] Pr[eavesdrop(m)=c]=Pr[k = c\oplus m] Pr[eavesdrop(m)=c]=Pr[k=cm]
对于给定的 m , c ∈ { 0 , 1 } λ m,c\in \{0, 1\}^\lambda m,c{0,1}λ,其异或的结果是唯一的。而 k k k服从均匀分布,因此 P r [ k = c ⊕ m ] = 1 2 λ Pr[k = c\oplus m]=\frac{1}{2^\lambda} Pr[k=cm]=2λ1。上述结果具有一般性,因此这意味着,对于任意的 m 、 c m、c mc e a v e s d r o p ( m ) eavesdrop(m) eavesdrop(m)的结果为 c c c是服从均匀分布。

这也说明,一次性密码本是perfect secure(香农的完美安全定理,即 P r [ E ( k , m 0 ) ] = P r [ E ( k , m 1 ) ] Pr[E(k,m_0)]=Pr[E(k, m_1)] Pr[E(k,m0)]=Pr[E(k,m1)]

4、局限性
  • 长度的一致性要求:若传递的信息很长,就需要很长的密钥,不太实用
  • 一次性使用:无法保证重复使用是否会泄露信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值