【Joy of Cryptography 读书笔记】Chapter 1 一次性密码本(one-time pad)Kerckhoffs原则
Chapter 1 一次性密码本(one-time pad)&Kerckhoffs原则
文章目录
- Chapter 1 一次性密码本(one-time pad)&Kerckhoffs原则
- 一、密码学基础概念
- 1、基本概念
- 2、Kerckhoffs原则
- 二、一次性密码本
- 1、具体算法
- 2、正确性
- 3、安全性
- 4、局限性
一、密码学基础概念
可以想象一个基础场景:Alice有一个信息m要传给Bob,但是不希望Eva知道。
1、基本概念
- 明文(plaintext)mmm
- 密文(ciphertext)ccc
- 密钥(key/secret)kkk:秘密参数
- 加密算法(encryption algorithm)EncEncEnc
- 解密算法(decryption algorithm)DecDecDec
- 密钥生成算法(key generation algorithm)KeyGenKeyGenKeyGen
- 密码算法可以即为(Enc,Dec,KeyGen)(Enc, Dec, KeyGen)(Enc,Dec,KeyGen),要求是不知道密钥则无法从密文ccc中获取信息
2、Kerckhoffs原则
一个安全保护系统的安全性不是建立在它的算法是保密的,而是它所选择的密钥是保密的。
二、一次性密码本
1、具体算法
一次性密码本是一种密码算法,其中所有的密钥、明文、密文都是长度为λ\lambdaλ的二进制字符串。具体的密码算法如下:
其中在密钥生成算法中,是指在所有长度为λ\lambdaλ的二进制串中随机(服从均匀分布)选择一个。
2、正确性
首先对于一个密码算法而言,需要保证接收方能够解密密文,即对于任意k,mk,mk,m,满足Dec(k,Enc(k,m))=mDec(k,Enc(k, m))=mDec(k,Enc(k,m))=m。
根据算法和异或的性质可知,Dec(k,Enc(k,m))=k⊕(k⊕m)=(k⊕k)⊕m=mDec(k,Enc(k, m))=k\oplus(k\oplus m)=(k\oplus k)\oplus m=mDec(k,Enc(k,m))=k⊕(k⊕m)=(k⊕k)⊕m=m,因此可以解密。
3、安全性
对于一个偷听者(eavesdrop)来说,上述密码算法其实是如下的一个获取密文的过程。我们需要保证的是无法从这个结果ccc中获取到有关mmm的任何信息。
此处给出一次性密码本的一个结论:对于任意m∈{0,1}λm\in \{0, 1\}^\lambdam∈{0,1}λ,eavesdrop(m)eavesdrop(m)eavesdrop(m)服从均匀分布。也就是任意两个不一样的输入,加密后的密文的概率分布是一样的,因此即使获得一个密文ccc也无法知道输入的是哪一个。下面给出该结论的证明:
对于给定的m,c∈{0,1}λm,c\in \{0, 1\}^\lambdam,c∈{0,1}λ,根据eavesdrop算法有c=k⊕mc = k\oplus mc=k⊕m。根据异或的性质(见Chapter 0),有
c=k⊕m⟺k=c⊕mc = k\oplus m \Longleftrightarrow k = c\oplus m c=k⊕m⟺k=c⊕m
因此
Pr[eavesdrop(m)=c]=Pr[k=c⊕m]Pr[eavesdrop(m)=c]=Pr[k = c\oplus m] Pr[eavesdrop(m)=c]=Pr[k=c⊕m]
对于给定的m,c∈{0,1}λm,c\in \{0, 1\}^\lambdam,c∈{0,1}λ,其异或的结果是唯一的。而kkk服从均匀分布,因此Pr[k=c⊕m]=12λPr[k = c\oplus m]=\frac{1}{2^\lambda}Pr[k=c⊕m]=2λ1。上述结果具有一般性,因此这意味着,对于任意的m、cm、cm、c,eavesdrop(m)eavesdrop(m)eavesdrop(m)的结果为ccc是服从均匀分布。
这也说明,一次性密码本是perfect secure(香农的完美安全定理,即Pr[E(k,m0)]=Pr[E(k,m1)]Pr[E(k,m_0)]=Pr[E(k, m_1)]Pr[E(k,m0)]=Pr[E(k,m1)])
4、局限性
- 长度的一致性要求:若传递的信息很长,就需要很长的密钥,不太实用
- 一次性使用:无法保证重复使用是否会泄露信息
【Joy of Cryptography 读书笔记】Chapter 1 一次性密码本(one-time pad)Kerckhoffs原则相关推荐
- 【Joy of Cryptography 读书笔记】Chapter 2 可证明安全(Provable Security)基础
Chapter 2 可证明安全(Provable Security)基础 要想证明安全性,首先需要对安全进行定义,才能证明某一个方法能够保证什么安全性,或者说明它为什么不安全.毕竟密码学并不能解决所有 ...
- 【Joy of Cryptography 读书笔记】Chapter 8 分组密码的工作模式(Modes of Operation)
Chapter 8 分组密码的工作模式(Modes of Operation) 文章目录 Chapter 8 分组密码的工作模式(Modes of Operation) 一.常见的工作模式 1.EBC ...
- 【Joy of Cryptography 读书笔记】Chapter 6 伪随机函数(Pseudorandom Function)分组密码(Block Cipher)
Chapter 6 伪随机函数(Pseudorandom Function)&分组密码(Block Cipher) 文章目录 Chapter 6 伪随机函数(Pseudorandom Func ...
- 【Joy of Cryptography 读书笔记】Chapter 4 基于难解计算(Intractable Computation)的密码学
Chapter 4 基于难解计算(Intractable Computation)的密码学 John Nash提出一个观点:如果破解一个密码算法的计算耗费时间很长,那么这个密码算法从实用的角度上是安全 ...
- 《C++捷径教程》读书笔记--Chapter 16--模板(完结)
//--<C++捷径教程>读书笔记--Chapter 16--模板(完结) //--Chapter 16--模板 //--04/16/2006 Sun. //--Computer Lab ...
- 《C++捷径教程》读书笔记--Chapter 14--继承(完结)
//--<C++捷径教程>读书笔记--Chapter 14--继承(完结) //--Chapter 14--继承 //--04/14/2006 Friday //--Computer La ...
- 《C++捷径教程》读书笔记--Chapter 10--结构与联合
//--<C++捷径教程>读书笔记--Chapter 10--结构与联合 //--Chapter 10--结构与联合 //--11/24/2005 Thurs. //--Computer ...
- [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 3
<Volatility Trading> by Euan Sinclair Chapter 3 收益率和波动率的典型事实 典型事实列表 波动率并非常数 收益率分布 成交量和波动率 波动率分 ...
- [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 4
<Volatility Trading> by Euan Sinclair Chapter 4 预测波动率 波动率是否可以被预测? 无摩擦交易市场(交易费用为零) 信息有效(完美信息流) ...
最新文章
- STL与泛型编程(1)---模板
- elasticsearch的增删改查
- Linux隐藏文件标识
- linux系统ll历史,Linux操作系统原理笔记
- JPA字段长度 Mysql数据库
- 作者:熊刚,男,博士,现任中国科学院自动化研究所研究员,中国科学院云计算中心自动化所东莞研究院首席科学家等职务。...
- 在PropertyGrid中使用密码显示
- mysql主库从库在同一台服务器_通过两种方式增加从库——不停止mysql服务
- Bailian3860 Bailian3724 unix纪元【日期时间】
- wsl使用可视化界面_WSL 科学计算〇 | 适合计算化学的环境配置
- 锂电池荷电状态预测方法
- 金万维异速联远程接入解决方案
- cd 命令行进入目标文件夹
- 基于Java的NetCDF文件解析
- NR 5G 系统信息
- linux桌面怎么解压tar文件,Linux中tar解压缩命令详解-tar文件怎么打开
- wps 2019个人版 创建布尔运算
- MindMapper中怎样插入关联性
- 青少年学习机器人教育的收获
- vue扫码下载APP安装包