学习149

一. 密码技术基础
密码技术是为了维护数据安全,其目标主要包括机密性、真实性、完整性、不可否认性、可用性、可控性
密码学(Cryptology)主要,包括:
密码编码学:研究如何进行数据加密和解密(保证数据的机密性),以及防止和发现数据的伪造、篡改(保证数据的真实性、完整性、不可否认性)
密码分析学:分析发现密码算法的弱点、缺陷,破解密码算法或者破译密码数据

二. 密码算法
概述
设:M是可能明文的集合(明文空间)

C是可能密文的集合(密文空间)
K是一切可能密钥构成的集合(密钥空间)
E为加密算法,它对密钥空间的任一密钥k都能进行加密运算,即Ek:  M->C
D为解密算法,它对密钥空间的任一密钥都能进行解密运算,即Dk:  C->M
则密码算法具有如下性质:

(1)Dk(Ek(x))=x,x属于M,k属于K
(2)密码破译者获得密文c=Ek(x)后无法在有效的时间内破解出密钥k和/或明文x

数论基础
定义1. 设n为大于1的正整数,a为任一整数,a可表示为a=kn +r,0≤ r<n,则记为:a mod n = r,称r为a的模n余数

注意:负数的模n余数是正整数!
例,若 –n<a<0,则a mod n = n+a(即 a mod n = a + kn mod n)

定义2. 设n为大于1的正整数,a、b为任意整数,如果a mod n = b mod n,即a、b有相同模n余数,则称a、b模n同余
表示为 a ≡ b (mod n)
a、b模n同余当且仅当n整除a-b,或者说(a-b)modn=0
定义 3. n为大于1的正整数,a、b为整数,则a+b mod n,a-b mod n ,a*b mod n,ab mod n分别称为整数的模n加法、减法、乘法和乘方(幂)

注意:没有除,但有逆!

设n为大于1的正整数,a、b为任意整数,mod算子的运算优先级最低,则

  1. a + b mod n = (a mod n) + (b mod n) mod n

  2. a – b mod n = (a mod n) + (–b mod n) mod n = (a mod n) – (b mod n) mod n

  3. ab mod n = (a mod n)*(b mod n) mod n

  4. a mod n = a + kn mod n = a – kn mod n

  5. a + (b mod n) mod n = a+b mod n

  6. a*(b mod n) mod n = a*b mod n

  7. (a mod n)p mod n = ap mod n
    结论:

    对于同一个模n,只要保存最外层的mod n算子,给加、减、乘、乘方运算中的数加上或去掉mod n算子,不影响结果

定义 4. 设n为大于1的正整数,a、b为任意整数,若a+b mod n= 0,则b称为a的模n加法逆,记为-a
注意:a的模n加法逆不止一个,它们相差kn
定义 5. 设n为大于1的正整数,a、b为任意整数,若 ab mod n= 1,则b称为a的模n乘法逆,记为a-1,即a*a-1 mod n=1

注意:a的模n乘法逆不止一个,它们相差kn

定义 6. 设p是大于1的正整数,若p只能分解为1和自己的乘积,则p称为素数
定义 7. 设a和b是大于1的正整数, 且a和b的最大公因子是1,即 gcd(a,b)=1,则称为a和b互素
定理 1. 设a和n是大于1的正整数,且a和n互素,则a存在模n乘法逆a-1

推理 1. 设n是素数,则任何非kn整数a存在模n乘法逆a-1

对称秘钥密码
加密和解密使用同一个密钥

对称密钥数字加密分为流加密和分组加密

(1)流密码
用一个伪随机密钥流(pseudorandom keystream)与数据流 (按位或按字节)进行异或(XOR)操作

发送方,用一个伪随机密钥流对明文数据进行异或(XOR)操作(加密)
接收方,用同一个伪随机密钥流对密文数据进行异或(XOR)操作(解密)
根据伪随机密钥流生成方式的不同分为
同步流加密(synchronous stream cipher)
自同步流加密(self-synchronous stream cipher)或异步流加密(asynchronous stream cipher)

(2)分组密码

DES算法
随着计算技术的发展,DES越来越不能满足安全要求,特别是其密钥长度56位太短,使得可以通过蛮力攻击(brutal force attack)破解密码,通过应用三重DES算法、使用超过56位的密钥提高DES的安全,到目前为止,AES是安全的,尚未有有效的攻击
3DES的四种模式
DES-EEE3,使用三个不同的DES密钥顺序进行三次加密变换,解密是逆过程,密钥长度168位
DES-EDE3,加密时使用三个不同的DES密钥依次进行加密-解密-加密变换,解密是逆过程,密钥长度168位
DES-EEE2,进行三次加密变换,其中第一次、第三次变换的密钥相同,解密是逆过程,密钥长度112位

