密码学原理 01 introduction

Outline

  1. 密码学与现代密码学
  2. 私钥加密的设置
  3. 历史密码及其密码分析
  4. 现代密码学的基本原理

 

内容

  • 密码学与现代密码学

 

什么是密码学?

  • 密码学:从希腊克利普特,“隐藏,秘密”;和格拉芬,“写作”
  • 密码学:书写或解决代码的艺术。(简明牛津词典2006)
  • 代码:一种预先安排好的信号系统,特别是用来确保传送信息的保密性。(密码学中的码字)
  • 20世纪80年代:从古典到现代,从军事到现代
  • 现代密码学:保护数字信息、系统和分布式计算免受敌对攻击的数学技术科学研究

 

内容

  • 私钥加密的设置

 

私钥加密

  • 目的:构建用于在共享私钥(对称密钥)的两方之间提供秘密通信的密码(加密方案)
  • 隐含的假设:有一些方式以秘密的方式共享密钥
  • 磁盘加密:同一用户在不同时间点

 

  • 密钥 k ∈ K,明文(或消息)m ∈ M,密文c ∈ C
  • 密钥生成算法K<- Gen

  • 加密算法C :=  Enck (m)

  • 解密算法M:= Deck (c)

  • 加密方案: ∏ =(Gen,Enc,Dec)

 

确保密钥与模糊算法

  • 容易维护短密钥的保密性
  • 如果钥匙暴露了,诚实的当事人更容易改变钥匙。
  • 在多对人的情况下,更容易使用相同的算法,而是不同的密钥。

Kerckhos原理

加密方法不能被要求是秘密的,它必须能够落入敌人的手中而不会带来不便。

 

为什么“开放密码设计”

  • 发布的设计要经过公众审查才能更强
  • 最好让“道德黑客”揭露安全漏洞
  • 代码反向工程(或工业间谍泄露)对安全构成严重威胁
  • 能够建立标准

攻击场景

  • 只有密文:对手只是观察密文
  • 已知明文:对手在同一密钥下学习成对的明文/密文
  • 选择明文:对手有能力获得其选择的明文加密
  • 被动攻击:COA KPA,因为不是所有密文都是保密的
  • 主动攻击:CPA CCA什么时候加密 / 解密对手想要什么?

内容

  • 历史密码及其密码分析

凯撒密码

如果他有什么机密的话要说,他就用密码写,也就是说,通过改变字母表中的字母顺序,一个字也看不出来。如果有人想破译这些字母,并理解它们的意思,他必须把字母表中的第四个字母D替换为A,以此类推。 - 苏埃托尼乌斯,《凯撒大帝的一生》

  • Enc(m) = m + 3   mod  26

  • 弱点:密钥是什么?    

移位密码

  • Enck(m)= m + k    mod  26 
  • Deck(c) = c - k   mod  26
  • 弱点:在蛮力攻击下脆弱(详尽搜索)

有先见之明的关键空间原则
任何安全加密方案都必须有一个密钥空间,不容易进行彻底搜索

 

重合指数(IC)法(求k)

重合指数(IC):两个随机选择的字母(pick-then-return)相同的概率。表示英文文本中第i个字母的概率。

例:‘apple’ 的重合指数是多少?

很长一段英语文本的IC ≈ 0.065,j = 0,1,…,25, qj 是密文中第 j 个字母的概率

 

单一字母密码

  • 思想:以任意的方式将每个字符映射到一个不同的字符
  • 强度:密钥空间 ≈ 2 ^ 88,问:如何计数?
  • 缺点:每个字母的映射是固定的

统计模式攻击

  1. 把密文中字母的频率制成表格
  2. 把它和英文文本中的比较一下
  3. 猜测最频繁的字母对应于e,等等
  4. 选择 “有意义” 的纯文本(不是琐碎的)

                                                                                 表:英文文本的平均字母频率

 

频率分析示例(分析)

计数和猜测,尝试和错误。

                                                                                                    表:分析步骤

 

多字母移位密码

  • 思想:通过将明文中相同字母的不同实例映射到密文中的不同实例,“平滑” 密文中的分布
  • 加密:ci = mi +k [ i mod t ], t为k的长度(周期)
  • 密码分析:需要查找 t ; 如果已知 t ,则需要知道解密是否 “有意义” ,但是对于t  > 15,暴力破解(26 ^ t)是不可行的

Kasiski理论

  • 识别长度为2或3的重复模式
  • 这种现象之间的距离是 t 的倍数
  • t 是所有距离中最大的公约数

重合指数(IC)法(寻找 t )

对于 r = 1,2,… , qi 是第 i 个字母在c1,c1+r,c1+2r,…,IC是

如果 r = t ,那 Ir ≈ ?否则 qi ≈ 1/26 且

然后重用IC方法查找 ki

任意对手原则

必须保证拥有指定权力的对手阶级内的任何对手的安全

 

密码分析攻击(家庭作业)

  • 在COA下,对密文的要求与密钥空间的大小有关。多字母移位 > 单字母下标 > 移位
  • 在KPA下,微不足道的破碎。

经验教训

  • 有先见之明的关键空间原则
  • 设计安全密码是一项艰巨的任务
  • 复杂性并不意味着安全(那么什么意味着安全呢?)
  • 任意对手原则

 

内容

现代密码学的基本原理

 

现代密码学的三大原理

  1. 安全/威胁模型的严格定义
  2. 当一个密码的安全性依赖于一个未经证实的假设时,这个假设必须精确地表述,并且尽可能地最小化
  3. 密码应附有上述定义和上述假设的严格安全性证明

Principle 1 – 精确定义的提法

Q:如何将私钥加密的安全性形式化?

  1. 如果给了密文,任何对手都找不到秘钥。Enck(m) = m 
  2. 没有对手能找到与密文相对应的明文。Enck(m)= m0 || AESk(m)
  3. 任何对手都不能确定与密文相对应的明文的任何字符。m = 1000,有人可以知道800 < m < 1200
  4. 没有对手可以从密文中获得关于明文的任何有意义的信息。

你能定义所谓的 “有意义” 吗?

安全的定义应该适用于所有潜在的应用程序。

 

 Principle 1 – 如何定义

如何定义安全 - 艾伦图灵的教训

  • 什么是计算
  1. 直接诉诸直觉
  2. 证明两个定义的等价性(新定义具有更大的直观吸引力)
  3. 给出用定义解决的例子
  • 安全的附加方法:时间测试

 

Principle 2 - 依赖于精确的假设

大多数密码结构不能无条件地被证明是安全的

为什么?

  1. 假设的验证
  2. 方案的比较
  3. 促进安全证明

如果假设是正确的,构造是安全的。

怎么做?

  1. 老,所以测试
  2. 简单、低级,易于学习、批驳、正确

 

Principle 3 – 安全的严格证明

  • 为什么?

证明在计算机安全领域比在其他领域更受欢迎。

  • 简化的方法:

定理1

假设X为真,根据给定的定义,构造Y是安全的。

证明

把X给出的问题归结为Y的断裂问题。

  • 特别的方法:对于那些需要 “快速和肮脏” 的解决方案的人,或者仅仅是没有意识到的人。

 

总结

  • 密码学保护信息、事务和计算
  • Kerckhos原理&开放密码设计
  • 凯撒密码、移位密码、单一字母密码、多字母移位密码
  • 暴力,字母频率, Kasiski’s,IC
  • 有先见之明的关键空间原则
  • 任意对手原则
  • 严格证明安全
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值