CN108337087A - 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法 - Google Patents
基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法 Download PDFInfo
- Publication number
- CN108337087A CN108337087A CN201810119265.1A CN201810119265A CN108337087A CN 108337087 A CN108337087 A CN 108337087A CN 201810119265 A CN201810119265 A CN 201810119265A CN 108337087 A CN108337087 A CN 108337087A
- Authority
- CN
- China
- Prior art keywords
- vector
- key
- data
- fibonacci
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于密码向量和斐波纳契矩阵的Diffie‑Hellman加密算法FBDH,FBDH密码算法是一个公开密钥算法,即:双方公开一个整数g,一个素数N,首先,各自产生一个私有密钥向量x(x1,x2)和y(y1,y2),并计算出各自的公开密钥向量X(x1,x2)和Y(y1,y2),双方对X(x1,x2)和Y(y1,y2)进行交换。其次,公开密钥向量交换后,双方计算出用于加密和解密的密钥向量K1和K2,结果K1和K2是相同的。发送方通过密钥K1加密数据,并通过Fibonacci矩阵变换,最终获得加密数据向量;接收方接收数据,通过Fibonacci逆矩阵变换,再经过K2解密报文,最终获得原文向量;对原文向量进行比较,如相同,获得原文。通过以上过程,从而实现数据的加密可靠传输。本发明的有益效果是有效的保证了数据的安全和数据的可靠传输。
Description
技术领域
本发明属于数据加密技术领域,涉及一种数据通讯加密解密算法。
背景技术
密码学是数学和计算机科学的结合,主要目标是使用加密技术实现数据的加密和解密。信息加密传输技术是发送者将信息加密传输,要求只有约定好的收件人才能解密信息,而中间人很难识别解密的技术。根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。Diffie-Hellman加密算法是非对称密钥加密算法,传输双方公开公有密钥,通过私有密钥解密。Diffie-Hellman算法为密码学研究者搭建了一个数据加密的平台,很多Diffie-Hellman的数学模型被应用于加密和解密。
本发明介绍了一种基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法该算法利用密码向量和Fibonacci矩阵,实现数据的加密和解密,实现数据的验证,保障数据传输更安全可靠。
发明内容
本发明是一种加密方法,简称FBDH,是主要研究目标是重要的短数据的加密传输,比如密码数据、电力控制命令等。其方法是:1)公开密钥是动态的,中间人无法知道私有密钥,2)通过密码向量实现数据验证,保证数据可靠性, 3)Fibonacci矩阵增强数据的解密难度,逆矩阵容易,加密解密运算量少。此方法应用于密码交换和物联网数据的加密传输,从复杂度、解密难度、可靠性上得到很好的效果。
本发明所采用的FBDH加密方法是按照以下步骤进行:
先约定Alice与Bob通讯,Alice将数据加密,并将加密数据发送给Bob。
1、Alice做下列步骤:
Step1公开约定两个参数g,N;
Step2Alice生成私有密钥向量(x1,x2),选择自已的私有密钥向量 (x1,x2),并计算X=(gx1mod N,gx2mod N),X作为公有密钥;
Step3选择Bob的公有密钥Y=(gy1mod N,gy2mod N),并计算密钥
K1=Yx=(gx1*y1mod N,gx2*y2mod N);
Step4想将数据m发给Bob,m如有4个字节,m=(m1,m2,m3,m4),
(当然m如有n个字节原理一样)。.
计算
C1(x,y)=((m1+gx1*y1)mod N,(m1+gx2*y2)mod N)
c2(x,y)=((m2+gx1*y1)mod N,(m2+gx2*y2)mod N)
c3(x,y)=((m3+gx1*y1)mod N,(m3+gx2*y2)mod N)
c4(x,y)=((m4+gx1*y1)mod N,(m4+gx2*y2)mod N)
Step5选择斐波纳契数列的递推矩阵
Step6计算斐波纳契变换矩阵E1,E2,E3,E4
Step7将Em转成顺序向量T
T={E1(x,y),E2(x,y),E3(x,y),E4(x,y)}
Step8公开将T发送给Bob
2、Bob做下列步骤:
Step1公开约定两个参数g,N;
Step2生成私有密钥向量(y1,y2),并计算
Y=(gy1mod N,gy2mod N),Y作为公有密钥
Step3选择Alice的公有密钥X=(gx1mod N,gx2mod N),并计算密钥
K2=Yy=(gx1*y1mod N,gx2*y2mod N);
Step4公开接收T,T={E1(x,y),E2(x,y),E3(x,y),E4(x,y)}
Step5计算
Step6计算并比较
1)计算:m1(x,y)=C1(x,y)-K2
如果m1(x)=m1(y)则m1=m1(x)
2)计算:m2(x,y)=C2(x,y)-K2
如果m2(x)=m2(y)则m2=m2(x)
3)计算:m3(x,y)=C3(x,y)-K2
如果m3(x)=m3(y)则m3=m3(x)
4)计算:m4(x,y)=C4(x,y)-K2
如果m4(x)=m4(y)则m4=m1(x)
最终获得m=(m1,m2,m3,m4)
3、Alice发送数据DATA给Bob,数据加密通讯流程图,如图-1所示
附图说明
图1Alice发送数据给Bob通讯流程图。
具体实施方式
下面结合具体实施方式,对本发明FBDH加密方法,进行详细说明举例:
例如:Alice与Bob通讯,Alice将"LIKE"数据加密,并将加密数据发送给 Bob。
本发明方法步骤如下:
1、Alice做下列步骤:
Step1公开约定两个参数g=15,N=197
Step2选择自已的私有密钥向量x=(43,25),并计算
X=(1543mod 197,1525mod 197)=(146,173)作为公有密钥;
Step3选择Bob的公有密钥Y=(42,83),并计算密钥
K1=(4243mod 197,8325mod 197)=(187,161);
Step4想将数据m=“LIKE”发给Bob,m=(76,73,75,69),计算
c1(x,y)=((76+187)mod 197,(76+161)mod 197)=(66,40)
c2(x,y)=((73+187)mod 197,(73+161)mod 197)=(63,37)
c3(x,y)=((75+187)mod 197,(75+161)mod 197)=(65,39)
c4(x,y)=((69+187)mod 197,(69+161)mod 197)=(59,33)
Step5选择斐波纳契数列的递推矩阵
Step6计算目标矩阵Cm
Step7将Em转成顺序向量T
T={0x89,0x38,0x62,0x20,0x7c,0x30,0x2e,0x0}
Step8公开将T给Bob
2、Bob做下列步骤:
Step1公开约定两个参数g=15,N=197;
Step2选择自已的私有密钥向量y=(166,35),并计算
Y=(15166mod 197,1535mod 197)=(42,83)作为公有密钥
Step3选择Bob的公有密钥X=(146,173),并计算密钥
K2=Xy=(146166mod 197,17335mod 197)=(187,161)
Step4公开接收T,T={0x89,0x38,0x62,0x20,0x7c,0x30,0x2e,0x0}
转换成10进制T={(137,56),(98,32),(124,48),(46,0)}
Step5计算
Step6计算并比较:
1)m1=((-131,237)-(187,161)mod 197=(76,76)
2)m2=((-134,234)-(187,161)mod 197=(73,73)
2)m3=((-132,236)-(187,161)mod 197=(75,75)
2)m4=((-138,230)-(187,161)mod 197=(69,69)
最终获得m=(76,73,75,69)
获得字符串“LIKE”
3、Python语言主要子程序的实现
1)子程序1:随机产生一个1到iMAX的NUM维向量,作为私有密钥x。
x=np.random.randint(1,imax,NUM)
2)子程序2:计算V=g^x mod N,输入参数:底数g,方根x,素数N。必须说明,不能直接求g^x,否则数据太大,必须采用循环语句计算。
。def CalPow(g,x,N):
pow_V=1
for i in range(0,x):
pow_V=(pow_V*g)%N
return pow_V
3)子程序3:计算公有密钥密钥X
X=np.array([CalPow(g,x[i],N)for i in range(NUM)])
4)子程序4:计算加密密钥K1
K1=np.array([CalPow(Y[i],x[i],N)for i in range(NUM)])
5)子程序5:加密数据data,输入参数:数据m_data,加密密钥K,素数N
def EncryData(m_data,K,N):
#数据加密钥数组
C=(K+m_data)%N
#print("加密钥:\n",(C))
#数据加密钥数组
mat_C=np.mat(C)
#斐波纳契数组
G=np.array(([8,5],[5,3]))
#斐波纳契矩阵
mat_G=np.mat(G)
#密钥矩阵FB变换矩阵
mat_E=mat_C*mat_G%N
#FB变换矩阵变换成加密数组,用于发送
EncryT=mat_E.getA()
#print("FB变换后的加密数组:\n",EncryT)
return EncryT
5)子程序6:数据解密,输入参数:数据EncryT,解密密钥K,素数N
def DecryData(EncryT,K,N):
#密钥矩阵
mat_E=np.mat(EncryT)
#斐波纳契
G=np.array(([-3,5],[5,-8]))
#斐波纳契逆矩阵
mat_G=np.mat(G)
#密钥矩阵逆变换
mat_C=mat_E*mat_G
C=mat_C.getA()
#print("FB逆变换数组:\n",C)
#还原成解密数据
M=(C-K)%N
#print("解密数组:\n",M)
#判断二个数据是否相等
if(M[0][0]==M[0][1]):
m_data=M[0][0]
else:
m_data=0
return m_data
4、测试结果
Alice将LIKE发给Bob,运行结果如下:
1)运行一次,python程序输出:
===Alice===
Alice:私有的密钥x=[4579]
Alice:公有的密钥X=[148136]
===Bob===
Bob:私有的密钥y=[89165]
Bob:公有的密钥Y=[55121]
===Alice与Bob交换公有密钥X和Y后===
Alice:计算的加密密钥K1=[134 15]
Bob:计算的加密密钥K2=[134 15]
Alice与Bob有相同的密钥K1和K2
===Alice===
Alice需要发的数据:LIKE
Alice发送加密的数据:0xa5,0x8d,0x7e,0x75,0x98,0x85,0x4a,0x55
===Bob===
Bob 接收加密的数据:0xa5,0x8d,0x7e,0x75,0x98,0x85,0x4a,0x55
Bob 解密数据:LIKE
2)再运行一次,python程序输出:
===Alice===
Alice:私有的密钥x=[4579]
Alice:公有的密钥X=[148136]
===Bob===
Bob:私有的密钥y=[89165]
Bob:公有的密钥Y=[55121]
===Alice与Bob交换公有密钥X和Y后===
Alice:计算的加密密钥K1=[134 15]
Bob:计算的加密密钥K2=[134 15]
Alice与Bob有相同的密钥K1和K2
===Alice===
Alice需要发的数据:LIKE
Alice发送加密的数据:0xa5,0x8d,0x7e,0x75,0x98,0x85,0x4a,0x55
===Bob===
Bob 接收加密的数据:0xa5,0x8d,0x7e,0x75,0x98,0x85,0x4a,0x55
Bob 解密数据:LIKE
===Alice===
Alice:私有的密钥x=[34 70]
Alice:公有的密钥X=[150 191]
===Bob===
Bob:私有的密钥y=[19175]
Bob:公有的密钥Y=[155 33]
===Alice与Bob交换公有密钥X和Y后===
Alice:计算的加密密钥K1=[154 1]
Bob:计算的加密密钥K2=[154 1]
Alice与Bob有相同的密钥K1和K2
===Alice===
Alice需要发的数据:LIKE
Alice发送加密的数据:0x3a,0x2,0x13,0xaf,0x2d,0xbf,0xa4,0x8f
===Bob===
Bob 接收加密的数据:0x3a,0x2,0x13,0xaf,0x2d,0xbf,0xa4,0x8f
Bob 解密数据:LIKE
3)二次结果比较:
Alice想将数据LIKE发给Bob,公有密钥和私有密钥都是动态的,二次发送的加密数据是不同的,但Bob解密数据结果是相同的。
第一次发的数据是0xa5,0x8d,0x7e,0x75,0x98,0x85,0x4a,0x55,
第二次发的数据是0x3a,0x2,0x13,0xaf,0x2d,0xbf,0xa4,0x8f,
分析结论:通讯双方每次的公开密钥是不一样的,且各自计算出的用于加密和解密的密钥也是不同的,这样解决了密钥窃听问题,并防止了中间人攻击。加密数据通过Fibonacci矩阵变换增强了数据的保密性。通过密码向量加密,最终获得原文向量,比较原文向量,增强通讯可靠性。测试结果表明,FBDH具有较高的安全性和可靠性。
以上所述仅是对本发明的较佳实施方式而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质,对以上实施方式所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。
Claims (4)
1.一种基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法,其特征在于按照以下步骤进行:
1)双方公开一个整数g,一个素数N
2)双方各自产生一个私有密钥向量x(x1,x2)和y(y1,y2),并计算出各自的公开密钥向量X(x1,x2)和Y(y1,y2)
3)双方对X(x1,x2)和Y(y1,y2)进行交换
4)发送方通过密钥K1加密数据,并通过Fibonacci矩阵变换,最终获得加密数据向量;接收方接收数据,通过Fibonacci逆矩阵变换,再经过K2解密报文,最终获得原文向量
5)对原文向量进行比较,如相同,获得原文。
2.按照权利要求1所述一种基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法,其特征在于:各自产生一个私有密钥向量x(x1,x2)和y(y1,y2),并计算出各自的公开密钥向量X(x1,x2)和Y(y1,y2),双方对X(x1,x2)和Y(y1,y2)进行交换。公开密钥向量交换后,双方计算出用于加密和解密的密钥向量K1和K2,K1和K2用于加密解密。
3.按照权利要求2所述FBDH加密算法,其特征在于:进一步发送方通过K1加密的数据再经过Fibonacci矩阵变换最终获得加密数据向量,接收方接收加密数据,经过Fibonacci逆矩阵变换,再通过K2解密数据,最终获得原文向量。
4.按照权利要求3所述FBDH加密算法,其特征在于:进一步对解密的原文向量,进行两两比较验证,如正确最后获得原文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810119265.1A CN108337087B (zh) | 2018-02-06 | 2018-02-06 | 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810119265.1A CN108337087B (zh) | 2018-02-06 | 2018-02-06 | 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108337087A true CN108337087A (zh) | 2018-07-27 |
CN108337087B CN108337087B (zh) | 2023-09-12 |
Family
ID=62926940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810119265.1A Active CN108337087B (zh) | 2018-02-06 | 2018-02-06 | 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108337087B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958255A (zh) * | 2019-12-06 | 2020-04-03 | 杭州安恒信息技术股份有限公司 | 一种数据传输方法、装置及电子设备和存储介质 |
CN111431716A (zh) * | 2020-03-30 | 2020-07-17 | 卓尔智联(武汉)研究院有限公司 | 数据传输方法、装置、计算机设备和存储介质 |
CN112000994B (zh) * | 2020-10-29 | 2021-04-27 | 深圳市智绘科技有限公司 | 车辆控制方法、服务器、终端设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150319149A1 (en) * | 2014-04-30 | 2015-11-05 | Thamir Alshammari | Cryptographic method and system for secure authentication and key exchange |
-
2018
- 2018-02-06 CN CN201810119265.1A patent/CN108337087B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150319149A1 (en) * | 2014-04-30 | 2015-11-05 | Thamir Alshammari | Cryptographic method and system for secure authentication and key exchange |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958255A (zh) * | 2019-12-06 | 2020-04-03 | 杭州安恒信息技术股份有限公司 | 一种数据传输方法、装置及电子设备和存储介质 |
CN111431716A (zh) * | 2020-03-30 | 2020-07-17 | 卓尔智联(武汉)研究院有限公司 | 数据传输方法、装置、计算机设备和存储介质 |
CN112000994B (zh) * | 2020-10-29 | 2021-04-27 | 深圳市智绘科技有限公司 | 车辆控制方法、服务器、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108337087B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831430B (zh) | 一种云计算环境下的安全可控高效的数据共享方法及系统 | |
Tseng et al. | A chaotic maps-based key agreement protocol that preserves user anonymity | |
CN108347404B (zh) | 一种身份认证方法及装置 | |
CN104393996B (zh) | 一种基于无证书的签密方法和系统 | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
CN104519071A (zh) | 一种具有选择和排除功能的群组加解密方法及系统 | |
CN109450615A (zh) | 一种高效的opc ua客户端与服务器端数据传输加密方法 | |
CN108337087A (zh) | 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法 | |
Peng et al. | Efficient distributed decryption scheme for IoT gateway-based applications | |
Kumar et al. | Anonymous ID-based Group Key Agreement Protocol without Pairing. | |
CN108337084A (zh) | 一种密钥分发系统、方法及装置 | |
Kim et al. | Data distribution for multiple receivers in a connected car environment using 5G communication | |
CN104902471B (zh) | 无线传感器网络中基于身份的密钥交换设计方法 | |
CN113242129B (zh) | 一种基于格加密的端到端数据机密性和完整性保护方法 | |
Chait et al. | An Enhanced RSA-Based Aggregate Signature Scheme to Reduce Blockchain Size | |
CN107294972B (zh) | 基于身份的广义多接收者匿名签密方法 | |
Madhulika et al. | Generating digital signature using DNA coding | |
CN114070549A (zh) | 一种密钥生成方法、装置、设备和存储介质 | |
KR20070003292A (ko) | 타원곡선 알고리즘을 이용한 원격제어 방법 | |
Tadesse Abebe et al. | Efficient FPGA implementation of an integrated bilateral key confirmation scheme for pair-wise key-establishment and authenticated encryption | |
Abera et al. | Efficient FPGA Implementation of an Integrated Bilateral Key Confirmation Scheme for Pair-Wise Key-Establishment and Authenticated Encryption | |
Soman | Lightweight Elliptical Curve Cryptography (ECC) for Data Integrity and User Authentication in Smart Transportation IoT System | |
Aldhaheri et al. | A novel secure quantum key distribution algorithm | |
Kim et al. | Certificateless Group to Many Broadcast Proxy Reencryptions for Data Sharing towards Multiple Parties in IoTs | |
WO2023181134A1 (ja) | 鍵配送システム、鍵配送方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |