密码学01-基本概念

密码学基本概念

1.信息安全与安全威胁

威胁信息安全的主要方式 :

(1)信息泄露 (2)破坏信息的完整性 (3)拒绝服务 (4)非法使用 (5)窃听

(7)假冒 (8)旁路控制 (6)业务流分析 (9)授权侵犯 (10)特洛伊木马

(11)陷阱门 (12)抵赖 (13)重放 (14)计算机病毒 (15)人员不慎

(16)媒体废弃 (17)物理侵入 (18)窃取 (19)业务欺骗


攻击手段分类

  1. 被动攻击

    被动攻击
    • 被动攻击
      • 监听(机密性)
        • 消息内容获取
        • 业务流分析

    在被动攻击中,通过监听可以获取消息内容和进行业务流分析,威胁到信息的机密性。

  2. 主动攻击

主动攻击
  • 主动攻击
    • 中断(可用性)
    • 篡改(完整性)
    • 伪造(真实性)

在主动攻击中,攻击者可能通过中断来影响系统的可用性,通过篡改来破坏信息的完整性,以及通过伪造来破坏信息的真实性。


信息为什么不安全

信息安全威胁

在互联网通信中,Alice和Bob之间可能遇到的各种安全威胁,涉及机密性、完整性、身份认证和不可否认性。

  • 机密性
    • 窃听:攻击者监听Alice和Bob之间的通信,获取敏感信息。
  • 完整性
    • 篡改:攻击者修改Alice和Bob之间传递的信息,破坏信息的完整性。
  • 身份认证
    • 冒名传送:攻击者冒充Alice或Bob发送信息,伪造身份。
  • 不可否认性
    • 否认传送:Alice或Bob否认曾发送或接收某条信息。
  • 可用性
    • 中断:攻击者通过中断通信来破坏系统的可用性。

这些威胁展示了在互联网通信中需要保护的信息安全属性,以确保数据在传输过程中的安全性。


什么是密码学

  • 什么是密码?

    • 密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 ——《中华人民共和国密码法》
  • 什么是密码学?

    • 密码学是研究编制密码和破译密码的技术科学。

    • 研究密码变化的客观规律,应用于编制密码以保护通信秘密的,称为密码编码学。

    • 应用于破译密码以获取通信情报的,称为密码分析学或破译学。

密码学就是来解决这些问题的关键技术

----有没有其他人看到这封信的内容?(机密性)

----信的内容是否被改动?(完整性)

----是否真是你写的信?(消息源认证)

----是否真是写给我的信?(通信实体认证)

----是否你真的给我写过信?(不可否认性)


密码算法的基本模型

加密算法基本模型

加密: c=E(k1, m)

解密: m=D(k2, c)

密码算法

基本概念

  • 明文\(M\) ——要处理的数据——Message (Plaintext)
  • 密文\(C\)——处理后的数据——Ciphertext
  • 密钥\(k1, k2\) ——秘密参数——Key
  • 加密函数 \(C = E(k1, M)\)\(C=E_{k1}(M)\) ——Encryption
  • 解密函数:\(M=D(k_2,C)\)\(M=D_{k2}(C)\) ——Decryption

密码算法需求:

  • 需求1:可逆——算法的使用者可以将密文恢复成明文
  • 需求2:不可逆——敌手无法将密文恢复成明文
  • 秘密参数——密钥

密码算法实际上是一个带有秘密参数的函数。

  • 知道秘密参数,求逆非常容易
  • 不知道秘密参数,求逆是不可行的

一个好的密码体制至少应满足的两个条件:

(1)在已知明文m加密密钥k1时,计算\(c=E_{k1}(m)\)容易,

​ 在已知密文c解密密钥k2时,计算\(m=D_{k2}(c)\)容易;

(2)在不知解密密钥k2时,不可能由密文c恢复出明文m

密码算法的分类

机密性:对称密钥加密(流密码、分组密码)、公钥加密

完整性:杂凑函数、消息摘要函数

认 证:数字签名、身份认证协议

不可否认性:数字签名


对称密钥加密算法

