代码之神 2019-06-26
密码体制:明文空间、密文空间、密钥空间、加密算法和解密算法五部分构成。 密码协议:有时称为安全协议,指以密码学为基础的消息交换的通信协议,目的是在网络环境 中提供各种安全服务,密码协议和密码算法同等重要,是密码学研究的两大课题。 密码系统:用于加密解密的系统,加密时,通过输入明文和密钥,加密后输出密文;解密时,通 过输入密文和解密密钥,输出明文。一个密码系统,由信源、加密变换、解密变换、信宿和攻击 者组构成。 柯克霍夫原则:数据的安全基于密钥而不是算法的保密。系统的安全信,取决于密钥,对密钥保 密,对算法公开。柯克霍夫原则是现代密码学设计的基本原则。
2.1、按时间划分: 古典密码、现代密码;古典密码以字符为基本加密单元,现代密码:以信息块为基本加密单元。 2.2、按密钥划分: 受限制的算法、基于密钥的算法; 受限制的算法:算法的保密性基于保持算法的秘密,一般不建议; 基于密钥的算法:算法的保密基于密钥的保密,正是现代密码学的主要特征。 2.3、按密码体制划分: 对称密码体制、非对称密码体制; 对称密码体制:加密与解密密钥相同, 非对称密码体制:加密密钥和解密密钥不同,密钥分为公钥与私钥,公钥对外公开, 私钥对外保密。 2.4、按明文的处理方法划分: 分组密码、流密码; 分组密码:用同一密钥算法对每一块加密,输出的也是固定长度的密文,多用于网络加密。 流密码:又称序列密码,加密时每次加密一位或一个字节的明文,一般在手机系统中使用, 比较著名的流密码有RC4.
在对称密码体制中,以流密码实现的方式,需要验证信息的完整性,这种技术 就是散列函数提供的消息认证技术。
散列函数主要作用不是完成数据的加密和解密的,只用来验证数据的完整性, 通过给数据创建“数字指纹”(散列值)如果消息在传递过程中被篡改,则该消息不能与 获得的数字指纹匹配。
1、消息的长度不受限制。 2、对于给定的消息,其散列值计算是很容易的。 3、如果两个散列值不相同,则这两个散列值的原始消息也不同,这个特性使得散列函数有确定性的结果。 4、散列函数的运算过程是不可逆的,这个特性称为函数的单向性。 5、对于一个已知的消息及其散列值,要找到另一个消息使其获得相同的散列值是不可能的,这种特性称为抗弱碰撞性,防止信息被伪造。 6、任意两个不同消息的散列值一定不同,这个特性称为抗强碰撞性。
散列函数广泛用于信息完整性的验证,是数据签名的核心技术,散列函数的常用算法有MD(消息摘要算法) 、 SHA(安全散列算法)、以及Mac(消息认证码算法)
通过散列函数可以保证数据内容的完整性,但这远远不够,此外还需要保证数据来源的可认证性和数据发送行为的不可否认性。 完整性、可认证性和不可否认性正是数字签名的主要特征。 数字签名离不开非对称密码体制,签名算法受私钥控制,且由签名者保密; 验证算法受公钥控制,且对外公开。
1、签名者任何时候都无法否认自己曾经签发的数字签名 2、信息接收者能够验证和确认收到的数字签名,但任何人无法伪造信息发送者的数字签名 3、当收发双方对数字签名的真伪产生争议时,通过仲裁机构(可信赖的第三方)进行仲裁。
私钥用于签名,公钥用于验证,私钥和公钥成对出现,公钥加密的消息只能用私钥来解, 私钥加密的消息只能由公钥来解。
1、单向认证:由于算法、密钥公开,任何一个已获得公钥的窃听者都可以截获到乙方发送的消息, 替换成自己的消息发送给甲方,而甲方无法辨别消息是否来自乙方。这种认证方式属于单向认证。 2、双向认证:如果有两套公私钥,甲乙双方都对数据进行签名及验证就可以避免这一问题,这种 认证方式属于双向认证。
使用私钥加密,公钥解密
用公钥加密,私钥解密
如果A想给B发一个安全的保密的数据,那么应该AB各自有一个私钥, A先用B的公钥加密这段数据,再用自己的私钥加密这段加密后的数据。 最后再发给B,这样确保了内容即不会被读取,也不会被篡改。 加解密过程: 1. A用B的公钥加密数据 --加密 2. A用自己的私钥加密这段加密后的数据 --签名 3. B用A的公钥解密 --验证签名 4. B用自己的私钥解密数据 --解密
公钥基础设施(Public Key Infrastructure,PKI)是一个基于X.509的、用于创建、分配和撤回证书的模型。 PKI能为所有网络应用提供加密和数字签名服务。 PKI由公钥密码技术、数字证书、证书认证中心和关于公钥的安全策略等基本成分共同组成,对密钥和证书进行管理。
RSA公司定义了PKCS(Public Key Cryptography Standard,公钥加密标准),并定义了许多 加密组件,如数字签名和证书请求格式:IETF(Internet Engineering Task Force,互联网 工程任务组)和PKIWG(Public KeyInfrastructure Working Group)PKI工作组,PKCS共 有15项标准。 比较常用的标准: PKICS#7:加密消息语法标准 PKICS#10:证书请求语法 PKICS#12:个人信息交换语法标准
PKI系统由认证中心(Certifiate Authority,CA)、数字证书库(Certificate Respository,CR)、密钥备份及恢复系统、证书作废系统、应用程序接口五部分组成。 认证中心CA和数字证书库CR是PKI技术的核心。 1、认证中心CA功能: 证书发放、证书更新、证书撤销、证书验证 2、数字证书库CR功能: 存储已签发的数字证书及公钥、包括LDAP(Light Direct Access Protocol轻量级目录访 问协议)目录服务器和数据库。
数字证书是网络用户身份的标识,包括ID、公钥和颁发机构的数字签名等内容。其形式主要有X.509公钥证书、SPKI(Simple Public Key Infrastructure,简单PKI)证书、PGP(Pretty Good Privacy)证书和属性(Attribute)证书。 其中X.509证书最为常见,通常所说的数字证书就是指X.509公钥证书。
PGP使得一般人可以很容易的对数据文件、邮件进行加密,其主要特点是在非安全的网络环境下,使得从未谋面的人取得信任。相比与PKI, PGP不需要HTTPS、也不需要CA,仅仅需要一个可信赖的密钥托管服务器。 由于PGP的广泛应用,形成一个最终的开放标准-OpenPGP。 GPG是实现了OpenPGP的免费开源程序。
X.509 依赖CA的信任链,即群签名,PGP不依赖于CA,依赖可信任的环签名。 X.509主要应用于可信任的、安全的环境中,如电子商务平台等;PGP可用于不安全的网络环境中,如邮件等。 PGP依赖于非公钥体制,即公钥对数据加密,私钥对数据解密。 PKI是通过非公钥体制进行密钥交换,转而使用对称密钥完成加密操作。
1998年DES方式加密的密钥被破解。 2004年破解了MD5、HAVAL-128、MD4和RIPEMD被山东大学王晓云教授团队破解,MD5的破解预示着SHA-1算法的末日。 MD5和SHA-1的破解,动摇了目前数字签名的理论根基,从理论上说数字签名可以伪造。 密码学在信息安全中越来越重要,已成为信息安全中不可或缺的一部分。密码学的发展以密码算法被破解而引发。