网络空间安全-密码学

在这里插入图片描述

一、攻击/安全威胁

1. Sybil Attack(女巫攻击)

  • 在对等网络中,节点通常具有多个身份标识,通过控制系统的大部分节点来消弱冗余备份的作用。
  • 在P2P网络中,因为节点随时加入退出等原因,为了维持网络稳定,同一份数据通常需要备份到多个分布式节点上,这就是数据冗余机制。女巫攻击是攻击数据冗余机制的一种有效手段。

2. Kerckhoffs原理

  • 即使除密钥外的整个系统的一切都是公开的,这个密码体制也必须是安全的。尤其是即使攻击者知道系统的加密算法和解密算法,此系统也必须是安全的。

二、密码算法

1. 哈希算法

加密哈希算法 Cryptographic Hash Algorithms(例如MD5, SHA-1)
感知哈希算法 Perceptual Hash Algorithm
  • aHash:平均值哈希。速度比较快,但是常常不太精确
  • pHash:感知哈希。精确度比较高,但是速度方面较差一些
  • dHash:差异值哈希。精确度较高,且速度也非常快
汉明距离 Hamming distance
  • 在信息论中,两个等长字符串之间的汉明距离(英语:Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。
  • 汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是1的个数,所以11101的汉明重量是4。

2. 椭圆曲线加密ECC

椭圆曲线离散对数问题

(elliptic curve discrete logarithm problem ECDLP) 远难于离散对数问题 (discrete logarithm problem) ,椭圆曲线密码系统的单位比特强度要远高于传统的离散对数系统。因此在使用较短的密钥的情况下,ECC(elliptic curve discrete) 可以达到于DL系统相同的安全级别。这带来的好处就是计算参数更小,密钥更短,运算速度更快,签名也更加短小。因此椭圆曲线密码尤其适用于处理能力、存储空间、带宽及功耗受限的场合。

椭圆曲线

(1)定义

  • 一条椭圆曲线是在射影平面上满足威尔斯特拉斯方程(Weierstrass) 所有点的集合

(2)形式
Y 2 Z + a 1 X Y Z + a 3 Y Z 2 = X 3 + a 2 X 2 Z + a 4 X Z 2 + a 6 Z 3 Y^2Z+a_1XYZ+a_3YZ^2=X^3+a_2X^2Z+a_4XZ^2+a_6Z^3 Y2Z+a1XYZ+a3YZ2=X3+a2X2Z+a4XZ2+a6Z3

(3)特点

  • 椭圆曲线方程是一个齐次方程
  • 曲线上的每个点都必须是非奇异的(光滑的),偏导数 F x ( x , y , z ) F_x(x,y,z) Fx(x,y,z) F y ( x , y , z ) F_y(x,y,z) Fy(x,y,z) F z ( x , y , z ) F_z(x,y,z) Fz(x,y,z)不同时为 0 0 0
  • 圆曲线的形状,并不是椭圆的。只是因为椭圆曲线的描述方程,类似于计算一个椭圆周长的方程故得名

(4)一般方程
y 2 = x 3 + a x + b ; 4 a 3 + 27 b 2 ≠ 0 y^2=x^3+ax+b;4a^3+27b^2 \ne 0 y2=x3+ax+b;4a3+27b2=0
(5)椭圆曲线示例
在这里插入图片描述

(6)非椭圆曲线示例
在这里插入图片描述

3. 椭圆曲线阿贝尔群

椭圆曲线加法运算:

给定点A和点B,C’点为AB延长线与曲线的交点,做其对称点C,那么A+B=C
在这里插入图片描述
计算A+A,做A的切线与曲线上B相交,B的对称点C即为A+A结果,A+A=C
在这里插入图片描述

交换群(阿贝尔群)性质

在数学中,群是一种代数结构,由一个集合以及一个二元运算所组成。已知集合和运算(G,*) 如果是群则必须满足如下要求:

  • 封闭性: ∀ a , b ∈ G , a ∗ b ∈ G ∀a,b∈G,a*b ∈ G a,bGabG
  • 结合性: ∀ a , b , c ∈ G , 有 ( a ∗ b ) ∗ c = a ∗ ( b ∗ c ) ∀a,b,c∈G ,有 (a*b)* c = a* (b*c) a,b,cG(ab)c=a(bc)
  • 单位元: ョ e ∈ G , ∀ a ∈ G , 有 e ∗ a = a ∗ e = a ョe∈G,∀a ∈G,有e*a = a*e = a eGaGea=ae=a
  • 逆元: ∀ a ∈ G , ョ a − 1 ∀a ∈G , ョa^{-1} aG,a1使得 a ∗ a − 1 = a − 1 ∗ a = e a*a^{-1} = a^{-1}*a = e aa1=a1a=e
  • 交换性: a ∗ b = b ∗ a a*b= b*a ab=ba

4. 有限域椭圆曲线

椭圆曲线是连续的,并不适合用于加密;所以,我们必须把椭圆曲线变成离散的点,我们要把椭圆曲线定义在有限域上。
我们给出一个有限域 F p F_p Fp

  • F p F_p Fp中有 p p p p p p为质数)个元素v0,1,2,…, p-2,p-1$
  • F p F_p Fp的加法是 a + b ≡ c ( m o d    p ) a+b≡c(\mod p) a+bc(modp)
  • F p F_p Fp的乘法是 a × b ≡ c ( m o d    p ) a×b≡c(\mod p) a×bc(modp)
  • F p F_p Fp的除法是 a ÷ b ≡ c ( m o d    p ) a÷b≡c(\mod p) a÷bc(modp),即 a × b − 1 ≡ c ( m o d    p ) a×b^{-1}≡c (\mod p) a×b1c(modp) b − 1 b-1 b1也是一个 0 0 0 p − 1 p-1 p1之间的整数,但满足 b × b − 1 ≡ 1 ( m o d    p ) b×b-1≡1 (\mod p) b×b11(modp)
  • F p F_p Fp的单位元是 1 1 1,零元是 0 0 0
  • F p F_p Fp域内运算满足交换律、结合律、分配律

