计算机网络与通信技术-数据加密
2013-01-01 22:04
393 查看
数据加密
加密体制:对称密钥体制(DES)和非对称密钥体制
一.Elgamal加密算法(基于离散对数的加密方法)
1.公钥与密钥的产生
选择一个素数P(很大)和一个整数g,再秘密选择一个整数x(私钥),其中需要g和x均小于P.
计算:y=g^x mod P
则y为公钥(加密密钥),x为私钥(解密密钥)。
公开: P, g,y
2.加密:
设明文M,(M看成一个整数且M<P),发送方选择一个随机数k(k与P-1互素),
计算: a=g^k mod P
b=y^k * M mod P
则(a , b)为密文(注:密文长度正好是明文的两倍)。
3.解密:
M=b/a^x mod P
例:
Alice Bob
Pka (Alice的公钥) Pkb
Ska (Alice的私钥) Skb
1.A用Pkb加密——>B用Skb解密。
2.A用Ska签名——>B用Pka验证。
(加密要用对方的公钥,签名要用自己的私钥)
二.数字签名
满足三个条件:
能够核实签名者;签名者不能抵赖;不能篡改签名报文。
基本原理:
三.RSA数字签名
设:签名者分别有一个公钥e和私钥d,n = p*q(其中p和q为两个很大的素数),H为哈希函数,m为代签的报文。
Hash函数(单向函数),把任意长度的输入变成固定长度的输出,产生消息摘要
1)产生签名 签名者计算 M = H(m),S = M^d mod n,则(M,S)为m的签名。 将(m,S )发送给验证者(接收方)
2)验证签名 M' = S^e mod n M = H(m) 若M' = M,则签名有效,否则无效。
分析:①Trudy若伪造签名:
A:则必须知道d
B:将m->m',则H(m) = H(m'),但H发生冲突的概率很小。
② 哈希函数H的引入,减少了运算量。(但同时安全性相应降低)。
四.Elgamal 数字签名
设签名者的私钥为x,相应的公钥为y = g^x mod p
1)产生签名 签名者选择一随机数k(k<p且k与p-1互素)
计算: r = g^k mod p
解同余方程:g^m≡ y^r *r^s mod p (1)
gm ≡g^(xr)* g^(ks) mod p (2)
m≡ xr + ks mod (p-1) (3)
得到 S 将(m , r , s )发送给验证者。
2)验证签名 验证者验证方程:g^m ≡ y^r*r^s mod p
若上式成立,则签名有效,否则无效。
3)安全性分析 Trudy 试图恢复签名者的私钥x
方式1:Trudy截取L个签名报文(mi,ri,si)i = 1.2.......L。由此根据(3)式,将得到由L个方程组成的方程组:
M1 ≡ xr1 + k1s1 mod (p-1)
M2 ≡ xr2 + k2s2 mod (p-1)
。。。。。。。。。。。。。。。。。。。。。。。。。。
ML ≡ xrL + kLsL mod (p-1)
上式方程组中只有(x , k1 , k2 , ....kL)为未知数,由于每次签名都选择不同的ki,所以上述方程组中有L个方程组成,却包含L+1个未知数,无论如何都解不出x的值,故此攻击方式无效。
(故Elgamal尽量选择不同的随机数k,避免短时间内使用重复的k值。)
方式二:Trudy试图根据y=g^x mod P求解x。会遇到离散对数求解的困难。
方式三:Trudy试图假冒签名,给定m,Trudy试图找到r和s,使其满足签名验证方程
g^m ≡ y^r r^s mod p 如果随即选择k,计算出r = g^k mod p,再由g^m≡ y^r *r^s mod p 计算S,但这等价于离散对数求解问题。
g^m≡y^r r^s mod p A≡B r^s mod p AB-1≡ r^s mod p
如果先固定S,再计算下式求r
A≡ r^s*y^r mod p
但其难度不低于离散对数求解,若同时求r和s,但依照目前的研究成果,尚无有效法。
五 身份认证
1.含义:⑴ 仅证实通信连接双方的真实身份,而不与其后要传输的数据联系,其安全性有限;⑵ 不仅证实通信双方的真实身份,并为后继传输数据建立了安全通道,具有更高安全性。
2.简单的身份认证协议:
设Alice和Bob共享一个密钥KAB
反射攻击:利用截取对方的有用信息来攻击对方
挫败反射攻击的方法:Alice和Bob分别从不同的整数集合中选择随机数,例如Alice选择奇数,Bob选择偶数
本协议没有考虑到如何产生和管理共享会话密钥:1)每个用户产生和管理n-1个会话密钥2)难以做到“一次一密“
3.基于公钥证书的认证协议:由公钥和私钥产生共享会话密钥
基于公钥的认证:PKI(公钥基础设施)通过颁发离线公钥证书(即数字证书)
CA:证书颁发机构(可信的第三者)
A、B:表示两个用户Alice、Bob
1.申请公钥证书:用户提交自己的标识、公钥、用户名及身份等信息。以及自己的公钥(也可由CA产生)
2.CA产生和颁发公钥证书(数字证书):
核实用户的真实身份;产生公钥证书;通过安全信道颁发:
1)直接发给Alice 2)存放在证书库中
3.Bob认证Alice:
Alice将公钥证书发送给B,B用CA的公钥验证证书,同理Alice也可以认证Bob。
4.产生会话密钥:
说明:1)产生Kab(或者命名Ks)是为了节省运算量 2)协议不是唯一的
1.RSA算法
(1)秘密的选取两个大素数P和Q(>=2^512);
(2)计算n=p*q和z=(p-1)(q-1);(欧拉方程)
(3)秘密地选择一个与z互素的数d作为解密私钥(密钥)
(4)解同余方程(e*d)mod z =1;解得e作为加密密钥(公钥),公开(e,n)
(5)加密:c = P^e mod n
(6)解密:P = c^d mod n
P为明文,C为密文
2.椭圆曲线密钥算法(ECC)
(1)数学定义:由威尔斯特拉斯方程:y^2+axy+by=x^3+cx^2+dx+e所确定的平面曲线称为椭圆曲线(关于x轴对称)称为椭圆曲线E;满足上述方程的(x,y)称为椭圆上的点,则在E上还定义一个无穷点(零点)0;
对有限域Fp,可通过一系列变换将上述方程简化为y^2=x^3+ax+b
ECC感兴趣的是模P椭圆群,即给定一个素数P,选择来年规格小于P的非负整数a和b,使得(4a^2+27b^2)mod p != 0
因此对ECC来讲,椭圆曲线的参数可由多元偶(a,b,p)来确定
设有限域Fp上的E:y^2=x^3+ax+b mod p,P、Q为E上的两点,L是P、Q的连线。R为L与E相交的另一点,L'是R与无穷点0的连线(即与y轴平行),则L'与E的另一个交点S称为P与Q的点加,记作S=P+Q;
K个P的点加称为k与P的点积k*P=P+p+……+P
设m为大于1的整数,若x^2=n mod m可解,则称n为对m的平方剩余,否则为n对m的非平方剩余
设P、Q为E的任意两点,L为P、Q的连线,L与E相交于另一点R,则
P+0=P P+Q+R=0 P+Q=Q+R (P+Q)+R=P+(Q+R)
(1)ECC算法
1)确定某一椭圆曲线E y^2=x^2+ax+b mod p,其中P>2^130,4a^3+27b^2 mod p != 0,a,b均小于P,再从E中选取一个基点G,选择G的准则:nG=0,最小n值是一个足够大的素数。选定的参数(P,a,b,G)保存在一个公开的文件中。
2)私钥和公钥以及共享密钥的产生
公钥为E上点,私钥为整数,G公开
用户A随机选择一个整数Sa作为自己的私钥,计算Pa=Sa*G(Pa为A的公钥也就是加密密钥)
用户B用类似的方法产生自己的私钥和公钥Sb和Pb
用户A产生共享会话密钥Ka=SaPb
用户B产生共享会话密钥Kb=SbPa
显然Ka=SaPb=Sa(Sb*G)=Sb(Sa*G)=SbPa=Kb
3)编码:将明文映射到椭圆曲线上,在对明文m加密前需要将m映射到E上,如果m较长,可分段处理。注意:编码方法不唯一;编码不保密
下面介绍一种编码方法:
将m看成二进制整数,使得0<=m<=[P/256]-1 (256的大小可调整)
即将m映射到Pm(x,y),使得
256m<=x<=256(m+1);Pm(x,y)属于Fp,满足平方剩余的点
一般情况下:y^2=x^3+ax+b mod p是非平方剩余的概率很小
4)加密处理:c = Pm(x,y) + SaPb
5)解密处理:Pm(x,y) = c - SbPa
6)解码:m=[x/256]
3.身份认证协议:大嘴蛙协议 Borrows
KDC:可信的密钥分发中心
Ka:Alice与KDC的共享密钥
Kb:Bob与KDC的共享密钥
Ks:Alice挑选的与Bob的会话密钥
分析:
1)每个用户仅需保存和管理一个会话密钥
2)Ks可以做到“一次一密”,Ka,Kb不能做到“一次一密”
3)容易受到“重放攻击”
加密体制:对称密钥体制(DES)和非对称密钥体制
一.Elgamal加密算法(基于离散对数的加密方法)
1.公钥与密钥的产生
选择一个素数P(很大)和一个整数g,再秘密选择一个整数x(私钥),其中需要g和x均小于P.
计算:y=g^x mod P
则y为公钥(加密密钥),x为私钥(解密密钥)。
公开: P, g,y
2.加密:
设明文M,(M看成一个整数且M<P),发送方选择一个随机数k(k与P-1互素),
计算: a=g^k mod P
b=y^k * M mod P
则(a , b)为密文(注:密文长度正好是明文的两倍)。
3.解密:
M=b/a^x mod P
例:
Alice Bob
Pka (Alice的公钥) Pkb
Ska (Alice的私钥) Skb
1.A用Pkb加密——>B用Skb解密。
2.A用Ska签名——>B用Pka验证。
(加密要用对方的公钥,签名要用自己的私钥)
二.数字签名
满足三个条件:
能够核实签名者;签名者不能抵赖;不能篡改签名报文。
基本原理:
三.RSA数字签名
设:签名者分别有一个公钥e和私钥d,n = p*q(其中p和q为两个很大的素数),H为哈希函数,m为代签的报文。
Hash函数(单向函数),把任意长度的输入变成固定长度的输出,产生消息摘要
1)产生签名 签名者计算 M = H(m),S = M^d mod n,则(M,S)为m的签名。 将(m,S )发送给验证者(接收方)
2)验证签名 M' = S^e mod n M = H(m) 若M' = M,则签名有效,否则无效。
分析:①Trudy若伪造签名:
A:则必须知道d
B:将m->m',则H(m) = H(m'),但H发生冲突的概率很小。
② 哈希函数H的引入,减少了运算量。(但同时安全性相应降低)。
四.Elgamal 数字签名
设签名者的私钥为x,相应的公钥为y = g^x mod p
1)产生签名 签名者选择一随机数k(k<p且k与p-1互素)
计算: r = g^k mod p
解同余方程:g^m≡ y^r *r^s mod p (1)
gm ≡g^(xr)* g^(ks) mod p (2)
m≡ xr + ks mod (p-1) (3)
得到 S 将(m , r , s )发送给验证者。
2)验证签名 验证者验证方程:g^m ≡ y^r*r^s mod p
若上式成立,则签名有效,否则无效。
3)安全性分析 Trudy 试图恢复签名者的私钥x
方式1:Trudy截取L个签名报文(mi,ri,si)i = 1.2.......L。由此根据(3)式,将得到由L个方程组成的方程组:
M1 ≡ xr1 + k1s1 mod (p-1)
M2 ≡ xr2 + k2s2 mod (p-1)
。。。。。。。。。。。。。。。。。。。。。。。。。。
ML ≡ xrL + kLsL mod (p-1)
上式方程组中只有(x , k1 , k2 , ....kL)为未知数,由于每次签名都选择不同的ki,所以上述方程组中有L个方程组成,却包含L+1个未知数,无论如何都解不出x的值,故此攻击方式无效。
(故Elgamal尽量选择不同的随机数k,避免短时间内使用重复的k值。)
方式二:Trudy试图根据y=g^x mod P求解x。会遇到离散对数求解的困难。
方式三:Trudy试图假冒签名,给定m,Trudy试图找到r和s,使其满足签名验证方程
g^m ≡ y^r r^s mod p 如果随即选择k,计算出r = g^k mod p,再由g^m≡ y^r *r^s mod p 计算S,但这等价于离散对数求解问题。
g^m≡y^r r^s mod p A≡B r^s mod p AB-1≡ r^s mod p
如果先固定S,再计算下式求r
A≡ r^s*y^r mod p
但其难度不低于离散对数求解,若同时求r和s,但依照目前的研究成果,尚无有效法。
五 身份认证
1.含义:⑴ 仅证实通信连接双方的真实身份,而不与其后要传输的数据联系,其安全性有限;⑵ 不仅证实通信双方的真实身份,并为后继传输数据建立了安全通道,具有更高安全性。
2.简单的身份认证协议:
设Alice和Bob共享一个密钥KAB
反射攻击:利用截取对方的有用信息来攻击对方
挫败反射攻击的方法:Alice和Bob分别从不同的整数集合中选择随机数,例如Alice选择奇数,Bob选择偶数
本协议没有考虑到如何产生和管理共享会话密钥:1)每个用户产生和管理n-1个会话密钥2)难以做到“一次一密“
3.基于公钥证书的认证协议:由公钥和私钥产生共享会话密钥
基于公钥的认证:PKI(公钥基础设施)通过颁发离线公钥证书(即数字证书)
CA:证书颁发机构(可信的第三者)
A、B:表示两个用户Alice、Bob
1.申请公钥证书:用户提交自己的标识、公钥、用户名及身份等信息。以及自己的公钥(也可由CA产生)
2.CA产生和颁发公钥证书(数字证书):
核实用户的真实身份;产生公钥证书;通过安全信道颁发:
1)直接发给Alice 2)存放在证书库中
3.Bob认证Alice:
Alice将公钥证书发送给B,B用CA的公钥验证证书,同理Alice也可以认证Bob。
4.产生会话密钥:
说明:1)产生Kab(或者命名Ks)是为了节省运算量 2)协议不是唯一的
1.RSA算法
(1)秘密的选取两个大素数P和Q(>=2^512);
(2)计算n=p*q和z=(p-1)(q-1);(欧拉方程)
(3)秘密地选择一个与z互素的数d作为解密私钥(密钥)
(4)解同余方程(e*d)mod z =1;解得e作为加密密钥(公钥),公开(e,n)
(5)加密:c = P^e mod n
(6)解密:P = c^d mod n
P为明文,C为密文
2.椭圆曲线密钥算法(ECC)
(1)数学定义:由威尔斯特拉斯方程:y^2+axy+by=x^3+cx^2+dx+e所确定的平面曲线称为椭圆曲线(关于x轴对称)称为椭圆曲线E;满足上述方程的(x,y)称为椭圆上的点,则在E上还定义一个无穷点(零点)0;
对有限域Fp,可通过一系列变换将上述方程简化为y^2=x^3+ax+b
ECC感兴趣的是模P椭圆群,即给定一个素数P,选择来年规格小于P的非负整数a和b,使得(4a^2+27b^2)mod p != 0
因此对ECC来讲,椭圆曲线的参数可由多元偶(a,b,p)来确定
设有限域Fp上的E:y^2=x^3+ax+b mod p,P、Q为E上的两点,L是P、Q的连线。R为L与E相交的另一点,L'是R与无穷点0的连线(即与y轴平行),则L'与E的另一个交点S称为P与Q的点加,记作S=P+Q;
K个P的点加称为k与P的点积k*P=P+p+……+P
设m为大于1的整数,若x^2=n mod m可解,则称n为对m的平方剩余,否则为n对m的非平方剩余
设P、Q为E的任意两点,L为P、Q的连线,L与E相交于另一点R,则
P+0=P P+Q+R=0 P+Q=Q+R (P+Q)+R=P+(Q+R)
(1)ECC算法
1)确定某一椭圆曲线E y^2=x^2+ax+b mod p,其中P>2^130,4a^3+27b^2 mod p != 0,a,b均小于P,再从E中选取一个基点G,选择G的准则:nG=0,最小n值是一个足够大的素数。选定的参数(P,a,b,G)保存在一个公开的文件中。
2)私钥和公钥以及共享密钥的产生
公钥为E上点,私钥为整数,G公开
用户A随机选择一个整数Sa作为自己的私钥,计算Pa=Sa*G(Pa为A的公钥也就是加密密钥)
用户B用类似的方法产生自己的私钥和公钥Sb和Pb
用户A产生共享会话密钥Ka=SaPb
用户B产生共享会话密钥Kb=SbPa
显然Ka=SaPb=Sa(Sb*G)=Sb(Sa*G)=SbPa=Kb
3)编码:将明文映射到椭圆曲线上,在对明文m加密前需要将m映射到E上,如果m较长,可分段处理。注意:编码方法不唯一;编码不保密
下面介绍一种编码方法:
将m看成二进制整数,使得0<=m<=[P/256]-1 (256的大小可调整)
即将m映射到Pm(x,y),使得
256m<=x<=256(m+1);Pm(x,y)属于Fp,满足平方剩余的点
一般情况下:y^2=x^3+ax+b mod p是非平方剩余的概率很小
4)加密处理:c = Pm(x,y) + SaPb
5)解密处理:Pm(x,y) = c - SbPa
6)解码:m=[x/256]
3.身份认证协议:大嘴蛙协议 Borrows
KDC:可信的密钥分发中心
Ka:Alice与KDC的共享密钥
Kb:Bob与KDC的共享密钥
Ks:Alice挑选的与Bob的会话密钥
分析:
1)每个用户仅需保存和管理一个会话密钥
2)Ks可以做到“一次一密”,Ka,Kb不能做到“一次一密”
3)容易受到“重放攻击”
相关文章推荐
- 计算机网络---第二章 数据通信技术
- 计算机网络---第二章 数据通信技术
- 计算机网络与通信技术-网络互联技术
- 【Android应用开发技术:网络通信】计算机网络基础
- 计算机网络与通信技术-公共网络
- 5. 数据通信与计算机网络
- 计算机网络的威胁与保密技术
- 使用手机网络及云技术实现可移动计算机?
- 从网络技术及计算机通信技术原理认识信息时代
- 如何在单台计算机上配置 Windows XP SP2 网络保护技术
- 以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
- 全国计算机等级考试网络技术(三级教程)学习笔记
- 计算机通信与网络
- 计算机网络安全;现状;安全技术;新策略
- 通信技术网:网络技术基础之二三层交换技术与路由技术
- 计算机学科技术前沿:第31次中国互联网络发展状况统计报告
- 计算机网络原理与Iternet技术(第二章)
- 无线网络通信技术完全介绍
- 计算机网络与通信 一些知识点