信息安全技术主要包括:
- 信息加密技术
- 数字签名技术
- 身份认证技术
- 访问控制技术
- 网络安全技术
- 反病毒技术
- 数据备份与恢复
- 信息安全管理
这里因为之前搞到了师兄给的一百多页的密码学基础,所以就先pick数字签名来讲。(小声哔哔:按我的性格肯定是想all in的,但是看一个密码学能讲的都有很多那就先讲数字签名再加亿点点细节吧)
数字签名技术
- 数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
- 数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
- 数字签名是非对称密钥加密技术与数字摘要技术的应用。
数字签名技术是密码学基础的一部分
- 传统签名的基本特点:
- 能与被签的文件在物理上不可分割
- 签名者不能否认自己的签名
- 签名不能被伪造
- 容易被验证
- 数字签名是传统签名的数字化,基本要求:
- 能与所签文件“绑定”
- 签名者不能否认自己的签名
- 签名不能被伪造
- 容易被验证
数字签名的特性
- 不可伪造性
- 没有私钥,很难伪造一个合法的数字签名
- 不可否认性
- 对普通数字签名,任何人可用签名者公钥验证签名的有效性
- 保证消息完整性
- 可以防止消息被篡改
数字签名的两种方法
(a) 基于RSA的数字签名
- 初始化:
m:签名的消息
签名者的私钥:d;公钥:(e,n)- 签名:
计算m的哈希值H(m).
签名值s=(H(m))^d mod n
- 验证:
计算H1=s^e mod n
判断H1=H(m)是否成立
(b) DSS处理
DSS数字签名标准:
- DSS(Digital signature standard)
- NIST提出,1994年12月被正式采用为美国联邦信息处理标准
- 数字签名算法(Digital signature algorithm, DSA )
DSS特点:
- 只能用于签名
- 不能用于加密,也不能用于密钥分配
- DSA是ELGamal签名方案的一个变形,所有有关ELGamal签名方案的一些攻击方法也可能对DSA有效
- 对DSA持反对意见的人怀疑 DSA的安全性,认为DSA的密钥长度太短
三种算法的比较
算法 | 加/解密 | 数字签名 | 密钥协商 |
---|---|---|---|
RSA | 是 | 是 | 是 |
Dieffie-Hellman | 否 | 否 | 是 |
DSA | 否 | 是 | 否 |
加亿点点细节(扩展内容,,跑偏了)
非对称密码算法
非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
- 理解非对称密码算法的优缺点和应用场合:
- 优点:安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
- 缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。在某些极端情况下,甚至能比对称加密慢上1000倍。
- 常见应用场景:信息加密、用户认证、数字签名、数字证书
- 理解RSA算法的特点
- 1977年由Ron Rivest、Adi Shamir和Len Adleman发明,1978年正式公布。
- RSA是一种分组加密算法。明文和密文在0~n-1之间,n是一个正整数。
- 该算法的数学基础是初等数论中的Euler(欧拉)定理,并建立在大整数因子的困难性之上。
- 目前应用最广泛的公钥密码算法。
- RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。它是第一个既能用于数据加密也能用于数字签名的算法。
RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战和质疑。 - RSA (Rivest - Shamir – Adleman),1977
- 在一个算法中实现签名和加密
- 私钥 : 签名和解密
- 公钥 : 签名检验和加密
- RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
- RSA的算法涉及三个参数,n、e1、e2。其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2×e1)≡1(mod(p-1)×(q-1))。
(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A≡B^e2( mod n);B≡A^e1 (mod n)
;(公钥加密体制中,一般用公钥加密,私钥解密)
e1和e2可以互换使用,即:A≡B^e1 (mod n);B≡A^e2( mod n)
;
RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。