椭圆曲线 E p ( a , b ) E_p(a,b) Ep(a,b) p p p为质数, x , y ∈ [ 0 , p − 1 ] x,y∈[0,p-1] x,y[0,p1]

y 2 = x 3 + a x + b ( m o d    p ) y^2=x^3+ax+b(\mod p) y2=x3+ax+b(modp)

选择两个满足下列约束条件的小于 p p p的非负整数 a 、 b a、b ab

4 a 3 + 27 b 2 ≠ 0 ( m o d    p ) 4a^3+27b^2 \ne 0(\mod p) 4a3+27b2=0(modp)

在有限域上的椭圆曲线自然也是有其加法的,但是已经不是几何意义上的加法了
在这里插入图片描述
对于椭圆曲线上一点 G G G ,若存在最小的正整数 n n n ,使得 n G = O ∞ nG=O∞ nG=O ,则称 n n n G G G 的阶。对于有限域上的的所有点都是有阶的。

5. 椭圆曲线加密(ECC)

初始化

利用 E C C ECC ECC进行加密首先需要给出 p , a , b , G , n p,a,b,G,n p,a,b,G,n。其中:

  • p p p通常选取一个很大的素数以防止穷举
  • a a a b b b是椭圆曲线的参数
  • G G G为给定的椭圆曲线上的点
  • n n n G G G的阶

椭圆曲线加密正是利用了前面所说的给定自然数m计算 m G mG mG很容易而给定 m G mG mG的结果无法很快计算 m m m这一个性质。

ECC保密通信的算法
  • A l i c e Alice Alice选定曲线 E p ( a , b ) Ep(a,b) Ep(a,b),并在上面取一点G作为基点,以及选区私钥 k k k并计算公钥 K = k G K=kG K=kG;
  • A l i c e Alice Alice E p ( a , b ) , K , G E_p(a,b),K,G Ep(a,b),K,G发送给 B o b Bob Bob;
  • B o b Bob Bob接收消息之后首先将信息m编码到点 M M M,并产生一个随机整数 r ( r < n ) r(r < n) r(r<n);
  • B o b Bob Bob计算 C 1 = M + r K C_1=M + rK C1=M+rK C 2 = r G C2 = rG C2=rG并将 C 1 , C 2 C_1,C_2 C1,C2发送给 A l i c e Alice Alice;
  • A l i c e Alice Alice计算 C 1 − k C 2 C_1−kC_2 C1kC2即可得到 M M M,解密得到消息 m m m

6. Bilinear Groups(双线性对映射)

性质

在这里插入图片描述
(1) 一般性质

  • a. G 1 = G 2 G1=G2 G1=G2时,称为对称,对于 ∀ P , Q ∈ G \forall P,Q \in G P,QG,都有 e ( P , Q ) = e ( Q , P ) e(P,Q)=e(Q,P) e(P,Q)=e(Q,P);
  • b.因为对于 G G G中的一个生成元 g g g,总存在整数 p 、 q p、q pq使得 P = g p 和 Q = g q P=g^p和Q=g^q P=gpQ=gq成立;
  • c.因此有 e ( P , Q ) = e ( g p , g q ) = e ( g , g ) p q = e ( g , g p q ) = e ( g q , g p ) = e ( Q , P ) e(P,Q) = e(g^p,g^q) = e(g,g)^{pq}= e(g,g^{pq})= e(g^q, g^p) = e(Q,P) e(P,Q)=e(gp,gq)=e(g,g)pq=e(g,gpq)=e(gq,gp)=e(Q,P)

