1. 密码学基本概念
1.1 密码学形成与发展
1.1.1 古典密码学( 1949年之前)
-
主要特点:数据的安全基于算法的保密
- 凯撒密码
- ENIGMA转轮机:是由Arthur Scherbius (亚瑟·谢尔比斯)于1919年发明了密码转轮机,使用机电代替手工。在二次世界大战Enigma曾作为德国陆、海、空三军最高级密码机。
- 凯撒密码
-
安全性在于保持算法本身的保密性
-
不适合大规模生产
-
不适合较大的或者人员变动较大的组织
-
用户无法了解算法的安全性
-
主要分类
-
替代密码
-
置换密码
-
替代密码与置换密码的组合
-
1.1.2 近代密码学(1949~1975年)
-
主要特点:密码学真正成为一门科学
-
1949年,Shannon (香农)发表论文"The Communication Theory of Secret Systems"(《保密系统的信息理论》),将信息论引入了密码,从而把已有数千年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。
1.1.3 现代密码学( 1976年以后)
- 密码学的新方向——公钥密码学
- 密码学的目的:是研究数据保密
- 主要特点:解决了密钥分发和管理的问题
- 解决了密钥分发、管理问题,并提供更多服务
- 1976年,Diffie & Hellman的“New Directions in Cryptography”提出了非对称密钥密码
- 密码学真正广泛在商业中应用
- 数据保密性安全服务的基础:加密机制
1.2 基本保密通信模型
- 基本概念
- 密码编码学
- 密码分析学
- 传统密码学主要用于保密通信,解决了在不安全的通道中安全的传递信息。
- 现代密码学涵盖了数据处理过程的各个环节(数据加密,密码分析,数字签名,身份识别,零知识证明,密码分享等)
1.3 密码学技术在信息安全中的应用
1.4 基本保密通信模型
1.4.1 基本概念
-
明文(Plaintext):不需要任何解密工具就可以读懂内容的原始消息称为明文。
-
密文(Ciphertext):明文变换成一种在通常情况下无法读懂的内容,这种隐蔽后的信息称为密文。
-
加密(Encryption):由明文到密文的变换过程称作加密。
-
解密(Decryption):从密文到明文的变换过程称为解密。
-
加/解密算法:对明文进行加密时采取的一组规则称作加密算法,密文的接收方对密文进行解密时采取的一组规则称为解密算法。
-
密钥(Key):密钥在明文转换为密文或将密文转换为明文的算法中输入的参数。
1.4.2 密码系统安全性
- 影响密码系统安全性的基本因素
- 密码算法复杂度、密钥机密性、密钥长度
- 科克霍夫(Kerckhoff) 原则
- 密码体制可以对外公开,对密钥必须保密;
- 如果一个密码系统需要保密的越多,可能的弱点也越多
- 评估密码系统安全性
- 无条件安全
- 计算安全性
- 可证明安全性
1.4.3 密码系统安全性(实际)
- 密码系统要达到实际安全,就要满足以下准则
- 破译该密码系统的实际计算量无法实现
- 破译该密码系统所需计算时间超过信息的生命周期
- 破译该密码系统的费用超过被加密信息本身的价值
1.4.4 通信认证方式
- 公钥认证
- 所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。
- 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难
- 零知识认证:证明某一个事实并且不泄露知识
- 共享密钥认证
- 基于通信双方共同拥有的但是不为别人知道的秘密,利用计算机强大的计算能力,以该秘密作为加密和解密的密钥的认证是共享密钥认证。
- 共享密钥认证(Shared Key Authentication)是指通过判决对方是否掌握相同的密钥来确定对方身份是否合法。密钥是网络上所有合法用户共有的,而不从属于单个用户,故称为“共享”密钥。
- 密钥对应的加密方法是有线等效保密(Wired Equivalent Privacy,WEP),用以防止非法用户窃听或侵入无线网络。
口令认证:输入口令
2. 对称密码算法
-
基本概念
- 也称传统密码算法、秘密密钥算法或单密钥算法,加密密钥和解密密钥相同,或实质上等同。
- 也称传统密码算法、秘密密钥算法或单密钥算法,加密密钥和解密密钥相同,或实质上等同。
-
算法优点
- 算法简单、计算量小、加密速度快、加密效率高、适合加密大量数据、密钥短、明文长度与密文长度相等。
-
算法缺点
- 安全信道难以实现
- 安全交换密钥问题及密钥管理复杂
- 无法解决对消息的篡改、否认等问题。
-
典型的对称密码算法包括:DES、3DES、IDEA、AES、RC4、RC5、Twofish、 CAST-256、 MARS等
3. 非对称密码算法
-
基本概念
- 也称双钥或公钥密码算法。其加密密钥和解密密钥不同,从一个很难推出另一个
- 两个密钥,一个是可以公开的(称为公钥) ,可以像电话号码一样进行注册公布;一个是私有的(称为私钥),只有拥有者才知道;这两个密钥组成一个密钥对。使用公钥对数据进行加密,则只有用对应的私钥才能解密。
- 两个密钥,一个是可以公开的(称为公钥) ,可以像电话号码一样进行注册公布;一个是私有的(称为私钥),只有拥有者才知道;这两个密钥组成一个密钥对。使用公钥对数据进行加密,则只有用对应的私钥才能解密。
- 也称双钥或公钥密码算法。其加密密钥和解密密钥不同,从一个很难推出另一个
-
公钥密码的特点
- 公私钥成对出现
- 公钥加密私钥解密——机密性
- 私钥加密公钥解密——数字签名
-
公钥密码的优点:
- 解决密钥分发和管理的问题
- 大大减少了密钥持有量
- 解决了不可否认的问题
- 提供了对称密码技术无法或很难提供的服务(数字签名)
-
公钥密码的缺点:
- 计算复杂、 耗用资源大
- 非对称会导致得到的密文变长
-
非对称密码算法特点
- 公钥密码典型算法
- Merkle-Hellman、RSA、 Rabin、 ElGamal、ECC
- RSA的缺点
- 产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
- 分组长度太大,为保证安全性,n 至少也要 600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级
- 且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化
- 关于公钥密码,有几种常见的误解
- 公钥密码更安全?
- 公钥密码算法使得对称密码算法成为了过时技术?
- 使用公钥密码实现密钥分配非常简单?
- RSA的缺点
- Merkle-Hellman、RSA、 Rabin、 ElGamal、ECC
- 公钥密码典型算法
4. 哈希函数与数字签名
4.1 哈希函数
- 哈希函数也称单向散列函数,它可以将任意有限长度信息映射为固定长度的值。
- 主要用途:消息完整性检测和数字签名
- 安全的哈希函数需要满足以下性质
- 单向性:对任意给定的码h,寻求x使得在计算上是不可行的;
- 弱抗碰撞性:任意给定分组x,寻求不等于x的y,使得在计算上不可行;
- 强抗碰撞性:寻求对任何的(x, y)对,使得在计算上不可行。
- 目前常用的哈希函数
- MD5算法
- 消息摘要算法(RFC1321) 由Ron Rivest提出。 该算法以一个任意长的消息作为输入,输出128bit的消息摘要。
- SHA-1算法
- 安全Hash算法(Secure Hash Algorithm, SHA) 由美国标准与技术研究所设计并于1993年作为联邦信息处理标准(FIPS180) 发布,修改版于1995年发布(FIPS 180-1),通 常称之为SHA-1。SHA-1算法的输入是长度小于264的任意消息x,输出160位的散列值。
- MD5算法
4.2 数字签名
- 对数据进行加密、哈希可以避免第三方对数据进行窃取和篡改、破坏,但它无法防止通信双方的互相攻击。通信双方可能存在欺骗和抵赖,一种有效的解决方案是数字签名。
- 数字签名要预先使用单向Hash函数进行处理的原因是缩小签名密文的长度,加快数字签名和验证签名的运算速度。
- 在普通数字签名中,签名者使用自己的私钥进行信息签名:
- 数字签名是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换能使数据单元的接收者确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造。
- 数字签名是公钥加密技术与数字摘要技术相结合的应用。
- 数字签名基本特性
- 不可伪造性
- 不知道签名者私钥前提下,很难伪造一个合法的数字签名;
- 不可否认性
- 对普通数字签名,任何人可用签名者公钥验证签名的有效性。由于签名的不可伪造性,签名者无法否认自己的签名。此性质使签名接收者可确认消息的来源;
- 保证消息完整性,即消息防篡改。
- 不可伪造性
5. 公钥基础设施
5.1 PKI架构
- 公钥基础设施( Public Key Infrastructure,PKI),也称公开密钥基础设施
- 按照国际电联(ITU)制定的X.509标准,PKI“是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。”
- PKI是一种遵循标准,利用公钥加密技术提供安全基础平台的技术和规范,是能够为网络应用提供信任、加密以及密码服务的一种基本解决方案。
- PKI的本质是实现了大规模网络中的公钥分发问题,为大规模网络中的信任建立基础。
5.2 PKI架构——四类实体
- CA(证书授权中心)
- PKI管理实体和服务的提供者
- 管理用户数字证书的生成、发放、更新和撤销等工作。
- RA
- 是数字证书的电请、审核和注册中心,同时也是CA认证机构的延伸
- 证书
- 符合一定格式的电子文件
- 用来识别电子证书持有者的真实身份
- 终端实体
- 指拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备、进程等
5.3 PKI组成部分
- X.509格式的证书和证书废止列表
- 证书授权中心操作协议,(CertificateAuthority,CA)
- 证书授权中心管理协议
- 证书授权中心政策制定
5.4 数字证书
- 什么是数字证书
- 一段电子数据,是经证书权威机构CA签名的、包含拥有者身份信息、有效时间和公开密钥的数据体。
- 数字证书和一对公私钥相对应,而公钥以明文形式放到数字证书中,私钥则为拥有者所秘密掌握。
- 数字证书的作用
- 经过了证书权威机构CA的签名,确保了数字证书中信息的真实性,数字证书可以作为终端实体的身份证明。
- 在电子商务和网络信息交流中,数字证书常用来解决相互间的信任问题。
5.5 CA ( Certification Authority )认证权威
- CA是PKI的核心组成部分,PKI体系也往往称为PKI/CA体系。
- 证书权威机构CA专门负责数字证书的产生、发放和管理,以保证数字证书的真实可靠。
- 签发数字证书:签发证书、更新证书
- 管理数字证书:撤销、查询、审计、统计
- 验证数字证书:黑名单认证(CRL) 、在线认证(OCSP)
5.6 RA:证书注册机构
- 又称数字证书注册中心
- 是数字证书的申请、审核和注册中心,同时也是CA认证机构的延伸。
- 在逻辑上RA和CA是一个整体,主要负责提供证书注册、审核以及发证功能。
5.7 PKI定义及构成
- 证书/CRL库
- 证书/CRL库主要用来发布、存储数字证书和证书撤销列表(Certificate Revocation List, CRL),供用户查询、获取其他用户的数字证书和系统中的证书撤销列表所用。
- 终端实体
- 指拥有公私密钥对和相应公钥证书的最终用户,可以是人、设备、进程等。