一、密码学的核心
密码学的核心是安全通信。分为两个部分,分别是:
1、安全的密钥建立
2、共享密钥,安全的通信
二、加密机制提供了机密性(confidentiality)与安全性(integrity)
三、密码学应用
1、Digital signatures 数字签名
需要保证攻击者无法复制签名,新文件的函数值应与旧文件不同。
2、Anonymous Communication 匿名通信
eg. Anonymous digital cash 匿名数字现金
既要保证提供匿名现金,又要保证客户不会复制现金进行重复花费。
处理办法是确保当Alice只花费一次时是匿名的,当她花费多余一次时,将暴露Alice的一切信息。
3、Abstract protocals 抽象协议
eg. Elections 选举,保证得出选票结果但不泄露个人投票信息
Private auctions 私人拍卖
引入Secure muti-party computation 安全多方计算
在进行选举投票时,可以引入一个 trusted authority 可信第三方来进行收集信息并保证信息不被泄露,但当可信方不可信时就会出现问题。因此我们要做到去掉可信任方,取而代之,使用某些协议,保证参与者可以互相通信,计算出结果,但又不会泄露个人选举信息。
4、Privately outsourcing computation
eg. Alice有一个搜索请求,将Alice的请求加密后交给谷歌,谷歌可以对加密后的值进行运算,无需获得原文,并将加密的结果发给Alice,Alice解密后就可以获得搜索结果了。
允许在加密数据上进行计算,尽管不知道加密的内容。
5、Zero knowledge (proof of knowledge)零知识证明
给定两个大数求乘积 N = p*q 是容易的,但是给定一个数的乘积进行分解是非常困难的,用因子分解的困难性来建立公钥密码系统。
eg. Alice知道N,并知道因子分解。Bob只知道N,不知道因子分解。零知识证明的神奇之处在于Alice能向Bob证明她知道N的因子分解,但Bob可以证明,但却不知道因子P和Q。
四、密码学中三步骤
1、Precisely specify threat model
2、Propose a construction
3、Prove that breaking construction under threat mode will solve an underlying hard problem
eg. 拿数字签名举例
1、准确描述威胁模型:攻击者如何攻击数字签名以及伪造签名的目的在于什么?要进行数字签名的防伪;
2、提出构架;
3、证明任何攻击者在此威胁模型下都无法破解这个架构。
五、密码学历史
1、Substitution cipher 替换密码
对于26字母,替换密码的密钥空间为 26!,但是我们可以通过英语字母表中字母出现的频率,字母配对频率来破译替换密码。替换密码对于唯密文攻击是脆弱的。
2、Vigenere cipher 维吉尼亚密码
假设密钥长度为 1,2,3 等,取每个分组中第一个,找出最频繁出现的字母减去E获取对应位数密钥,依次第二位,第三位等。
3、Rotor Machines 转轮密码机
同样可以用唯密文攻击来破译。
4、Data Encryption Standard (DES)
DES的密钥空间为2^56,对于以前这个密钥空间足够大,但是现在可以通过暴力搜索来破译DES,目前DES已经不够安全了。