searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

数据加密基础

2023-07-14 07:00:14
12
0

1. 密码学基本概念

数据加密,是指通过加密算法和加密密钥将明文转为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文,核心是密码学。

数据传输加密技术的目的是对传输中的数据流加密,通常有线路加密与端—端加密两种。

  • 线路加密侧重在线路上而不考虑信源与信宿,是对保密信息通过各线路采用不同的加密密钥提供安全保护。

  • 端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。

1.1 基本术语

明文,密文,密钥,加密,加密算法,解密,解密算法。

1.2 古典密码学

替换法

用固定的信息将原文替换成无法直接阅读的密文信息。

单表替换和多表替换(多表替换有表顺序,表顺序又叫做密钥)

移位法

移位法就是将原文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后得出密文,典型的移位法应用有 “ 恺撒密码 ”。

1.3 近代密码学

恩尼格玛机,加密方式移位和替代,表种类极多,破解难度高。

1.4 现代密码学

散列函数

散列函数,也称为杂凑函数、摘要函数或哈希函数,可将任意长度的消息经过运算,变成固定长度数值,常见的有MD5SHA-1SHA256多应用在文件校验,数字签名中。

MD5 可以将任意长度的原文生成一个128位(16字节)的哈希值

SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值

对称密码

对称密码应用了相同的加密密钥和解密密钥。

对称密码分为:序列密码(流密码),分组密码(块密码)两种。

  • 流密码是对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密。

  • 块密码是先对信息流分块,再对每一块分别加密。

例子:

  • 原文为1234567890,流加密即先对1进行加密,再对2进行加密,再对3进行加密……最后拼接成密文;块加密先分成不同的块,如1234成块,5678成块,90XX(XX为补位数字)成块,再分别对不同块进行加密,最后拼接成密文。前文提到的古典密码学加密方法,都属于流加密。

非对称密码

对称密码的密钥一旦泄露,安全无法得到保障。

在实际的使用中,远程的提前协商密钥不容易实现,即使协商好,在远程传输过程中也容易被他人获取,因此非对称密钥此时就凸显出了优势

定义:

非对称密码有两支密钥,公钥(publickey)和私钥(privatekey),加密和解密运算使用的密钥不同。用公钥对原文进行加密后,需要由私钥进行解密;用私钥对原文进行加密后(此时一般称为签名),需要由公钥进行解密(此时一般称为验签)。公钥可以公开的,大家使用公钥对信息进行加密,再发送给私钥的持有者,私钥持有者使用私钥对信息进行解密,获得信息原文。因为私钥只有单一人持有,因此不用担心被他人解密获取信息原文。

1.5 ASCII编码

 

2. 常见的加密方式

2.1 对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,对称加密。

示例
  • 我们现在有一个原文3要发送给B

  • 设置密钥为108, 3 * 108 = 324, 将324作为密文发送给B

  • B拿到密文324后, 使用324/108 = 3 得到原文

常见加密算法

DES,数据加密标准,密钥长度必须为8个字节

AES,高级加密标准,密钥长度为16个字节

特点
  • 加密速度快, 可以加密大文件

  • 密文可逆, 一旦密钥文件泄漏, 就会导致数据暴露

  • 加密后编码表找不到对应字符, 出现乱码

  • 一般结合Base64使用

3. 加密模式

ECB

Electronic codebook, 电子密码本. 需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。

 

  • 优点 : 可以并行处理数据

  • 缺点 : 同样的原文生成同样的密文, 不能很好的保护数据

  • 同时加密,原文是一样的,加密出来的密文也是一样的

CBC

Cipher-block chaining, 密码块链接. 每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。

  • 优点 : 同样的原文生成的密文不一样

  • 缺点 : 串行处理数据.

4. 填充模式

当需要按块处理的数据, 数据长度不符合块处理需求时, 按照一定的方法填充满块长的规则

