CN108337087A - 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法 - Google Patents

基于密码向量和斐波纳契矩阵的Diffie-Hellman加密算法 Download PDF

Info

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
Application number
CN201810119265.1A
Other languages
English (en)
Other versions
CN108337087B (zh
Inventor
包依勤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Xiaozhuang University
Original Assignee
Nanjing Xiaozhuang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Xiaozhuang University filed Critical Nanjing Xiaozhuang University
Priority to CN201810119265.1A priority Critical patent/CN108337087B/zh
Publication of CN108337087A publication Critical patent/CN108337087A/zh
Application granted granted Critical
Publication of CN108337087B publication Critical patent/CN108337087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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的数学模型被应用于加密和解密。
本发明介绍了一种基于密码向量和斐波纳契矩阵的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加密算法,其特征在于:进一步对解密的原文向量,进行两两比较验证,如正确最后获得原文。
CN201810119265.1A 2018-02-06 2018-02-06 基于密码向量和斐波纳契矩阵的Diffie-Hellman加密方法 Active CN108337087B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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