对称密钥加密.drawio

对称加密算法是一类加密方法,其中加密和解密使用相同的密钥。以下是对称加密算法的特点、应用和常见算法的简要描述:

特点

  1. 加解密密钥相同
    • 在对称加密中,加密和解密使用相同的密钥。这意味着发送方和接收方必须共享同一个密钥并保持其秘密。
  2. 加解密速度快
    • 对称加密算法通常比非对称加密算法快很多,因为它们使用更简单的数学运算。这使得对称加密非常适合处理大量数据。

应用

  1. 大量数据加密
    • 对称加密常用于加密大量数据,因为其高效的加密和解密速度。它适用于数据存储和数据传输中的加密,例如加密文件系统和VPN流量。
  2. 消息认证码(MAC)
    • 对称加密还可以用于生成消息认证码,以确保数据在传输过程中未被篡改。这提供了数据完整性验证的手段。

常见算法

  1. ZUC
    • ZUC是一种流密码算法,广泛应用于我国的移动通信系统。
  2. DES(Data Encryption Standard)
    • DES是一种较旧的对称加密算法,使用56位密钥。虽然已被认为不再安全,但它在加密技术的发展史上具有重要地位。
  3. AES(Advanced Encryption Standard)
    • AES是一种非常流行的对称加密算法,使用128、192或256位密钥。它被广泛应用于各种安全协议和应用程序中,是目前最为推荐的对称加密算法之一。
  4. SM4
    • SM4是一种中国国家密码标准,主要用于无线局域网产品的安全保护。它也采用128位密钥。

公开密钥密码体制(非对称密码)

公开密钥密码体制.drawio

特点

  1. 密钥对
    • 公钥(Public Key):公开的,可以由任何人获取,用于加密数据或验证数字签名。
    • 私钥(Private Key):保密的,仅由密钥拥有者持有,用于解密数据或生成数字签名。
  2. 非对称性
    • 加密和解密使用不同的密钥。用公钥加密的数据只能用对应的私钥解密,反之亦然。
  3. 安全性
    • 非对称密码体制依赖于数学难题(如大整数分解或椭圆曲线离散对数问题)的复杂性,保证了其安全性。即使知道公钥,也无法在合理时间内计算出私钥。

应用

  1. 数据加密
    • 非对称加密可以用于在不安全的网络环境中安全地传输加密数据。发送方使用接收方的公钥加密数据,接收方使用自己的私钥解密。
  2. 数字签名
    • 数字签名用于验证数据的来源和完整性。签名者使用自己的私钥生成签名,接收方使用签名者的公钥验证签名。
  3. 密钥交换
    • 非对称加密用于安全地交换对称加密的密钥。例如,TLS协议使用非对称加密来安全地协商对称密钥,从而加密后续的数据传输。

常见算法

  1. RSA(Rivest-Shamir-Adleman)
    • 一种广泛使用的非对称加密算法,基于大整数分解问题。RSA可以用于加密和数字签名,密钥长度通常为1024位、2048位或更长。
  2. ECC(Elliptic Curve Cryptography)
    • 基于椭圆曲线离散对数问题的非对称加密算法。ECC相对于RSA提供了更高的安全性和更短的密钥长度(例如,256位的ECC密钥安全性相当于3072位的RSA密钥)。
  3. DSA(Digital Signature Algorithm)
    • 一种用于数字签名的标准算法,基于离散对数问题。DSA主要用于签名而不是加密。
  4. ElGamal
    • 一种基于离散对数问题的加密算法和数字签名算法。ElGamal加密和签名都提供了较高的安全性。

优缺点

优点

  • 密钥管理更方便:不需要安全地分发密钥,只需保护私钥。
  • 提供数字签名功能:可以验证信息的来源和完整性。

缺点

  • 速度较慢:非对称加密算法比对称加密算法慢得多,不适合加密大量数据。
  • 密钥长度较长:为了达到同样的安全性,非对称加密需要更长的密钥。

非对称密码体制在现代信息安全中扮演着重要角色,尤其在确保数据传输安全和验证数据真实性方面。

保密通信系统存在哪些安全威胁?

通信监听、数据篡改、拒绝访问、假冒通信、否认通信

1.2 密码分析学的前提

密码学学科分支

  • 密码分析学
  • 密码编码学

两者对立统一

密码分析学为编码学提供新方法、新手段;

密码编码学为分析学提供新思想、新结构。

安全的概念

Kerckhoffs假设:假定密码分析者和敌手知道所使用的密码系统。即密码体制的安全性仅依赖于对密钥的保密,而不应依赖于算法的保密。

一切秘密皆蕴含在密钥中!

假设敌手知道:

  1. 用的加密算法;
  2. 知道明文的概率分布规律;
  3. 知道密钥的概率分布规律;
  4. 知道所有可能的破译方法;
  5. 敌手能够拿到加密装置,可以对其进行能量消耗分析等等。

密码分析学的目标

  • 恢复合法密文相应的明文

  • 恢复密钥

密码体制的攻击方式

密码分析者攻击密码体制的方法:

  1. 穷举攻击: 通过试遍所有的密钥来进行破译。
    • 对抗: 可增大密钥的数量。
  2. 统计分析攻击: 通过分析密文和明文的统计规律来破译。
    • 对抗: 设法使明文和密文的统计规律不一样。
  3. 解密变换攻击: 针对加密变换的数学基础,通过数学求解设法找到解密变换。
    • 对抗: 选用具有坚实的数学基础和足够复杂的加密算法。

密码破译

  1. 唯密文攻击(Ciphertext Olny Attack)
  2. 已知明文攻击(Known Plaintext Attack)
  3. 选择明文攻击(Chosen Plaintext Attack)
  4. 选择密文攻击(Chosen Ciphertext Attack)

攻击强度由小到大

惟密文攻击

密码分析者仅知道一些密文。

最困难, 一般是穷搜索,对截获密文用所有可能密钥去试• 惟密文攻击敌手知道的信息量最少, 最易抵抗

只要有足够的计算时间和存储容量,原则上可成功,但在实际上一种能保证安全要求的实用密码算法,都会设计得这一方法在实际上不可行。

一般的敌手需要对密文进行统计测试分析,为此需要知道被加密的明文类型,英文文本,图象等。

已知明文攻击

密码分析者知道一些明文相应的密文

在很多情况下,敌手可能有更多的信息,也许能够截获一个或多个明文及其对应的密文,或消息中将出现某种明文格式,这时的攻击称为已知明文攻击,敌手也许能从已知的明文被变换成密文的方式得到密钥

选择明文攻击

密码分析者可以选择一些明文,并得到相应的密文

如果攻击者能在加密系统中插入自己选择的明文消息,则通过该明文消息对应的密文有可能确定出密钥的结构

明文可以是精心选择的

选择密文攻击

密码分析者可以选择一些密文,并得到相应的明文

攻击者利用解密算法,对自己所选的密文解密出相应的明文,有可能确定出密钥信息。

选择的密文可以与要破解的密文相关。

无条件安全与计算上安全

  • 无条件安全的(不可破译的):

无论截获多少密文,都没有足够信息来唯一确定明文,则该密码是无条件安全的, 即对算法的破译不比猜测有优势

  • 计算上安全的:

使用有效资源对一个密码系统进行分析而未能破译,则该密码是强的或计算上安全的。

密码算法要满足的准则

密码算法只要满足以下两条准则之一就行:

  1. 破译密文的代价超过被加密信息的价值。
  2. 破译密文所花的时间超过信息的有用期。

1.3 古典密码算法

置换(Permutation) 密码

对明文字符或字符组进行位置移动的密码

明文的字母保持相同, 但顺序被打乱了。

天书( Scytale )

500 B.C.,斯巴达人在军事上用于加解密

发送者把一条羊皮纸螺旋形地缠在一个圆柱形木棒上,核心思想是置换。

字符映射: 天书置换密码通过一个字符映射表将明文字符替换成密文字符。这个映射表可以是随机生成的,也可以是预先设定好的。

