密码学基础知识(2)密码*

密码学基础知识(二)密码*

密码*五元组:(M,C,K,E,D),分别是明文,密文,密钥,加密,解密。

咱们基本目的就是,有明文m,经过加密密钥k加密就能得到密文c。但是有密文c却没有解密密钥就不能得到明文m。

大家看见了解密密钥和加密密钥,想这是怎么回事呢。

原来,密码*有两大正派,

一是对称密码*,就是单钥密码*,加密和解密密钥一样,或者其中一个容易推出另一个,也就是祖传功法就一部,分了上下两册,这个门派可是源远流长根基深厚的大门派。

二是非对称密码*,就是双钥密码*,就是祖传功法两部,这两部还是一个外门功法一部内门功法,互不想干。这个是后来的门派,不过这个门派根据自己的一个特点起了个文艺的名字:公钥密码*。这是咋回事呢,难不成是怕了对称密码了嘛。原来是由于非对称密码*中,由加密密钥推出解密密钥是极其困难的,于是他们就把自己的外门功法-加密密钥公布,吸引香客,入了门派后再将内家功法-解密密钥传授。为了评选红旗门派,他们还因人授课,传授不同的解密密钥。

有正派就得有反派啊,反派的招数有:

穷举攻击:我虽然不知道内容,但是我把所有的功法-密钥,都试一试,总有克你的。

统计分析攻击:我研究你这 招数的样子-明文 相对应 经脉图-密文 的规律。

解密变换攻击:要求有良好的数学内力,见招拆招,用强大的实力直接打倒你。

侧信道攻击:暂不提她。

那正反门派准备了这么久蓄势待发,什么时候才能打起来呢?神器?

唯密文:知道一些密文

已知明文:知道一些明文和对应的密文

选择明文:有间谍,能够选择一些明文得到其密文

选择密文:有内奸,能够选择一些密文得到其明文

那这杖什么时候不能打起来呢?

无条件安全:怎么攻击我都不怕,都不怕,你怕不怕。就是一次一密密码*。

计算上不可破译:你攻击我付出的代价还不如不攻击呢。常见就是破译了,有效期却过了。或者破译出的价值还不如吃的盒饭贵呢。

那咱们怎么玩转啊?

密码*的安全性在于密钥,门派的根基在于功法嘛。我们总要假定敌人知道我们的加密算法,虽然我们知道算法不公开才更安全。商业密码的算法就得公开。

这一说,关键还是密钥啊。shannon建议,扩散,混淆,乘积迭代的方式设计密码。扩散:将明文和密钥对密文的影响尽可能扩大;混淆:密文和密钥的关系复杂化。乘积迭代:将容易设计的简单密码迭代来达成扩散和混淆的效果。事实证明是,正确的。大神还说了,密码的本质就在于寻找一个难解问题。狭义看就是计算复杂性。

公钥密码*与对称密码*相比,有哪些优点和不足?

 

优点:I.密钥的分发相对容易;

           II.密钥管理简单;

           III.可以有效地实现数字签名。

缺点:I.与对称密码*相比,非对称密码*加解密速度较慢;

           II.同等安全强度下,非对称密码*要求的密钥位数要多一些;

           III.密文长度往往大于明文长度。