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原则相关推荐

  1. 【Joy of Cryptography 读书笔记】Chapter 2 可证明安全(Provable Security)基础

    Chapter 2 可证明安全(Provable Security)基础 要想证明安全性,首先需要对安全进行定义,才能证明某一个方法能够保证什么安全性,或者说明它为什么不安全.毕竟密码学并不能解决所有 ...

  2. 【Joy of Cryptography 读书笔记】Chapter 8 分组密码的工作模式(Modes of Operation)

    Chapter 8 分组密码的工作模式(Modes of Operation) 文章目录 Chapter 8 分组密码的工作模式(Modes of Operation) 一.常见的工作模式 1.EBC ...

  3. 【Joy of Cryptography 读书笔记】Chapter 6 伪随机函数(Pseudorandom Function)分组密码(Block Cipher)

    Chapter 6 伪随机函数(Pseudorandom Function)&分组密码(Block Cipher) 文章目录 Chapter 6 伪随机函数(Pseudorandom Func ...

  4. 【Joy of Cryptography 读书笔记】Chapter 4 基于难解计算(Intractable Computation)的密码学

    Chapter 4 基于难解计算(Intractable Computation)的密码学 John Nash提出一个观点:如果破解一个密码算法的计算耗费时间很长,那么这个密码算法从实用的角度上是安全 ...

  5. 《C++捷径教程》读书笔记--Chapter 16--模板(完结)

    //--<C++捷径教程>读书笔记--Chapter 16--模板(完结) //--Chapter 16--模板 //--04/16/2006 Sun. //--Computer Lab ...

  6. 《C++捷径教程》读书笔记--Chapter 14--继承(完结)

    //--<C++捷径教程>读书笔记--Chapter 14--继承(完结) //--Chapter 14--继承 //--04/14/2006 Friday //--Computer La ...

  7. 《C++捷径教程》读书笔记--Chapter 10--结构与联合

    //--<C++捷径教程>读书笔记--Chapter 10--结构与联合 //--Chapter 10--结构与联合 //--11/24/2005 Thurs. //--Computer ...

  8. [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 3

    <Volatility Trading> by Euan Sinclair Chapter 3 收益率和波动率的典型事实 典型事实列表 波动率并非常数 收益率分布 成交量和波动率 波动率分 ...

  9. [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 4

    <Volatility Trading> by Euan Sinclair Chapter 4 预测波动率 波动率是否可以被预测? 无摩擦交易市场(交易费用为零) 信息有效(完美信息流) ...

最新文章

  1. STL与泛型编程(1)---模板
  2. elasticsearch的增删改查
  3. Linux隐藏文件标识
  4. linux系统ll历史,Linux操作系统原理笔记
  5. JPA字段长度 Mysql数据库
  6. 作者:熊刚,男,博士,现任中国科学院自动化研究所研究员,中国科学院云计算中心自动化所东莞研究院首席科学家等职务。...
  7. 在PropertyGrid中使用密码显示
  8. mysql主库从库在同一台服务器_通过两种方式增加从库——不停止mysql服务
  9. Bailian3860 Bailian3724 unix纪元【日期时间】
  10. wsl使用可视化界面_WSL 科学计算〇 | 适合计算化学的环境配置
  11. 锂电池荷电状态预测方法
  12. 金万维异速联远程接入解决方案
  13. cd 命令行进入目标文件夹
  14. 基于Java的NetCDF文件解析
  15. NR 5G 系统信息
  16. linux桌面怎么解压tar文件,Linux中tar解压缩命令详解-tar文件怎么打开
  17. wps 2019个人版 创建布尔运算
  18. MindMapper中怎样插入关联性
  19. 青少年学习机器人教育的收获
  20. vue扫码下载APP安装包

热门文章

  1. iOS 访问网络权限
  2. 信号完整性基础05:特殊的串扰-差分信号(2)
  3. 讨论:响一声就挂吸费电话频遭投诉 回拨话费被扣数百
  4. eclipse各种常用插件在线安装.txt
  5. 一、CentOS7启动U盘制作
  6. matlab中数组的排序以及转置
  7. 台大机器学习基石学习笔记
  8. ObjectARX开发各版本与VS各版本对照表
  9. 公众号接入 OpenAI 智能机器人
  10. Aliplayer 切换不同格式视频