密码学基础知识(2)密码*
密码*五元组:(M,C,K,E,D),分别是明文,密文,密钥,加密,解密。
咱们基本目的就是,有明文m,经过加密密钥k加密就能得到密文c。但是有密文c却没有解密密钥就不能得到明文m。
大家看见了解密密钥和加密密钥,想这是怎么回事呢。
原来,密码*有两大正派,
一是对称密码*,就是单钥密码*,加密和解密密钥一样,或者其中一个容易推出另一个,也就是祖传功法就一部,分了上下两册,这个门派可是源远流长根基深厚的大门派。
二是非对称密码*,就是双钥密码*,就是祖传功法两部,这两部还是一个外门功法一部内门功法,互不想干。这个是后来的门派,不过这个门派根据自己的一个特点起了个文艺的名字:公钥密码*。这是咋回事呢,难不成是怕了对称密码了嘛。原来是由于非对称密码*中,由加密密钥推出解密密钥是极其困难的,于是他们就把自己的外门功法-加密密钥公布,吸引香客,入了门派后再将内家功法-解密密钥传授。为了评选红旗门派,他们还因人授课,传授不同的解密密钥。
有正派就得有反派啊,反派的招数有:
穷举攻击:我虽然不知道内容,但是我把所有的功法-密钥,都试一试,总有克你的。
统计分析攻击:我研究你这 招数的样子-明文 相对应 经脉图-密文 的规律。
解密变换攻击:要求有良好的数学内力,见招拆招,用强大的实力直接打倒你。
侧信道攻击:暂不提她。
那正反门派准备了这么久蓄势待发,什么时候才能打起来呢?神器?
唯密文:知道一些密文
已知明文:知道一些明文和对应的密文
选择明文:有间谍,能够选择一些明文得到其密文
选择密文:有内奸,能够选择一些密文得到其明文
那这杖什么时候不能打起来呢?
无条件安全:怎么攻击我都不怕,都不怕,你怕不怕。就是一次一密密码*。
计算上不可破译:你攻击我付出的代价还不如不攻击呢。常见就是破译了,有效期却过了。或者破译出的价值还不如吃的盒饭贵呢。
那咱们怎么玩转啊?
密码*的安全性在于密钥,门派的根基在于功法嘛。我们总要假定敌人知道我们的加密算法,虽然我们知道算法不公开才更安全。商业密码的算法就得公开。
这一说,关键还是密钥啊。shannon建议,扩散,混淆,乘积迭代的方式设计密码。扩散:将明文和密钥对密文的影响尽可能扩大;混淆:密文和密钥的关系复杂化。乘积迭代:将容易设计的简单密码迭代来达成扩散和混淆的效果。事实证明是,正确的。大神还说了,密码的本质就在于寻找一个难解问题。狭义看就是计算复杂性。
公钥密码*与对称密码*相比,有哪些优点和不足?
优点:I.密钥的分发相对容易;
II.密钥管理简单;
III.可以有效地实现数字签名。
缺点:I.与对称密码*相比,非对称密码*加解密速度较慢;
II.同等安全强度下,非对称密码*要求的密钥位数要多一些;
III.密文长度往往大于明文长度。