密码学基础(一)

1.1 信息安全面临的威胁

攻击方式

1.被动攻击(监听/保密性):

  • 消息内容获取

  • 业务流分析:即使加密,敌手仍可获得消息格式、通信双方位置/身份、通信次数和消息长度。

2.主动攻击:

  • 中断(破坏可用性):破坏硬件、网络、文件系统。

  • 篡改(破坏完整性):修改数据、替换程序、修改消息内容。

  • 伪造(破坏真实性):插入伪造消息/记录。

安全业务

安全业务

功能

防护目标

保密业务

保护数据以防被动攻击

防窃听

认证业务

保证通信的真实性

确认消息来源真实、通信双方身份真实

完整性业务

保证接收消息未经复制、插入、篡改、重排或重放

防篡改

不可否认业务

防止通信双方某一方否认所传输消息

防抵赖

访问控制

防止对网络资源的非授权访问

权限管理

恶意程序

1.需要主程序(不能独立运行):陷门、逻辑炸弹、特洛伊木马、病毒

2.不需主程序(独立程序,可被OS调度运行):细菌、蠕虫

1.2 信息安全模型

安全的网络通信必须考虑以下4个方面:

  • 加密算法;

  • 用于加密算法的秘密信息;

  • 秘密信息的分布和共享;

  • 使用加密算法和秘密信息以获得安全服务所需的协议

1.3 密码学基本概念

术语

英文

定义

明文

Plaintext

原始可读的信息,加密前的数据

密文

Ciphertext

明文经过加密变换后的不可读数据

加密

Encryption

将明文变换为密文的过程

解密

Decryption

将密文恢复为明文的过程

密钥

Key

控制加密/解密算法的秘密参数

密码算法

Cryptographic Algorithm

用于加密和解密的数学函数/规则

一个完整的密码体制 {P, C, K, E, D}由五个部分组成:

  • P:明文空间(所有可能明文的集合)

  • C:密文空间(所有可能密文的集合)

  • K:密钥空间(所有可能密钥的集合)

  • E:加密算法集合

  • D:解密算法集合

密码学的两条分支(盾和矛):

分支

英文

核心任务

主要工作

密码编码学

Cryptography

设计密码系统

构造安全的加密/认证算法

密码分析学

Cryptanalysis

破译密码系统

研究攻破密码系统的方法

密码学中有一条重要的Kerckhoffs原则:密码系统的安全性不应依赖于算法的保密,而应完全依赖于密钥的保密。即算法公开,密钥保密。

密码体制的分类

1. 按密钥使用方式分类

类型

特征

特点

对称密码

加密密钥 = 解密密钥

速度快、密钥分发困难

非对称密码

加密密钥 ≠ 解密密钥

速度慢、解决密钥分发问题

2. 按明文处理方式分类

类型

名称

处理方式

分组密码

Block Cipher

将明文分成固定长度的组,逐组加密

流密码

Stream Cipher

逐位/逐字节加密,生成密钥流与明文异或

密码分析攻击类型

都已知加密算法和截获的部分密文,攻击难度由上到下依次降低:

攻击类型

已知信息

唯密文攻击 (Ciphertext-only)

仅密文

已知明文攻击 (Known-plaintext)

若干明文-密文对

选择明文攻击 (Chosen-plaintext)

可自由选择明文获取密文

选择密文攻击 (Chosen-ciphertext)

可自由选择密文获取明文

而密码体制的安全性一般从如下两个方面考虑:

  • 无条件安全(理论安全),无论如何破解都无法解密密文,即使无限计算资源也无法破译(Shannon指出,密钥至少和明文一样长,即一次一密,实现极其困难)。

  • 计算安全(实际安全),破译代价超过被加密信息的价值或破译所花时间超过信息的有用期。在现有/可预见计算能力下,破译所需时间/资源不可行。

1.4 古典密码

古典密码:计算机出现前的密码技术,基于字符替换和置换,现已不安全,但蕴含密码学的基本思想。

替换密码(Substitution Cipher)

1.单表替换密码 建立明文字母到密文字母的一一对应映射表,26个字母的任意排列(置换)

凯撒密码(Caesar Cipher) 加密:C = (P + k) mod 26;解密:P = (C - k) mod 26 明文: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 密文: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 明文:ATTACK AT DAWN 密文:DWWDFN DW GDZQ

仿射密码(Affine Cipher) 加密C = (a·P + b) mod 26,密钥为数对 (a, b),其中 gcd(a, 26) = 1。解密:

乘法逆元求解可参考下述内容:

扩展欧几里得算法与乘法逆元

扩展欧几里得算法(Extended Euclidean Algorithm)是欧几里得算法的增强版本,它在计算两个整数 a、b 的最大公约数 gcd(a,b) 的同时,还能求出一组整数 x、y(称为贝祖系数),满足:

a⋅x+b⋅y=gcd(a,b)

当 a 与模数 m 互质(gcd(a,m)=1)时,上式可写为:

a⋅x+m⋅y=1

在模 m 意义下,m⋅y≡0,因此有:

a⋅x≡1(modm)

此时 x 就是 a 在模 m 下的乘法逆元。

欧几里得算法回顾

辗转相除的核心公式:

gcd(a,b)=gcd(b,amodb)

不断用余数替代较大的数,直到余数为 0,最后一个非零余数即为 gcd(a,b)。

扩展:回代求系数

以 a=240, b=46 为例:

  • 240=46×5+10

  • 46=10×4+6

  • 10=6×1+4

  • 6=4×1+2

  • 4=2×2+0⇒ gcd=2

从倒数第二步开始,将余数表示成最初的线性组合:

2=6−4×1=6−(10−6×1)=2×6−10=2(46−10×4)−10=2×46−9×10=2×46−9(240−46×5)=−9×240+47×46

得到 x=−9, y=47,满足 240⋅(−9)+46⋅47=2。

求乘法逆元

示例:求7在模26下的乘法逆元。

 此例中即5:(-3,1)、2: (4,-1)、1:(-11,3)

乘法逆元是一维线性变换的逆; 矩阵的逆是 n维线性变换的逆。

2.多表替换密码

置换密码(Transposition/Permutation Cipher)

参考Transposition_cipher

以栅栏密码(Rail Fence cipher)为例展示一下:

比如对明文:WE ARE DISCOVERED FLEE AT ONCE:

W . . . E . . . C . . . R . . . L . . . T . . . E . E . R . D . S . O . E . E . F . E . A . O . C . . . A . . . I . . . V . . . D . . . E . . . N . .

经过上述加密后就变成:

WECRL TEERD SOEEF EAOCA IVDEN(这里是人为拆分成了五个便于阅读)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值