古典密码
-
凯撒密码
- 将字母往后面移动三位
-
斯巴达人“天书”密码
古典密码分类中的:
- 置换密码:
* ABCD——BCDA - 替换密码:
* ABCD——1234 - 分组密码
- abc def hij ——123 456 789
- 流密码
- 使用图案代替文字内容(e.g.猪圈密码和玛雅密码)
近代密码
- 转轮机
- 对称密码
- 加***和解***相同,或者实质上相同(二者之间可以互相推到得到)
- 科克霍夫提出现代密码的原则,密码分析者知道双方使用的密码系统,包括明文的统计特性,加解密体制等,唯一不知道的是**。所以,现在密码算法的保密核心是密而不是加密算法。
对称密码的优点:
- 效率高,算法简单,系统开销小
- 适合加密大量数据
- 明文长度与密文长度相等
对称密码的缺点:
- 需要以安全方式进行**交换
- **管理复杂
非对称密码
常用的公钥密码算法
- RSA
- 在一个算法中实现签名和加密
- 私钥:签名和解密
- 公钥:签名检验和加密
- ECC
- 基于有限域上椭圆曲线有理点群密码系统
- 更快的具有更小的**长度的公开密码系统
- 功能同RSA:数字签名,**管理,加密
非对称算法的优点:
- 解决**传递的问题
- 大大减少**持有量
- 提供了对称密码技术无法或很难提供的服务(数字签名)
非对称算法的缺点:
- 计算复杂、耗用资源大
- 非对称会导致得到的密文变长
哈希函数
哈希函数是将任意长度的消息映射成一个较短的定长输出报文的函数:
- h = H(M),M是变长的报文,h是定长的散列值
数学性质:对任意给定的x,H(x)易于(软硬件实现)计算,且满足: - 单向性:对任意给定的码h,寻求x是的H(x)=h,再计算机上是不可行的;
- 弱抗碰撞性:任意给定分组x,寻求不等于x的y,使得H(y)=H(x)在计算上不可行
- 强抗碰撞性:寻求任何的(x,y)对,使得H(x)=H(y)在计算上不可行
哈希函数的特点
- H能够应用到任意长度的数据上
- H能够生成大小固定的输出
- 对于任意给定的x,H(x)的计算相对简单
- 对于给定的散列值h,要发现满足H(x)=h,x在计算上是不可行的
- 对于给定的消息x,要发现另一个消息y满足H(y)=H(x)在计算上是不可行的