网络空间安全-密码学
一、攻击/安全威胁
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,b∈G,a∗b∈G
- 结合性: ∀ a , b , c ∈ G , 有 ( a ∗ b ) ∗ c = a ∗ ( b ∗ c ) ∀a,b,c∈G ,有 (a*b)* c = a* (b*c) ∀a,b,c∈G,有(a∗b)∗c=a∗(b∗c)
- 单位元: ョ e ∈ G , ∀ a ∈ G , 有 e ∗ a = a ∗ e = a ョe∈G,∀a ∈G,有e*a = a*e = a ョe∈G,∀a∈G,有e∗a=a∗e=a
- 逆元: ∀ a ∈ G , ョ a − 1 ∀a ∈G , ョa^{-1} ∀a∈G,ョa−1使得 a ∗ a − 1 = a − 1 ∗ a = e a*a^{-1} = a^{-1}*a = e a∗a−1=a−1∗a=e
- 交换性: a ∗ b = b ∗ a a*b= b*a a∗b=b∗a
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+b≡c(modp)
- F p F_p Fp的乘法是 a × b ≡ c ( m o d p ) a×b≡c(\mod p) a×b≡c(modp)
- F p F_p Fp的除法是 a ÷ b ≡ c ( m o d p ) a÷b≡c(\mod p) a÷b≡c(modp),即 a × b − 1 ≡ c ( m o d p ) a×b^{-1}≡c (\mod p) a×b−1≡c(modp), b − 1 b-1 b−1也是一个 0 0 0到 p − 1 p-1 p−1之间的整数,但满足 b × b − 1 ≡ 1 ( m o d p ) b×b-1≡1 (\mod p) b×b−1≡1(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,p−1]
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 a、b
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 C1−kC2即可得到 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,Q∈G,都有 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 p、q使得 P = g p 和 Q = g q P=g^p和Q=g^q P=gp和Q=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 master−key,其中系统参数包含了对有限明文空间 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 params,master−key以及随机的身份 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,m∈M,返回密文 c ∈ C c \in C c∈C;
(4)Decrypt: 输入 p a r a m s , I D , c ∈ C params,ID,c \in C params,ID,c∈C以及私钥 d d d,返回明文 m ∈ M m \in M m∈M
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 mk∈Zp,计算公钥 P k = g m k ∈ G P_k=g^{mk} \in G Pk=gmk∈G;
(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)mk∈G,其中 H H H为映射到群内元素的哈希算法;
(3)Encrypt:选取 m ∈ M m \in M m∈M,随机数 r ∈ Z p ∗ r \in Z_p^* r∈Zp∗,计算 < 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,...,n−10,1,2,...,n−1),那么就被称为是模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(k∈N), 这些模 5 5 5余 3 3 3的数。我们把满足同余关系的所有整数看作一个同余等价类。
网络空间安全-密码学相关推荐
- 2018年全国中高等院校教师“Python编程、应用及华为大数据” 、“网络空间安全”、“区块链”培训班...
关于举办2018年全国中高等院校教师"Python编程.应用及华为大数据" ."网络空间安全"."区块链"培训班通知 全国各中高等院校计算机 ...
- 网络空间安全基础(待续)
网络空间安全概述 基本概念 1)计算机安全:通常采取适当行动保护数据和资源,使它们免受偶然或恶意动作的伤害: 2)数据的完整性:数据所具有的特性,即无论数据形式做何变化,数据的准确性和一致性均保持不变 ...
- 网络空间安全未来就业前景和就业方向,看着六点
网络空间安全未来就业前景和就业方向,看着六点 一.网络空间安全行业发展前景 做为新兴专业,现在是一级学科了,政府在全力支持,而且现在贸易战争.行动也是有点了不起,一不小心就盗取了各种各样国家秘密,更别 ...
- 【历史上的今天】10 月 3 日:网络空间独立宣言之父诞生;3D 打印概念面世;eBay 收购 PayPal
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 3 日,中国人民大学在 1950 年的今天正式成立,这是我国以社会科学.人文科学和经济管理 ...
- nisp学习-1.1信息安全与网络空间安全
信息与信息安全 信息安全 信息安全,ISO(国际标准化组织)的定义为:为数据处理系统建立和采用的技术.管理上的安全保护,为的是保护计算机硬件.软件.数据不因偶然和恶意的原因而遭到破坏.更改和泄露. 进 ...
- 【211南京理工大学】新增网络空间安全学院,学硕专硕都招!
南京理工大学是一所211大学,计算机学科评估B+,软件工程学科评估B,在211大学中排名靠前,计算机学科实力还不错. 前段时间,南京理工大学公布了今年考研的招生目录: 图片来源:南京理工大学官网 ht ...
- 网络空间安全导论实践报告
网络空间安全导论实践报告 作品内容摘要: 现代密码技术已经延伸到了信息安全诸多领域,例如身份认证,数据完整性检测等,是信息安全的基础与核心.随着密码学在网络信息系统的广泛应用,密码技术的标准化和管理的 ...
- 网络空间安全导论-第一章习题
网络空间安全导论-第一章习题 1.网络空间安全有哪些定义? 2.简述网络安全空间的技术架构. 3.列举一些你身边遇到或发现的网络安全问题,试分析其中的原因,并说说有哪些防范措施. 1.网络空间安全有哪 ...
- 北航计算机学院网络安全班,2021年北航网络空间安全学院网络空间安全专业目录分数线参考书真题及考研经验...
原标题:2021年北航网络空间安全学院网络空间安全专业目录分数线参考书真题及考研经验 考研就是人生的第二次高考,是再一次改变自己命运的机会,本文将系统地为您介绍北京航空航天大学网络空间安全学院网络空间 ...
最新文章
- 2019年财政收支分析_2019年CPI走势预测与分析
- GB28181协议支持的H264的PS封装实现
- 中文设置_虾皮shopee平台怎么变成中文呢?怎么设置成中文
- 缓存redis的实现思路
- python中next(reader)_Python错误self.reader.next()
- 将数据转化成字符串时:用字符串的链接 还是 StringBuilder
- Qt:Qt使用WM_COPYDATA消息进行进程通信
- Linux中环境变量文件及配置
- 2019百度之星 	Polynomial
- linux全符号链接是什么,Linux 下的符号链接到底是个什么鬼?
- Net::SSH::Perl 包 与 Net::OpenSSH 包的 性能对比代码
- java连接云服务Hadoop伪分布式错误:Call From LAPTOP-14BPR3NI/192.168.1.2 to node1:9000 failed on connection
- Hibernate【映射】知识要点
- 技术人最基本投资建议
- Protobuf 了解
- html css小圆圈,jquery+css3实现会动的小圆圈效果
- 微型计算机标致寄存器实验报告,微机原理实验报告(2013).doc
- yii2框架-理解yii2的架构(一)
- 用python绘制心形_python绘制心形图像-Go语言中文社区
- cmd批量打开网页和关闭网页的批处理代码
热门文章
- 2022年11月14日-202211月20日学习周报
- 抖音短视频怎么做?3大要点助你玩转抖音
- altium designer创建圆形实心填充
- TCP报文中的SYN,FIN,ACK,PSH,RST,UR
- fastadmin列表页展示分类名称通用搜索按分类名称搜索
- C语言-己有变量定义和西数调用语句,输入字符型a ,整型n 利用函数调用语句mypow(a,n);用来求a的n次方
- char* 和char[]的区别
- 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)
- 微软必应词典的调查与研究
- 《权威指南》笔记 - 9.1-9.2 类和原型、构造函数