(2)乘法性质

  • e ( x , y z ) = e ( x , y ) e ( x , z ) e(x,yz)=e(x,y)e(x,z) e(x,yz)=e(x,y)e(x,z)
  • e ( x , y / z ) = e ( x , y ) e ( x , z ) − 1 = e ( x , y ) / e ( x , z ) e(x,y/z)=e(x,y)e(x,z)^{-1}=e(x,y)/e(x,z) e(x,y/z)=e(x,y)e(x,z)1=e(x,y)/e(x,z)

7. BLS Short Signature Scheme

(Boneh, Lynn, and Shacham 短签名机制)

在这里插入图片描述
Verify(验证): e ( g , σ ) = e ( g , H ( m ) x ) = e ( g , H ( m ) ) x = e ( g x , H ( m ) ) = e ( P K , H ( m ) ) e(g,\sigma) = e(g,H(m)^x) = e(g,H(m))^x = e(g^x,H(m)) = e(PK,H(m)) e(g,σ)=e(g,H(m)x)=e(g,H(m))x=e(gx,H(m))=e(PK,H(m))

8. Identity Based Cryptosystems

IBE算法,包括四个过程Setup,Extract,Encrypt,Decrypt:

(1) Setup: 安全参数 k k k作为输入,输出系统参数 p a r a m s params params和主密钥 m a s t e r − k e y master-key masterkey,其中系统参数包含了对有限明文空间 M M M和密文空间 C C C的描述;系统参数是公开的,主密钥只有 PKG (Private Key Generator)拥有;
(2)Extract: 将 p a r a m s , m a s t e r − k e y params,master-key paramsmasterkey以及随机的身份 I D ∈ { 0 , 1 } ∗ ID \in \{0,1\}^* ID{0,1}作为输入,返回私钥 d d d,ID是一个随机的字符串被视作公钥, d d d是对应的私钥;
(3)Encrypt: 输入 p a r a m s , I D , m ∈ M params,ID,m \in M params,ID,mM,返回密文 c ∈ C c \in C cC
(4)Decrypt: 输入 p a r a m s , I D , c ∈ C params,ID,c \in C params,ID,cC以及私钥 d d d,返回明文 m ∈ M m \in M mM

IBE算法具体设计

2001年, B o n e h Boneh Boneh F r a n k l i n Franklin Franklin正式给出IBE的定义,安全模型,并应用双线性对( B i l i n e a r M a p Bilinear Map BilinearMap)构造了一个安全的 I B E IBE IBE方案:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通俗方案

(1)Setup:根据安全参数 k k k选取循环群 G G G,生成元 g g g,阶为素数 p p p,第三方(KGC)选取主密钥 m k ∈ Z p mk \in Z_p mkZp,计算公钥 P k = g m k ∈ G P_k=g^{mk} \in G Pk=gmkG
(2)Extract:用户将自己的 I D ID ID作为公钥发送给第三方,第三方返回其私钥 S I D = H ( I D ) m k ∈ G S_{ID}=H(ID)^{mk} \in G SID=H(ID)mkG,其中 H H H为映射到群内元素的哈希算法;
(3)Encrypt:选取 m ∈ M m \in M mM,随机数 r ∈ Z p ∗ r \in Z_p^* rZp,计算 < c 1 = g r , c 2 = e ( H ( I D ) r , P k ) m > <c_1=g^r,c_2=e(H(ID)^r,P_k)m> <c1=gr,c2=e(H(ID)r,Pk)m>
(4)Decrypt:
m = c 2 e ( S I D , c 1 ) m=\frac{c_2}{e(S_{ID},c_1)} m=e(SID,c1)c2

9. Certificateless Public Key Cryptography

基本介绍

(1)定义:无证书加密是IBE方案的一种变体,目的是为了解决IBE方案面临的密钥托管(密钥由凭证管理中心或者KGC生成)的问题
(2)方案:传统的密钥生成过程从KGC和用户分开,KGC首先生成一个密钥对,此时的私钥只是系统的部分私钥,然后由用户随机生成最终的密钥

10. 剩余系

如果一个剩余系中包含了这个正整数 n n n 所有可能的余数(一般地,对于任意正整数 n n n,有 n n n 个余数: 0 , 1 , 2 , . . . , n − 10 , 1 , 2 , . . . , n − 1 0,1,2,...,n-10,1,2,...,n−1 0,1,2,...,n10,1,2,...,n1),那么就被称为是模n的一个完全剩余系,记作 Z n Z_n Zn;而简化剩余系就是完全剩余系中与n互素的数的那些元素,记作 Z n ∗ Z_n^* Zn
Z n Z_n Zn里面的每一个元素代表所有模 n n n意义下与它同余的整数。例如 n = 5 n=5 n=5时, Z 5 Z_5 Z5的元素 3 3 3实际上代表了 3 , 8 , 13 , 18 , . . . . , 5 k + 3 ( k ∈ N ) 3, 8, 13, 18,....,5k + 3(k \in N) 3,8,13,18,....,5k+3(kN), 这些模 5 5 5 3 3 3的数。我们把满足同余关系的所有整数看作一个同余等价类。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值