不填充

  • 在DES加密算法下, 要求原文长度必须是8byte的整数倍

  • 在AES加密算法下, 要求原文长度必须是16byte的整数倍

PKCS5Padding

数据块的大小为8位,不够就补足。

Tips

默认情况下,加密模式和填充模式为:ECB/PKCS5Padding

5. 消息摘要

  • 消息摘要(Message Digest)又称为数字摘要(Digital Digest)

  • 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生

  • 使用数字摘要生成的值是不可以篡改的,为了保证文件或者值的安全

特点

无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。(MD5是128个比特位,SHA-1是160个比特位)

只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出

消息摘要是单向、不可逆的

常见算法

MD5,SHA1,SHA256,SHA512

  • MD5算法 : 摘要结果16个字节, 转16进制后32个字节

  • SHA1算法 : 摘要结果20个字节, 转16进制后40个字节

  • SHA256算法 : 摘要结果32个字节, 转16进制后64个字节

  • SHA512算法 : 摘要结果64个字节, 转16进制后128个字节

6. 非对称加密

简介

  1. 非对称加密又称为现代加密算法,保证了数据不会被破解。

  2. 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)

  3. 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密

  4. 如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密

  5. 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法

示例

  • 首先生成密钥对, 公钥为(5,14), 私钥为(11,14)

  • 现在A希望将原文2发送给B

  • A使用公钥加密数据. 2的5次方mod 14 = 4 , 将密文4发送给B

  • B使用私钥解密数据. 4的11次方mod14 = 2, 得到原文2

特点

  • 加密和解密使用不同的密钥

  • 如果使用私钥加密, 只能使用公钥解密

  • 如果使用公钥加密, 只能使用私钥解密

  • 处理数据的速度较慢, 因为安全级别高

常见算法

RSA,ECC

 

 

0条评论
作者已关闭评论
朱****程
6文章数
0粉丝数
朱****程
6 文章 | 0 粉丝
朱****程
6文章数
0粉丝数
朱****程
6 文章 | 0 粉丝
原创

数据加密基础

2023-07-14 07:00:14
12
0

1. 密码学基本概念

数据加密,是指通过加密算法和加密密钥将明文转为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文,核心是密码学。

数据传输加密技术的目的是对传输中的数据流加密,通常有线路加密与端—端加密两种。

  • 线路加密侧重在线路上而不考虑信源与信宿,是对保密信息通过各线路采用不同的加密密钥提供安全保护。

  • 端—端加密指信息由发送端自动加密,并且由TCP/IP进行数据包封装,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息到达目的地,将被自动重组、解密,而成为可读的数据。

1.1 基本术语

明文,密文,密钥,加密,加密算法,解密,解密算法。

1.2 古典密码学

替换法

用固定的信息将原文替换成无法直接阅读的密文信息。

单表替换和多表替换(多表替换有表顺序,表顺序又叫做密钥)

移位法

移位法就是将原文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后得出密文,典型的移位法应用有 “ 恺撒密码 ”。

1.3 近代密码学

恩尼格玛机,加密方式移位和替代,表种类极多,破解难度高。

1.4 现代密码学

散列函数

散列函数,也称为杂凑函数、摘要函数或哈希函数,可将任意长度的消息经过运算,变成固定长度数值,常见的有MD5SHA-1SHA256多应用在文件校验,数字签名中。

MD5 可以将任意长度的原文生成一个128位(16字节)的哈希值

SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值

对称密码

对称密码应用了相同的加密密钥和解密密钥。

对称密码分为:序列密码(流密码),分组密码(块密码)两种。

  • 流密码是对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密。

  • 块密码是先对信息流分块,再对每一块分别加密。

例子:

  • 原文为1234567890,流加密即先对1进行加密,再对2进行加密,再对3进行加密……最后拼接成密文;块加密先分成不同的块,如1234成块,5678成块,90XX(XX为补位数字)成块,再分别对不同块进行加密,最后拼接成密文。前文提到的古典密码学加密方法,都属于流加密。

