网络安全原理–密码学
信息安全概述
-
信息是当今社会的一种重要资源(数据和信息的对比,信息应用的例子) -
信息安全的目标:保密性,完整性和不可否认性 -
现代信息系统必须具备有信息安全技术措施 -
信息加密是信息安全的措施之一 -
加密相关术语: 明文 也叫明码(plaintext)
密文(ciphertext)
算法(algorithm)
密钥(key)
加密(encryption)
解密(decryption)
公钥(public key)
私钥(private key)
数字签名(digital signature)
证书(digitial signature)
PKI(Public Key Infrastructure)
HASH HMAC
密码学发展
-
密码学发展阶段:
- 1949年之前:密码学是一门艺术
- 1949~1975年:密码学成为科学
- 1976年以后:密码学的新方向——公钥密码学
-
第一阶段:古典密码学
- 密码学还不是科学,而是艺术
- 出现一些密码算法和加密设备
- 密码算法的基本手段出现,针对的是字符
- 简单的密码分析手段出现
- 主要特点:数据的安全基于算法的保密
- 1883年Kerchoffs第一次明确提出了编码的原则:加密算法应该建立在算法的公开不影响明文和密钥的安全。这一原则已得到普遍承认,成为判定密码强度的衡量标准,实际上也成为传统密码和现代密码的分界线。
-
第二阶段:1945年~1975年
- 计算机使得基于复杂计算的密码成为可能
- 相关技术的发展
- 1949年Shannon(香农)的 “The Communication Theory of Secret Systems”
- 1967年David Kahn的《The Codebreakers》
- 1971~1973年IBM Watson实验室的Horst Feistel等几篇技术报告
- 主要特点:数据的安全基于密钥而不是算法的保密
-
第三阶段:1976年~至今
- 1976年:Diffie&Hellman的”New Directions in Cryptography“提出了不对称密钥算法
- 1977年Rivest,Shamir&Adleman提出了RSA公钥算法
- 90年代逐步出现椭圆曲线等其他公钥算法
- 主要特点:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能
- 1977年DES正式成为标准
- 80年代出现”过渡性“的”Post DES“算法,如IDEA,RCx,CAST等
- 90年代对称密钥密码进一步成熟。Rijndael,RC6,MARS,Twofish,Serpent等出现
- 2001年Rijndael成为DES的替代者
历史上那些经典的密码
密码基础:进制与计量
- 进制 一种计数方法
- 用有限的数字符号来表示无限的数值,例如阿拉伯数字10进制(0-9)
- 可使用的技术符号数目决定了进位制,简称进制
- 2进制(0,1)计算机机器语言唯一能明白的
- 10进制(0-9)普通人计算常用的
- 16进制(0-9,ABCDEF)每一个16进制的字符代表4个二进制组合数字
- 计算机为什么不用十进制而用二进制?
- 计量术语
- 位(bit)最小的数据单位
- 字节(Byte)8个bit组成,存储空间的最小单位
- K-Klilo,网络/计算里面 表示千 1024(2^10次方) 存储里面表示1000
- M-Million,表示百万(2^20次方)
- G-Giga,表示10亿(2^30次方)
- T-Tera,表示10 000亿(2^40次方)
- P-Peta 表示10 000 000亿(2^50次方) 比特币挖矿算力8359 PH/s
- 你要大概知道当今计算机的能力上限。也就是说哪些是可以很快算出来的,哪些是不现实的。拿分解质因数来说。你要知道什么样的数是当今计算机分解不了的。个人认为就今天的计算机来说(2015.10.31):
- 2的40次方次运算是容易。
- 2的56次方次元算是可做。2100万比特币=2^53
- 2的64次方此运算是勉强能做
- 2的80次方次运算是不能做
- 2的128次方次运算是绝壁不能做
加解密基础操作:移位 置换 编码
加解密基本操作
- 置换:按照规则替换明文信息
- 移位:打乱字母的排列顺序
- 移位和置换都是可逆的操作,容易恢复信息
- 移位,置换应用于现代密码算法中
- 加密的实现,不只是依赖以上这些基本的思想,同时也依赖于很多巧妙的设计
- 如军事应用中的加密电报,除了安全性很高的编码规则以外,解密还涉及到收发报文双方的约定
- 常见的编码规则:ASCII码表,BASE64编码表,BASE58编码
置换
- 置换是一个特定的值替换另一个特定值的过程
- 置换需要通信双方事先通知置换的方法
- 置换比较简单,频繁使用会找到规律
-
- 上例中置换基本原则为:奇数位ASCII码值加1,偶数位ASCII码值加2
移位
-
移位:把某个字母以其前或其后几位的某个特定的字母替代 -
移位具有规律,容易被攻破 -
你能分析出以上例子中移位的规律吗?首尾颠倒 -
在计算机中,怎样才能自动实现大量复杂数据的加密和解密? -
这依赖于好的,可被计算机识别的,被验证为有效的加密算法。
加密算法分类
- 密码设计的基本公理和前提是算法公开
- 系统的安全性仅依赖于密钥的保密性
- 加密算法分类
- 对称密钥密码算法(又称私有密钥算法)
- 非对称密钥密码算法(又称公钥密码算法)
加密强度对比
对称加密算法
对称加密算法原理
-
对称加密:使用同一密钥进行加密和解密
-
优势:加解密速度快,密文是紧凑的,安全
对称加密算法 加解密过程
-
-
- 对称加密算法缺点:密钥分发,密钥存储和管理。缺乏对数字签名/不可否认的支持。
- 著名对称加密算法:
- 对称加密的密钥长度从40bits到168bits
- 著名加密算法
- DES 3DES
- AES
- RC系列(RC2,RC4,RC5)
- IDEA
- CAST
- Blowfish
DES
3DES
-
3DES安全,但会增加延时,语音视频不适用
- 3DES(Triple DES)密钥长度放大三倍,168位
- 暴力破解几乎不能实现
- 底层基于一个很好的算法
- 安全,但会增加延时,语音视频不适用
AES(Advanced Encryption Standard)
- 1997年被颁布,取代DES的加密算法
- 比利时的Joan Daemen和Vincent Rijmen发明,“Rain Doll”
- 适合于高速网络,适合在硬件上实现
- 使用128位,192位或256位的密钥块(还能以32bit扩展)
- 3DES的替代加密技术,软硬件运行效率高,可用于无线/语音视频加密
RC系列加密算法
- RC2
- Ronald Rivest设计
- 密钥长度可变
- RC2的运算速度比DES快
- 软件实现的RC2比DES快三倍
- RC2是否比DES安全取决于其所使用的密钥长度
- RC4
- Rivest设计
- 密钥长度可变
- 流模式加密算法,面向bit操作
- 算法基于随机置换
- RC4应用范围广(https/WEP/WPA)WPA2-AES
- RC5
- Rivest设计
- 分组长,密钥长和迭代轮数都可变
- 面向字结构,便于软件和硬件快速实现
- 数据相倚旋转技术
IDEA
- IDEA,国际数据加密算法
- 分组长度为64位,密钥长度为128位
- 设计原则:来自不同代数群的混合运算
- 64位数据首先分成4个16位子分组作为第一轮的输入
- 总共8轮计算
- 每轮中,4个子分组相互之间相异或,相加,相乘,且与6个16位子密钥相异或,相加,相乘
- 轮与轮之间,第二个和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
- IDEA共使用52个子密钥
- 软件实现的IDEA比DES快两倍
Blowfish
- Bruce Schneier设计
- 密钥长度可变
- 易于软件快速实现,所需存储空间不到5kb
- 安全性可以通过改变密钥长度进行调整
- 适用于密钥不经常改变的加密
- 不适用于需要经常变换密钥的情况
国密算法
电子政务里面SM1,SM2不能出口
非对称/公钥加密算法
-
公钥加密技术(非对称加密技术)
-
经典非对称加密算法
- RSA
- DH(Diffie-Hellman)
- DSA
- ECC
-
公钥密码系统的应用
-
三种用途:
- 加密/解密
- 数字签名:发送方用自己的私钥签署报文,接收方用对方的公钥验证对方的签名
- 密钥交换:双方协商会话密钥
Diffie-Hellman密钥交换
-
1976年,Whitfield Diffie 和Martin Hellman发明 -
解决对称加密系统中密钥的发布问题 -
无需使用代价高昂即可对私钥达成共识 -
安全性来源于很难计算出很大的离散对数 -
在现代密钥管理中提供其他算法的密钥管理 -
密钥生成算法AGen输出一个公钥和私钥对(apk,ask),ask需要秘密地保存,apk可以公开发送给对方。 -
密钥协商算法Agree以一方的公钥apk和自己的私钥ask作为输入,计算出一个密钥K -
-
Diffie-Hellman可行之处:
- 产生共享密钥需要一个保密值,外人无法得到
- 计算大数的离散对数很难
RSA
其他公钥算法
- Elgamal
- Taher Elgamal开发
- Diffie-Hellman的一种变形
- 可以加密和提供认证
- 安全性取决于计算离散对数的难度
- 数字签名算法
- 由美国政府开发
- 数字签名的标准算法
- 算法基于Elgamal
- 只允许认证,不提供保密性
- 椭圆曲线加密
- 1985年提出
- 原理:给定椭圆曲线上的两点A和B,如A=kb,要找到证书k非常困难
- 密钥更小:与1024位RSA密钥具有同样安全性的ECC密钥只有160位
数字签名
-
RSA提供认证和抗抵赖(私钥签名)
数字签名(Digital Signature)
数字证书与CA
-
-
- 数字证书(Digital Certificate,类似身份证的作用)
- CA(Certificate Authority,电子商务认证授权机构)
-
- 公钥证书的种类与用途
- CA
- Personal
- Code Signing
- Server
- 证书回收列表(CRL)
哈希与HMAC
-
哈希(Hash),也叫散列函数。MD5 SHA
-
将一段数据(任意长度)经过一道计算,转换为一段定长的数据
- http://www.fileformat.info/tool/hash.htm
-
不可逆性 几乎无法通过Hash结果推导出原文,即无法通过x的Hash值推导出x -
无碰撞性 几乎没有可能找到一个y,使得y的Hash值等于x的Hash值 -
雪崩效应 输入轻微变化,Hash输出值产生巨大变化 -
单向 不可能从散列值推出原始数据 -
使用场景:
-
哈希用例 用户密码的存储 -
-
HMAC
- 增加一个key做哈希。HMAC=Hash(文件+key)
- 需要双方预先知道这个key
- HMAC:消除中间人攻击,源认证+完整性校验(数字签名也能实现)
-
对称加密与非对称加密完美融合
密码学原理总结
- 对称加密:
- 用相同的密钥对原文进行加密和解密
- 加密过程:密钥+原文——>密文
- 解密过程:密文-密钥——>原文
- 缺点:无法确保密钥倍安全传递
- 非对称加密:
- 公钥用于加密,私钥用于解密
- 公钥由私钥生成,私钥可以推到出公钥
- 从公钥无法推导出私钥
- 优点:解决了密钥传输中的安全性问题
- 解决了信息传送的问题,如何验证是“确定是发送方发送的,信件没有被篡改?”
|