文章目录
- 传统密码和现代密码的区别
- 古典密码
- 近代密码
- 现代密码
- 定义
- 模型
- 证明
- 现代密码学
- Cryptography
- Cryptanalysis
- Cryptosystem
- Scheme
- 如何定义算法
- 步骤
- 第一步,搞清楚安全服务目标
- 第二步,计算过程中需要几方的参与
- 需要几个算法描述它
- 算法命名
- 谁来运行哪一个算法
- 每一个算法的输入和输出的对象是谁
- 正确性
- 举例
- 如何定于安全模型
- 怎么定义
- 游戏的形式
- 实验的形式
- 具体定义方法
- 什么时间定义
- 举例
- 安全模型定义的注意点
传统密码和现代密码的区别
古典密码
一般是指的罗马时期
近代密码
二战期间
现代密码
1960或者70年代之后了
是一门学科,有严格的定义,模型和证明
定义
定义包括算法定义,困难问题的定义和概念的定义
模型
模型主要有两大类,一类是计算模型,一类是安全模型
证明
证明方法有很多,比如安全规约的 game-hopping,不同的密码体制有不同的主流证明方法
三者区别主要是手算,机器算和用数字电路去计算
安全规约并不适合所有的密码学的证明,所以要先确定好要学习
现代密码学
Cryptography
是一种提出来的方法,比如说公钥加密,私钥加密,椭圆曲线等
Cryptanalysis
主要是一种分析,如对对称密码的复杂
性分析,公钥密码方案的安全性分析
Cryptosystem
提出了一种具体的算法,来达到安全服务的目的,比如数据的保密性和完整性
Scheme
一种具体的构造,对上一个的实现,可能一个Cryptosystem有很多个Scheme,Scheme的算法可以由一方独立进行残生结果的
如何定义算法
当我们每次提出一个Cryptosystem的时候,我们的第一步就是对它通过算法进行描述。
Cryptosystem就是为了达到某种security service,通过若干算法的组成来达到目的,当自己的研究领域有Cryptosystem的时候,可以采用前人的,但是如果说研究领域拓宽,没有算法可用,这时候就可以尝试自己去定义一个算法。
步骤
第一步,搞清楚安全服务目标
第二步,计算过程中需要几方的参与
比如,需不需要一个可信第三方,签名者,加密者,解密者等
需要几个算法描述它
可以理解为越少越好一般至少要有两个,能签名,也能认证
算法命名
谁来运行哪一个算法
现在密码研究分为理论方向和应用密码学方向,理论比较喜欢发表会议,应用密码喜欢发表期刊,其中靠近云计算的,刻画一个系统的时候喜欢使用Cryptosystem来刻画,去解决system的问题,这时候要强调是谁来运行的,要不然不搞密码学的不太懂
每一个算法的输入和输出的对象是谁
正确性
举例
这里是两个参与者,签名者和验证者,正式里面都用这种比如,比如可信第三方,签名者等,需要几个算法可以通过需要几个计算来看,这里是,产生,签名,验证 一共三个主要部分,但是在密钥生成的时候还有参数,这也需要一个算法,所以一共是四个。也可以不考虑参数生成,写成三个算法,这都一样。
取名字的时候,一定要看起来美观,尽量和现有的算法名字相同,通过这个名字的简写缩写,能够让阅读人很快的定义到这个算法是干什么用的
建议是标上谁运行这个代码
注意是箭头不是等号,这有区别
尽量不要一整句话都用别人的
满足正确性使得生成的东西,生成一次就可以直接用,而不用生成很多次
如何定于安全模型
可以去参考一下卧村密码学报里面的安全模型入门
在这里对安全模型进行一些解释
- 首先,我们在设计一套密码方案的时候,我们不会去针对一系列攻击来专门设计,我们会在某个安全模型下说某个方案是安全的,从侧面来说,倒也是抵御了一系列攻击,只要这个攻击是符合这个安全模型的就可以
- 这个攻击更注重敌手从中学到了什么信息,而不是敌手怎么学到了信息
- 这个安全模型是为了一个cryptosystem定义的,而不是某个具体方案
怎么定义
两种形式
游戏的形式
一定是adversary和challenger两者之间的描述,图片中最后一个词应该是cryptosystem
实验的形式
可以当作是一个伪代码的形式,比较简洁,但是新手不好理解
具体定义方法
什么时间定义
我们在定义安全模型的时候和算法一样,只考虑输入和输出,因为这个算法要适合所有的方案
这里的trival attack就可以理解为不合理的问题,他这里把攻击抽象成了询问,比如已知密文攻击,问密文就给密文,但是它如果是要密钥就过分了,这时候就是trival attack
现实生活中不管攻击者为什么要这个密文,我们只负责在模型允许的情况下,他要什么给什么
确定优势是可忽略的
举例
目标:The adversary cannot forge signature of a new message.敌人不能伪造新信息的签名。
优势:The probability of successful forgery.成功伪造的可能性。
这个就是算法,可以借鉴别人的写法,但是不能copy
安全模型定义的注意点
- 一个安全模型对应一个安全服务,但是有些时候,一个安全模型可以对应好几个安全服务
- 一个安全服务的安全模型的定义可能不同,当功能和安全目的不一样的时候
standard security model是一种安全模型standard model是一种计算模型
标准的安全模型并不一定是最强的安全模型,强安全模型能够抵御的攻击多
得知的签名消息是不是由challenger决定的是非常重要的,所以这里是由强弱之分,强安全模型就是敌手强
并不是一个方案在更安全的模型下提出就是更好的,这取决于应用,详见29期
弱安全模型并非没有存在的意义,如果在这个模型下,我们以后构建出了效率好的方案,这样的应用就是有意义的,或者是在强安全模型的情况下,有一个问题一直没能解决,这个时候就可以使用弱安全模型,先向前走半步
之所以要有把破解安全模型等同于破解计算难题,是为了以后的规约,所谓的安全规约,就是借鉴的计算复杂性中规约这个概念