非对称密码

对称密码的密钥一旦泄露,安全无法得到保障。

在实际的使用中,远程的提前协商密钥不容易实现,即使协商好,在远程传输过程中也容易被他人获取,因此非对称密钥此时就凸显出了优势

定义:

非对称密码有两支密钥,公钥(publickey)和私钥(privatekey),加密和解密运算使用的密钥不同。用公钥对原文进行加密后,需要由私钥进行解密;用私钥对原文进行加密后(此时一般称为签名),需要由公钥进行解密(此时一般称为验签)。公钥可以公开的,大家使用公钥对信息进行加密,再发送给私钥的持有者,私钥持有者使用私钥对信息进行解密,获得信息原文。因为私钥只有单一人持有,因此不用担心被他人解密获取信息原文。

1.5 ASCII编码

 

2. 常见的加密方式

2.1 对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,对称加密。

示例
  • 我们现在有一个原文3要发送给B

  • 设置密钥为108, 3 * 108 = 324, 将324作为密文发送给B

  • B拿到密文324后, 使用324/108 = 3 得到原文

常见加密算法

DES,数据加密标准,密钥长度必须为8个字节

AES,高级加密标准,密钥长度为16个字节

特点
  • 加密速度快, 可以加密大文件

  • 密文可逆, 一旦密钥文件泄漏, 就会导致数据暴露

  • 加密后编码表找不到对应字符, 出现乱码

  • 一般结合Base64使用

3. 加密模式

ECB

Electronic codebook, 电子密码本. 需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密。

 

  • 优点 : 可以并行处理数据

  • 缺点 : 同样的原文生成同样的密文, 不能很好的保护数据

  • 同时加密,原文是一样的,加密出来的密文也是一样的

CBC

Cipher-block chaining, 密码块链接. 每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。

  • 优点 : 同样的原文生成的密文不一样

  • 缺点 : 串行处理数据.

4. 填充模式

当需要按块处理的数据, 数据长度不符合块处理需求时, 按照一定的方法填充满块长的规则

不填充

  • 在DES加密算法下, 要求原文长度必须是8byte的整数倍

  • 在AES加密算法下, 要求原文长度必须是16byte的整数倍

PKCS5Padding

数据块的大小为8位,不够就补足。

Tips

默认情况下,加密模式和填充模式为:ECB/PKCS5Padding

5. 消息摘要

  • 消息摘要(Message Digest)又称为数字摘要(Digital Digest)

  • 它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生

  • 使用数字摘要生成的值是不可以篡改的,为了保证文件或者值的安全

特点

无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。(MD5是128个比特位,SHA-1是160个比特位)

只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出

消息摘要是单向、不可逆的

常见算法

MD5,SHA1,SHA256,SHA512

  • MD5算法 : 摘要结果16个字节, 转16进制后32个字节

  • SHA1算法 : 摘要结果20个字节, 转16进制后40个字节

  • SHA256算法 : 摘要结果32个字节, 转16进制后64个字节

  • SHA512算法 : 摘要结果64个字节, 转16进制后128个字节

6. 非对称加密

简介

  1. 非对称加密又称为现代加密算法,保证了数据不会被破解。

  2. 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)

  3. 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密

  4. 如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密

  5. 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法

示例

  • 首先生成密钥对, 公钥为(5,14), 私钥为(11,14)

  • 现在A希望将原文2发送给B

  • A使用公钥加密数据. 2的5次方mod 14 = 4 , 将密文4发送给B

  • B使用私钥解密数据. 4的11次方mod14 = 2, 得到原文2

特点

  • 加密和解密使用不同的密钥

  • 如果使用私钥加密, 只能使用公钥解密

  • 如果使用公钥加密, 只能使用私钥解密

  • 处理数据的速度较慢, 因为安全级别高

常见算法

RSA,ECC

 

 

文章来自个人专栏
数据
4 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0