密码技术简介
2019-04-26 本文已影响0人
entro
密码技术
[TOC]
常用术语
- 明文 pain text
- 密文 cipher text
- 加密 encrypt
- 密钥 key
- 公钥 public key 公钥加密
- 私钥 private key 私钥解密
- 算法 algorithm 用于解决复杂为题的步骤。
几种常用的重要密码技术
信息安全四个特性:机密性
、完整性integrity
、认证 authentication
、不可否认性
。
-
机密性
是指防止秘密泄露。 -
完整性
是指防止信息被篡改。 -
认证
是指防止他人伪装。 -
不可以否认性
是指防止事后否认。
为了保证这四个特性,下面分别讲解与之对应的几种密码技术。
常用的几种重要的密码技术
1.加密技术 对称密码与公钥密码
根据密钥的使用方法,可以将密码分为对称密码 symmetric cryptography
和 公钥密码 public-key cryptography
又称非对称密码。
公钥加密的性能只有对称加密的几百分之一。因此常将两种技术混合使用,称之为:混合密码系统 hybrid crypto system
。
加密技术可以保证信息的机密性
。
2. 哈希 hash 常见的几种成熟算法:MD5、SHA-1、SHA-2
又称向散列函数、指纹、消息摘要。是用单向散列函数计算出的数值。
hash可以保证信息的完整性
。
Hash算法的破解,说的是Hash算法的强抗碰撞性
。
2.1 MD5
Message-Digest Algorithm 信息摘要算法
- MD4,90年麻省理工学院教授Ronald Rivest设计的信息摘要算法,摘要长度128位。
- MD5,91年由Ronald Rivest设计的,用以取代MD4。09年中科院的谢涛和冯登国仅用了2^20.96的碰撞算法复杂度,破解了MD5的
碰撞抵抗
,即普通计算机几秒的时间。 王小云亦在破解md5的过程中提供过一些有效的算法。
2.2 安全哈希算法 SHA 家族算法:Secure Hash Algorithm
Secure Hash Algorithm 安全哈希算法
是一个由NSA(美国国家安全局)设计的密码散列函数家族。
- SHA-0,1993年发布很快被撤回,是SHA-1的前身。
- SHA-1,1995年发布,曾被视为MD5的继任,2017年荷兰密码学研究小组CWI和Google正式宣布攻破了SHA-1。
- SHA-2,第二代安全算列算法,2001年发布包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256,虽然暂未出现有效攻击,但是算法类似于SHA-1。
- SHA-3,2015年正式发布,诣在提供一个与之前算法不同的可替换的加密散列算法。
例如下载软件时,软件发布方会下载软件的哈希值(hash)就是这个目的。
3. 消息认证码 MAC:message authentication code
保证完整性
、提供认证
。
输入包含1.消息 2.共享密钥,输出固定长度的MAC值。
与Hash的区别是:增加了对称密钥。
4. 数字签名 digital signature
保证完整性
、提供认证
并防止否认
的密码技术。
与Hash的区别是:增加了反着用的公钥和私钥对。
常用数字签名算法:RSA、ElGamal、DSA、Rabin
5. 伪随机数生成器 Pseudo Random Number Generator PRNG
能够模拟产生随机数的算法。承担生成密钥的角色。SSL/TLS通信时会生成一个仅用于当前通信的临时密钥(会话密码)就是基于伪随机数生成器生成的。
其他密码技术:隐写术
隐写术隐藏的是消息本身,不能替代密码,密码隐藏的是内容,两者结合可同时产生两者所具备的效果。
- 藏头诗就是一种隐写术。
- 数字水印技术是一种将著作权拥有者及购买者信息信息嵌入文件中的技术。其中就用到了隐写术。
密码学安全常识
- 不要使用保密的密码算法
主要因为:- 密码算法早晚会公开。
- 开发高强度密码算法非常困难
- 使用低强度密码算法比不加密更危险
主要因为:- 错误的安全感,令用户处理机密信息时候麻痹大意。
- 任何密码早晚会被破解
主要因为:- 除了
一次性密码本
这种非现实可用的算法外,任何密码算法生成的密文只要将所有可能的密钥全部尝试一遍,总会被破解,强度更高加密算法只是延长了破解的时间。 - 量子密码被认为可能造就完美的密码技术。目前只是一种设想。
- 除了
- 密码只是信息安全的一部分。通过社会工程学等手段直接获取可能的密码可以绕过高强度的密码算法。