17 - 02 - 14 计算机网络(35)(密码学概述)

计算机密码学

基本原则:密码的安全性基于密钥的保密性,而不基于算法的保密性。

口令(password)需要有一定的规律性,否则无法记忆,而密钥(密码)是完全随机生成的,没有任何规律可言,

常人无法猜到,难以记忆。


对称密钥密码

加密密钥与解密密钥是相同的。对称密钥又分为

分组密码(block cipher)和序列密码(stream cipher)

分组密钥是将明文划分成固定长度的分组,各分组分别在密钥的控制下变成等长的密文

解密时,各分组分别在密钥的控制下再转换为等长的明文。数据分组的长度是64位,128位。

当明文的零头不足这个个数的时候,填充冗余数据,解密后再去掉。常见的分组密码算法有:

DES(Data Encryption Standard)

AES(Advanced Encryption Standard)

IDEA(International Data Encryption Algorithm ).


DES:过时。

AES:高级加密标准。AES的密钥长度有128、192、256位三种,一般128位就足够安全了。

国际数据加密算法(IDEA)是另一个广泛使用的加密算法。


序列密码: 

组密码一次加密一个数据块,序列密码将明文划分成字节/单个的二进制位,

密钥送入 密钥流生成器,生成等长的密钥流。然后明文与密钥流作用(一般是异或)以加密,

解密时,再用同样的密钥流与密文异或,就能得到明文。关键在于密钥流生成器的生成的密钥应该是严格随机的。


一种理论上不可攻破的加密方案:一次一密乱码本。

基本思想是密钥长度不是128位,也不是256位,而是与明文一样长,用过一次便永不再用。

若明文长度100000,那么要是想暴力破解需要尝试2^100000,在现在的技术下是不可能的。

不过也仅限于现在。Who knows the future?


公开密钥密码:

公钥密码是这样设计的:加密密钥不同于解密密钥,加密密钥能够公开,而解密密钥则严格保密,

这样任何人都能用加密密钥加密数据,但只有用相应的解密密钥才能解密数据,

加密密钥叫做公开密钥(公钥),解密密钥叫做私人密钥(私钥)。公钥与私钥统称为密钥对。

与对称密钥密码不同,不是任意一串二进制位就能作为公钥密码的密钥对,

密钥对必须使用特定的方法计算生成(有函数关系)。要求在宇宙存在的这一小段时间内(?),无法从公钥推导出私钥。

公钥算法举例:RSA算法 ..RSA的加密解密是指数级别的运算。


密钥分配:

公钥密码解决了密钥分配的难题,公钥可以通过网络随意分发,任何人都可以用公钥密码加密数据,

但是只有拥有私钥(密钥对)的人才能解密数据。  但是公钥密码加密解密的时间太慢,

所以,公钥密码通常与 对称密码 结合使用。

例如AB通信,A选择一个对称密钥K,使用B的公钥加密后,发送给B,

B用自己才有的私钥解密就得到了就得到了K。K使用完一次就丢弃,下次通信时就使用一个新的K,所以此时K叫做会话密钥。

 

有一类特殊的公钥密码算法,叫做密钥交换算法,利用密钥交换算法,通信双方不需要公钥与私钥,

实现也不需要共享任何秘密信息。就可以安全的生成一个会话密钥,它的安全性是基于有限域上计算离散对象的困难性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值