加密过程

  • 明文:原始的、未加密的文本。
  • 密文:通过字符映射表对明文字符进行替换得到的文本。
  • 加密时,明文中的每个字符都被替换成映射表中指定的字符,从而生成密文。

解密过程: 解密过程是加密过程的逆过程。通过使用相同的字符映射表,将密文中的每个字符替换回原来的明文字符,从而恢复原始文本。

代替密码

代替(Substitution)密码构造一个或多个密文字母表, 然后用密文字母表中的字母或者字母组来代替明文字母或字母组,各字母或字母组的相对位置不变,但其本身的值改变了。

代替密码分为单表代替密码多表代替密码

字母与数字的转换

代替密码算法针对英文字母进行处理。 首先将26个字母与十进制数字中的0~25一一对应, 如下表所示。 而这里的数的加法和乘法都定义为模26的加法和乘法。

字母 a b c d e f g h i j k l m
数字 0 1 2 3 4 5 6 7 8 9 10 11 12
字母 n o p q r s t u v w x y z
数字 13 14 15 16 17 18 19 20 21 22 23 24 25

单表代替密码可分为 :加法密码、乘法密码、仿射密码

加法密码

\(y=x+k(mod26)\)

明文:\(x\)

密文:\(y\)

密钥:\(k\)

解密:\(x=y-k(mod 26)\)

凯撒(Caesar)密码就是一种加法密码(k=3)

乘法密码

\(y=kx(mod26)\)

明文:\(x\)

密文:\(y\)

密钥:\(k\)

解密:\(x=k^{-1}y(mod 26)\)

条件:\((k,26)=1\) 即k的逆元存在

关键在于计算 \(k^{-1}\)

方法:扩展的欧几里得算法

\((m,n)=1\), 则存在整数\(k1,k2\)使得\(k_1m+k_2n=1\)

这里\(k_1\)就是\(m^{-1}modn\),注意要将\(k_1\)变为正数

\[-k_1\,mod\,n=(n-k_1)\,mod\,n \]

仿射密码

加密函数:\(y=ax+b\)mod26

密钥:\(a,b\)

解密函数:\(x=a^{-1}(y-b)(mod 26)\)

条件:\((a,26)=1\)

仿射密码是乘法密码和加法密码的结合。

单表替代的统计分析

单表替代的特点是相同的明文被加密成相同的密文, 这使得统计分析成为可能。

英文中字母出现频率是有规律的,只要能够收集到足够多的密文, 通过统计就能够很容易地进行密码的破译:

  • e: 出现频率约为0.127;
  • t, a, o, i, n, s, h, r: 出现频率约在0.06到0.09之间
  • d, l: 的出现频率约为0.04
  • c, u, m, w, f, g, y, p, b :出现频率约在0.015到0.028之间

多表代替密码算法

Vigenere(维吉尼亚) 密码
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
B I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
C J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
D K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
E L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
F M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
G N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
H O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
I P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
J Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
K R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
L S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
M T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
N U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
O V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
P W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
Q X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
R Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
S Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
T A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
U B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
V C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
W D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
X E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
Y F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

每个字母往后移动3位, 相当于只有一种替换方式, 而维吉尼亚怎么做的呢? 也需要先选择一个词组或单词比如: hold。 可以得到:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
多表代换密码

多表代换密码首先将明文 分为由 个字母构成的分组 ,对每个分组的加密为:

\[C_i\equiv AM_i+B(modN),i=1,2,\dots,j \]

其中\((A,B)\)是密钥,\(A\)\(n\times n\)可逆矩阵\(gcd(|A|,N)=1\) 满足 (\(|A|\) 是行列式),\(B=(B_1,B_2,\dots,B_n)^T\)\(C=(C_1,C_2,\dots,C_n)^T\)\(M_i=(m_1,m_2,\dots,m_n)^T\)

对密文分组 的解密为:

\[M_i\equiv A^{-1}(C_i-B)(modN),i=1,2,\dots,j \]

posted @ 2024-08-11 15:42  seveN1foR  阅读(1)  评论(0编辑  收藏  举报