DES-EDE2,加密时依次进行加密-解密-加密变换,其中第一次、第三次变换的密钥相同,解密是逆过程,密钥长度112位

对称密码特点

算法实现简单
速度快
密钥短

密钥分发难

公钥密码体系
Public Key Cryptography

涉及一对密钥,一个可公开,称为公钥(Public Key),一个由拥有者安全保存,称为私钥(Private Key),公钥用于数据加密或签名验证,私钥用于数据解密或数字签名,也称非对称密钥密码体系,Asymmetric Key Cryptography

单向门限函数:单向陷门函数f(x)满足如下三个条件

给定x,计算y=f(x)是容易的(加密)
给定y,计算x使得y=f(x)是困难的(破解)
存在δ,已知δ时对给定的任何y,若相应的x存在,则计算x使得y=f(x)是容易的(解密, δ是密钥)
Diffie-Hellman算法
素数的原根(Primitive Root):素数p的一个原根是一个正整数g^(i)mod p(i=1,2,3…p-1)不同,且包含了1到p-1的所有整数;

若g是素数p的一个原根,则:

(1)g,g mod p、g2 mod p,…,gp-1 mod p生成了{1,2,…,p-1};

(2)对应任意整数1 ≤ b ≤ p-1,存在一个唯一的1 ≤ i ≤ p-1,使得b=gi mod p

定理. 对于任意素数p存在原根(一个或多个)

离散对数:若n为大于1的正整数,m为整数,若b = m^i mod n,则b称为m的模n下的 i次幂(i次方),i称为b的以m为基数的模n下的离散对数
离散对数难题
对于函数y=m^x mod n,已知m、n、x计算y是容易的,反之,已知m、n、y计算x是困难的
(y, p, g)是Bob的私钥,(Z, p, g)是Bob的公钥,(x, p, g)是Alice的私钥,(W, p, g)是Alice的公钥,通信双方首先将各自的公钥传输给对方,然后进行运算得到K。

ECC算法

RSA算法
数学基础:数论中的欧拉(Euler)定理或费马小定理(Fermat’s little theorem)和大整数的因子分解难题
1)Fermat’s little theorem
若p为素数,则对于任意整数a,有
a^p mod p = a mod p
若进一步地,如p不能除a(即a≠ kp),则有
a^(p-1) mod p = 1
2)欧拉定理

如果a和n是互素的正整数,则a^φ(n) mod n = 1,φ(n)是欧拉函数

若n是素数,则φ(n)=n-1, 若n=pq,p、q是互异的素数,则φ(n)=(p-1)(q-1)

3)若p、q是两个互异的素数,n=pq,0≤m<n,则对于任意正整数k,根据欧拉定理或Fermat’s little theorem可导出如下结果:m^(kφ(n)+1 )mod n = m, 其中, φ(n)=(p-1)(q-1)
4)已知两个互异的大素数p、q,计算n=pq是容易的;反之,若已知n是两个素数p、q的乘积,分解出p、q却是很困难的
算法描述:

1)选择两个互异的大素数p和q,计算n=pq,计算φ(n)=(p-1)(q-1)
2)选择整数 1<e<φ(n)使得gcd(e, φ(n))=1 (互素)
3)计算得到e的模φ(n)乘法逆元d,即
e*d mod φ(n) =1,其中, 1<d< φ(n)
4)公钥是P=(e, n),私钥是S=(d, n, p, q)
以上(1)到(4)由私钥拥有者完成
5)对于明文m, 0≤m<n
加密运算:c=m^e mod n (使用公钥)

解密运算:m=c^d mod n (使用私钥)

算法有效性:
d是e的模φ(n)乘法逆元,ed mod φ(n)=1,故存在一个正整数k使得ed=kφ(n)+1
c^d mod n = (m^e mod n)d mod n = m^(ed) mod n
= m^(kφ(n)+1 )mod n = m
6)将使用e、d的顺序换一下,结果同样正确(用于数字签名)
加密运算:c=m^d mod n (使用私钥d)

解密运算:m=c^e mod n (使用公钥e)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值