本篇来介绍计算机领域的信息安全以及加密相关基础知识,这些在嵌入式软件开发中也同样会用到。
1 信息安全
1.1 信息安全的基本要素
- 保密性:确保信息不被泄露给未授权的实体。包括最小授权原则、防暴露、信息加密、物理加密。
- 完整性:保证数据传输过程中是正确无误的,接收和发送的数据相同,不被篡改。包括安全协议、校验码、密码校验、数字签名、公正等手段。
- 可用性:保证合法的用户能以合法的手段来访问数据,不会被拒绝。
- 可控性:控制授权范围内的信息流向及行为方式,整个网络处于可控状态。
- 不可抵赖性:信息数据的参与者不能否认自己发送的数据,参与者身份真实有效。
1.2 安全攻击与威胁
- 被动攻击:不直接影响通信内容,如监听、窃取。
- 主动攻击:直接影响通信内容,如中断、篡改、伪造、拒绝服务(DOS)等。
2 加密
2.1 加密基本概念
- 明文:实际传输的真正数据
- 密文:经过加密后的数据
- 加密:将明文转换为密文的过程
- 解密:经密文转换为明文的过程
- 加密算法:一般是公开的,包括两大原则:
- 代换:转换成完全不同的其它数据
- 置换:打乱明文顺序,进行重新置换
- 密钥:加密和解密过程中使用的密码
2.2 对称加密
对称加密是指加密和解密的密钥是相同的,属于不公开密钥的加密算法。其缺点的加密强度不高,且密钥分发困难。
对称加密算法 | 描述 |
---|---|
DES | DES(Data Encryption Standard),即数据加密标准,通过替换+位移,使用56位密钥,64位数据块,速度快,密钥易产生。 |
3DES | 即三重数据加密算法,是一种对称密钥加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。 |
AES | AES(Advanced Encryption Standard),是美国联邦政府采用的一种区块加密标准。 |
RC-5 | RC5的主要特性是很快,只是用基本的计算机运算(加、异或、移位等),轮数可变,密钥位数可变,从而大大增加灵活性。 |
IDEA | IDEA(International Data Encryption Algorithm),即国际数据加密算法,使用128位密钥,64位数据块,比DES的加密性好,对计算机功能要求相对低。 |
2.3 非对称加密
非对称加密是指加密和解密的密钥是不同的,信息传递双方都拥有自己的公钥和私钥,用对方的公钥加密,用自己的私钥解密。
公钥只能用做数据加密,公钥加密的数据,只能用对应的私钥才能解密。这是非对称加密的核心概念。
非对称加密算法 | 描述 |
---|---|
RSA | RSA加密算法是由罗纳德·李维斯特(Ronald Linn Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德尔曼(Leonard Adleman)于1977年共同发明的。使用1024或512位密钥,计算量极大,难破解。 |
ElGamal | ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。 |
ECC | CC(Ellipse Curve Ctyptography),是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。ECC可以使用更小的密钥并提供相当高等级的安全。ECC164位的密钥相当于RSA1024位密钥提供的保密强度,且计算量较小,处理速度更快,存储空间和传输带宽占用较少。 |
3 信息摘要
信息摘要,是指一段数据的特征信息,当数据发生变化时,信息摘要也会发生改变。
信息传递时,发送方将数据和对应的信息摘要一起发送,接收方收到后,根据收到的数据重新生成一个信息摘要,若与收到的摘要相同,则说明数据正确。
信息摘要由哈希函数生成。
摘要算法 | 特点 |
---|---|
MD5(Message-Digest Algorithm) | 产生128位的输出 |
SHA-1(Secure Hash Algorithm 1) | 产生160位的输出,安全性更高 |
虽然通过信息摘要,可以判断数据有没有被篡改,但仍然会存在的问题是:如果发送方的数据和摘要都被篡改了,那么接收方拿到错误的数据生成的摘要也和篡改的摘要相同,接收方就无法判断接收的数据是否正确了。
4 数字签名与数字证书
4.1 数字签名
数字签名用于验证发送方是否合法。
数字签名的基本原理是:
- 若发送方需要发送数据,应使用发送方的私钥进行数字签名
- 因为公钥是可以共享的,发送方将自己的公钥发送给接收方
- 接收方使用发送方的公钥对接收的数据核实签名,则可验证数据发送方的身份
另外,由上述示意图可以看出,数字签名技术与非对称加密技术使用公钥和私钥的过程正好是相反的。
当数字签名和信息摘要合用后,就能保证数据不会产生错误。
- 数字签名确定了唯一的发送方,如果被篡改,数字签名肯定错误
- 若签名无误,则数据未被篡改,然后根据信息摘要,确定数据的完整性
4.2 数字证书
数字证书指的是互联网通信中,标志通信各方身份信息的一个数字认证,用于识别对方的身份。
数字证书由用户申请,证书签证机关CA(Certificate Authority)对其核实签发,是对用户公钥的认证。
每一个发送方都要先向CA申请数字证书,数字证书是经过CA数字签名的,即CA使用私钥加密。当发送方要发送数据时,接收方首先下载CA的公钥,来验证数字证书的真伪,如果是真的,就能保证发送方是真的,因为CA是权威机构,会确保合法性。
5 总结
本篇介绍了信息安全的基础知识,以及数据加密相关的基础知识,包括加密的分类,信息摘要,数字签名与数字证书等。