CN107395371A - 无线传感器网络中的数据加密 - Google Patents
无线传感器网络中的数据加密 Download PDFInfo
- Publication number
- CN107395371A CN107395371A CN201710809890.4A CN201710809890A CN107395371A CN 107395371 A CN107395371 A CN 107395371A CN 201710809890 A CN201710809890 A CN 201710809890A CN 107395371 A CN107395371 A CN 107395371A
- Authority
- CN
- China
- Prior art keywords
- data
- ecc
- sha
- sender
- ciphering
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Abstract
本发明实施例涉及数据加密领域。本发明具体涉及一种无线传感器网络中的数据加密方法。主要实现方式为:发送方将待发送的数据m通过SHA‑1函数生成数据摘要A,再经过ECC加密模块处理生成数字签名。发送方将待发送的数据m及其数字签名发送给接收方。接收方通过对数字签名进行ECC解密得到数据摘要B;接收方通过对接收到的数据m进行SHA‑1函数处理生成数据摘要C。若数据摘要B等于数据摘要C,那么接收方接受签名,数据未被篡改,否则数据已经被篡改,接收方拒绝签名。本发明引入预计算单元,改进ECC算法的点乘模块,加快了数字签名的运算速度,提高了无线传感器网络中数据传输的安全性。
Description
技术领域
本发明涉及一种数字签名算法,尤其是一种适用于无线传感器网络的基于SHA-1函数和ECC加密的数字签名算法,属于数据加密的技术领域。
背景技术
无线传感器网络技术在国防、生物医学、城市交通、国际反恐等领域的广泛使用,为数据传输的安全性带来了巨大的考验。因此,无线传感器网络的数据安全问题已经成为了研究的热点。
无线传感器网络通信中大部分数据是由传感器节点传递到主节点的。为了保证接收方收到的数据未被黑客篡改,对数据的身份认证是确保数据安全的常用手段。目前广泛使用的加密算法有MD5和SHA-1等数字签名算法。但是经典的数字签名算法存在被黑客破解的风险,而基于公钥加密的ECC算法可以极大地提高数字签名的安全性。
无线传感器网络的物理节点常常受到硬件资源的限制,传统的加密算法是由大量复杂的操作组成的,需要消耗庞大的节点资源,甚至可能影响节点之间的正常通信。如何提高各个节点之间数据通信的安全性,同时又降低硬件资源的需求,是目前急需解决的问题。
发明内容
本发明的目的在于克服现有SHA-1加密技术中存在的不足,提供一种基于SHA-1和ECC的数字签名算法,并增加预计算单元,对ECC算法进行改进。其能实现快速的数字签名生成和认证速度,充分满足无线传感器网络对稳定性、功耗和处理速度的要求,提高数据传输的安全性。
为了解决上述技术问题,本发明提供了如下的技术方案:
一种适用于无线传感器网络的数据加密方法,发送方将待发送的数据m通过SHA-1函数生成数据摘要A,再将得到的数据摘要A经过ECC加密单元处理生成数字签名;发送方将待发送的数据m及其数字签名发送给接收方;接收方通过对数字签名进行ECC解密得到数据摘要B,并通过对接收到的数据m进行SHA-1函数处理生成数据摘要C;接收方将数据摘要B和数据摘要C发送至比较单元;比较单元对数据摘要B和数据摘要C进行比较,若数据摘要B等于数据摘要C,那么数据未被篡改,接收方接受签名,否则数据已经被篡改,接收方拒绝签名。
可选的,所述发送方将待发送的数据m通过SHA-1函数生成数据摘要A,再将得到的数据摘要A经过ECC加密单元处理生成数字签名,包括:发送方SHA-1加密单元接收数据单元传输的待加密数据m,并利用SHA-1加密方法加密得到数据摘要A,并将数据摘要A传输至发送方ECC加密单元;预计算单元与发送方ECC加密单元连接,通过ECC单元确定的基点G进行预计算得到预计算表F(n),并将其传输至ECC加密单元;所述发送方ECC加密单元接收来自发送方SHA-1加密单元发出的数据摘要A,并利用预计算单元传输过来的预计算表F(n),对数据摘要A进行高效的ECC加密,生成数字签名;其中,所述发送方ECC加密单元与预计算单元以及发送方SHA-1加密单元连接。
可选的,所述数据单元与其发送方SHA-1加密单元,以及接收方SHA-1加密单元连接;数据单元存储待发送的数据m,由发送方将数据m发送至发送方SHA-1加密单元和接收方SHA-1加密单元;两者的加密算法是相同的,都使用的是SHA-1函数。
可选的,所述SHA-1函数实现加密的具体步骤如下:
步骤1:附加填充比特
待发送的原始信息m的数据长度是L位。首先在数据最后加一位“1”,接着在这位“1”后面补K个“0”,使得补位后的数据长度L+1+K满足对512取模后余数是448;
步骤2:附加长度值
将64比特加在数据后表示数据的原始长度,使数据长度为512比特的倍数;
步骤3:分割已填充数据
经过数据的填充后,必须将数据划分成N块数据块来提供给SHA-1函数运算。填充后的数据被分割成(M(0),M(1),……,M(N))共N块,每块数据M(i)为512位,0≤i≤N。每块512位的数据块M(i)可以表示成32位的字,分别记为:M0,M1,……,M15共16块;
步骤4:初始化缓存
用五个32比特寄存器(A,B,C,D,E)作为160比特的缓存,初始化使用的是16进制的数字:
A=A0=0X01234567
B=B0=0X89ABCDEF
C=C0=0XFEDCBA98
D=D0=0X76543210
E=E0=0XC3D2E1F0
步骤5:以512比特分组处理消息
步骤5是SHA-1算法的主循环,主循环中包含了80次操作,所有80次操作分为4个循环,每个循环有20次操作,每个循环使用一个非线性函数,四个循环使用的非线性函数是不同的。所有的80次操作具有相同的基本算法,过程如下:
TEMP=(A<<<5+Ft(B,C,D)+E+Wt+Kt)
E=D
D=C
C=B<<<30
B=A
A=TEMP
其中A,B,C,D,E为中间变量;TEMP是临时变量,用于保存运算结果;t为操作的序数,0≤t≤79;<<<表示向左循环移动;Ft(B,C,D)为非线性函数;Wt是由当前的512比特输入分组所导出的一个32比特字;Kt是由算法指定的常数,它是按照一定规律得到的伪随机数字;
算法中要用到的四个非线性函数Ft设计如下:令X、Y、Z为32比特整型数,那么这四个非线性函数分别为:
Ft(X,Y,Z)=(X&Y)|(~X&Z),其中0≤t≤19
其中20≤t≤39
Ft(X,Y,Z)=(X&Y)|(Y&Z)|(X&Z),其中40≤t≤59
其中60≤t≤79
其中&表示按位与,|表示按位或,~表示按位取反,表示按位异或;
算法中输入信息Wt为:
Wt=Mt,其中0≤t≤15
其中16≤t≤79
算法中输入信息Kt为:
Kt=0X5A827999,其中0≤t≤19
Kt=0X6ED9EBA1,其中20≤t≤39
Kt=0X8F1BBCDC,其中40≤t≤59
Kt=0XCA62C1D6,其中60≤t≤79
步骤6:结果输出
运算最后再执行一次加法:
A=A+A0
B=B+B0
C=C+C0
D=D+D0
E=E+E0
其中A0、B0、C0、D0、E0中使用的分别是A、B、C、D、E的初始值,所有512比特的分组处理完成后,产生160比特的数据摘要SHA-1(m);发送方SHA-1单元产生数据摘要A,发送至ECC加密单元;接收方SHA-1单元产生数据摘要C,发送至比较单元。
可选的,所述的ECC加密单元实现加密的步骤如下:
步骤1:ECC加密单元接收发送方SHA-1加密单元发出的数据摘要A,发送方选定一个椭圆曲线,然后选择曲线上任意的一点G,作为基点,随机生成密钥K,那么根据ECC算法,公钥Q就是Q=K·G;
步骤2:随机生成自然数d,计算U=d·G=(x1,y1),其中(x1,y1)是U的坐标;
步骤3:在选定的椭圆曲线上随机取一点n,计算r=x1·mod(n),其中mod(n)表示取点n的模。如果r=0,那么回到步骤2;
步骤4:计算ECC加密数据S,如果S=0,那么回到步骤2;如果S≠0,完成签名;
步骤5:发送方将ECC加密单元计算出的加密数据S、选定的椭圆曲线相关信息(基点G、公钥Q)和计算出的r、U作为签名信息发送至接收方解密单元;
可选的,所述的ECC加密单元包含预计算单元,预计算单元改进了ECC加密单元的点乘运算,具体实现步骤:
在ECC算法中,密钥K一般用二进制表示:
其中n为密钥长度,可根据需要调整,密钥长度越长数据越难破解;an=0或1;
在本发明ECC数字签名算法中,基点G选定后就不再改变,但是密钥K是随机生成的,那么对应的公钥Q也就是随机的。而每次求取Q都需要进行大量的点乘运算,为了快速地求出公钥Q,引入预计算单元,设计如下:
步骤1:即f(i)=2i=2f(i-1),计算f(i);
步骤2:计算F(i)=f(i)·G=2F(i-1);
步骤3:将计算结果F(n)保存在预计算单元;
那么加密单元根据其随机生成的二进制密钥K,引用预计算单元的F(i),公钥Q可以快速地求出:
可选的,所述接收方,包含ECC解密单元;ECC解密单元接收发送方发出的签名信息,并进行如下解密:
步骤1:计算W1=S·U,W2=r·Q;
步骤2:计算P=SHA-1(m)·G=W1-W2;
步骤3:根据计算结果P和G的坐标,可以求出SHA-1(m),即数据摘要B。
传统的数字签名算法是通过比较数据摘要A和数据摘要C来判断接收到的数据的安全性。本发明对数据摘要A进行了ECC加密,生成的数据摘要B采用公钥算法,难以被破解,极大地提高了数据的安全性。本发明通过增加预计算单元,对ECC算法模块进行了改进,从而加快了数字签名生成和认证的运算速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明各单元连接的结构图;
图2为本发明使用的SHA-1流程图;
图3为本发明ECC加密单元的流程图;
图4为本发明预计算表的流程图;
图5为本发明ECC解密单元的流程图;
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合附图对本发明作进一步说明。
如图1所示:数据单元由发送方将待发送的数据发送至发送方SHA-1加密单元和接收方SHA-1加密单元。两者的加密算法是相同的,若发送的数据未被篡改,则发送方SHA-1加密单元生成的数据摘要A和接收方SHA-1加密单元生成的数据摘要C应当是一致的,传统加密方法就是基于这点来判断数据是否为原始数据。为确保数字签名在传输过程中难以被篡改,本发明对数据摘要A加入了ECC加密单元和ECC解密单元,并为改善ECC加密单元的运行效率,设计了预计算单元。
其中,ECC加密单元接收预计算单元生成的预计算表,对数据摘要A进行ECC加密,生成数字签名,并将其发送给接收方的解密单元。接收方ECC解密单元接对数字签名进行解密,得到数据摘要B,并将其发送至比较单元。
接收方SHA-1加密单元对收到的数据m进行SHA-1加密,生成数据摘要C,并将其发送至比较单元。
比较单元接收ECC解密单元发出的数据摘要B和接收方SHA-1单元发出的数据摘要C,并对两者一致性进行判断。若两者相符,数据未被篡改,接受数字签名;若两者不相符,数据已经被黑客篡改,拒绝数字签名。
具体地,发送方SHA-1加密单元和接收方SHA-1加密单元都采用Hash函数SHA-1算法,将待发送的长度小于264位的数据m通过SHA-1产生一个160位的数据摘要SHA-1(m)。SHA-1算法具备单向性,算法的计算过程是不可逆的。即黑客即使获取了数据摘要,也无法求出原文数据;SHA-1算法具备由函数值寻找等价明文的困难性,即给定原文数据,要找到另一个数据使得其数据摘要和原文摘要是相同的,目前在计算上是不可行的,所以黑客无法使篡改的数据与原数据的摘要相同。由于SHA-1具备这两个特点,所以数据摘要可以用来替代对大量数据的验证,节约了运算时间。
如图2所示,发送方SHA-1单元具体实现按以下步骤执行:
步骤1:附加填充比特
待发送的原始信息m的数据长度是L位。首先在数据最后加一位“1”,接着在这位“1”后面补K个“0”,使得补位后的数据长度L+1+K满足对512取模后余数是448。
步骤2:附加长度值
将64比特加在数据后表示数据的原始长度,使数据长度为512比特的倍数。
步骤3:分割已填充数据
经过数据的填充后,必须将数据划分成N块数据块来提供给SHA-1函数运算。填充后的数据被分割成(M(0),M(1),……,M(N))共N块,每块数据M(i)为512位,0≤i≤N。每块512位的数据块M(i)可以表示成32位的字,分别记为:M0,M1,……,M15共16块。
步骤4:初始化缓存
用五个32比特寄存器(A,B,C,D,E)作为160比特的缓存,初始化使用的是16进制的数字:
A=A0=0X01234567
B=B0=0X89ABCDEF
C=C0=0XFEDCBA98
D=D0=0X76543210
E=E0=0XC3D2E1F0
步骤5:以512比特分组处理消息
步骤5是SHA-1算法的主循环,主循环中包含了80次操作,所有80次操作分为4个循环,每个循环有20次操作,每个循环使用一个非线性函数,四个循环使用的非线性函数是不同的。所有的80次操作具有相同的基本算法,过程如下:
TEMP=(A<<<5+Ft(B,C,D)+E+Wt+Kt)
E=D
D=C
C=B<<<30
B=A
A=TEMP
其中A,B,C,D,E为中间变量;TEMP是临时变量,用于保存运算结果;t为操作的序数,0≤t≤79;<<<表示向左循环移动;Ft(B,C,D)为非线性函数;Wt是由当前的512比特输入分组所导出的一个32比特字;Kt是由算法指定的常数,它是按照一定规律得到的伪随机数字。
算法中要用到的四个非线性函数Ft设计如下:令X、Y、Z为32比特整型数,那么这四个非线性函数分别为:
Ft(X,Y,Z)=(X&Y)|(~X&Z),其中0≤t≤19
其中20≤t≤39
Ft(X,Y,Z)=(X&Y)|(Y&Z)|(X&Z),其中40≤t≤59
其中60≤t≤79
其中&表示按位与,|表示按位或,~表示按位取反,表示按位异或。
算法中输入信息Wt为:
Wt=Mt,其中0≤t≤15
其中16≤t≤79
算法中输入信息Kt为:
Kt=0X5A827999,其中0≤t≤19
Kt=0X6ED9EBA1,其中20≤t≤39
Kt=0X8F1BBCDC,其中40≤t≤59
Kt=0XCA62C1D6,其中60≤t≤79
步骤6:结果输出
运算最后再执行一次加法:
A=A+A0
B=B+B0
C=C+C0
D=D+D0
E=E+E0
其中A0、B0、C0、D0、E0中使用的分别是A、B、C、D、E的初始值,所有512比特的分组处理完成后,产生160比特的数据摘要SHA-1(m),即数据摘要A,发送至ECC加密单元。
如图3所示:ECC数字签名加密单元的实现过程是:
步骤1:ECC加密单元接收发送方SHA-1加密单元发出的数据摘要A,发送方选定一个椭圆曲线,然后选择曲线上任意的一点G,作为基点,随机生成密钥K,那么根据ECC算法,公钥Q就是Q=K·G。
步骤2:随机生成自然数d,计算U=d·G=(x1,y1),其中(x1,y1)是U的坐标。
步骤3:在选定的椭圆曲线上随机取一点n,计算r=x1·mod(n),其中mod(n)表示取点n的模。如果r=0,那么回到步骤2。
步骤4:计算ECC加密数据S,如果S=0,那么回到步骤2;如果S≠0,完成签名。
发送方将ECC加密单元计算出的加密数据S、选定的椭圆曲线相关信息(基点G、公钥Q)和计算出的r、U作为签名信息发送至接收方解密单元。
如图4所示:运算模块是ECC加密的核心模块,为密码算法的所有数学运算提供支持,其效率决定了整个加密系统的运行状况。为提高运算效率,本发明对点乘运算进行改进,加入了预计算单元。
在ECC算法中,密钥K一般用二进制表示:
其中n为密钥长度,可根据需要调整,密钥长度越长数据越难破解;an=0或1。
在本发明ECC数字签名中,基点G选定后就不再改变,但是密钥K是随机生成的,那么对应的公钥Q也就是随机的。而每次求取Q都需要进行大量的点乘运算,为了快速地求出公钥Q,引入预计算单元,设计如下:
步骤1:即f(i)=2i=2f(i-1),计算f(i)。
步骤2:计算F(i)=f(i)·G=2F(i-1)。
步骤3:将计算结果F(n)保存在预计算单元。
那么加密单元根据其随机生成的二进制密钥K,引用预计算单元的F(i),公钥Q可以快速地求出:
如图5所示:ECC解密单元接收发送方发出的加密数据S、基点G、公钥Q和计算出的r、U,并进行如下解密运算:
步骤1:计算W1=S·U,W2=r·Q
步骤2:计算P=SHA-1(m)·G=W1-W2
步骤3:根据计算结果P和G的坐标,可以求出SHA-1(m),即数据摘要B。
如图1所示:解密单元将数据摘要B发送至比较单元;接收方把收到的数据m发送至接收方SHA-1加密单元(该单元工作原理与发送方SHA-1加密单元一致,此处不再赘述),生成SHA-1(m),即数据摘要C,并将其发送至比较单元。
比较单元对数据摘要B和数据摘要C进行比较:如果两者一致,那么接受签名,数据m未被篡改;如果两者不同,那么拒绝签名,数据m已经被黑客篡改。
本发明根据无线传感器网络的特点,提出了一种基于SHA-1函数和ECC加密的数字签名算法。该数字签名算法结合SHA-1函数和ECC加密的思想,并增加预计算单元,优化了ECC乘法器的设计,提高了数字签名的生成和验证速度,充分满足无线网络传感器的稳定性、功耗和处理速度的要求,提高了数据传输的安全性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种适用于无线传感器网络的数据加密方法,其特征在于:
发送方将待发送的数据m通过SHA-1函数生成数据摘要A,再将得到的数据摘要A经过ECC加密单元处理生成数字签名;
发送方将待发送的数据m及其数字签名发送给接收方;
接收方通过对数字签名进行ECC解密得到数据摘要B,并通过对接收到的数据m进行SHA-1函数处理生成数据摘要C;
接收方将数据摘要B和数据摘要C发送至比较单元;
比较单元对数据摘要B和数据摘要C进行比较,若数据摘要B等于数据摘要C,那么数据未被篡改,接收方接受签名,否则数据已经被篡改,接收方拒绝签名。
2.根据权利要求1所述的数据加密方法,其特征在于:
所述发送方将待发送的数据m通过SHA-1函数生成数据摘要A,再将得到的数据摘要A经过ECC加密单元处理生成数字签名,包括:
发送方SHA-1加密单元接收数据单元传输的待加密数据m,并利用SHA-1加密方法加密得到数据摘要A,并将数据摘要A传输至发送方ECC加密单元;
预计算单元与发送方ECC加密单元连接,通过ECC单元确定的基点G进行预计算得到预计算表F(n),并将其传输至ECC加密单元;
所述发送方ECC加密单元接收来自发送方SHA-1加密单元发出的数据摘要A,并利用预计算单元传输过来的预计算表F(n),对数据摘要A进行高效的ECC加密,生成数字签名;
其中,所述发送方ECC加密单元与预计算单元以及发送方SHA-1加密单元连接。
3.根据权利要求2所述的数据加密方法,其特征在于:
所述数据单元与其发送方SHA-1加密单元,以及接收方SHA-1 加密单元连接;
数据单元存储待发送的数据m,由发送方将数据m发送至发送方SHA-1加密单元和接收方SHA-1加密单元;两者的加密算法是相同的,都使用的是SHA-1函数。
4.根据权利要求3所述的数据加密方法,其特征在于:
所述SHA-1函数实现加密的具体步骤如下:
步骤1:附加填充比特
待发送的原始信息m的数据长度是L位。首先在数据最后加一位“1”,接着在这位“1”后面补K个“0”,使得补位后的数据长度L+1+K满足对512取模后余数是448;
步骤2:附加长度值
将64比特加在数据后表示数据的原始长度,使数据长度为512比特的倍数;
步骤3:分割已填充数据
经过数据的填充后,必须将数据划分成N块数据块来提供给SHA-1函数运算。填充后的数据被分割成(M(0),M(1),……,M(N))共N块,每块数据M(i)为512位,0≤i≤N。每块512位的数据块M(i)可以表示成32位的字,分别记为:M0,M1,……,M15共16块;
步骤4:初始化缓存
用五个32比特寄存器(A,B,C,D,E)作为160比特的缓存,初始化使用的是16进制的数字:
A=A0=0X01234567
B=B0=0X89ABCDEF
C=C0=0XFEDCBA98
D=D0=0X76543210
E=E0=0XC3D2E1F0
步骤5:以512比特分组处理消息
步骤5是SHA-1算法的主循环,主循环中包含了80次操作,所有80次操作分为4个循环,每个循环有20次操作,每个循环使用一个非线性函数,四个循环使用的非线性函数是不同的。所有的80次操作具有相同的基本算法,过程如下:
TEMP=(A<<<5+Ft(B,C,D)+E+Wt+Kt)
E=D
D=C
C=B<<<30
B=A
A=TEMP
其中A,B,C,D,E为中间变量;TEMP是临时变量,用于保存运算结果;t为操作的序数,0≤t≤79;<<<表示向左循环移动;Ft(B,C,D)为非线性函数;Wt是由当前的512比特输入分组所导出的一个32比特字;Kt是由算法指定的常数,它是按照一定规律得到的伪随机数字;
算法中要用到的四个非线性函数Ft设计如下:令X、Y、Z为32比特整型数,那么这四个非线性函数分别为:
Ft(X,Y,Z)=(X&Y)|(~X&Z),其中0≤t≤19
其中20≤t≤39
Ft(X,Y,Z)=(X&Y)|(Y&Z)|(X&Z),其中40≤t≤59
其中60≤t≤79
其中&表示按位与,|表示按位或,~表示按位取反,表示按位异或;
算法中输入信息Wt为:
Wt=Mt,其中0≤t≤15
其中16≤t≤79
算法中输入信息Kt为:
Kt=0X5A827999,其中0≤t≤19
Kt=0X6ED9EBA1,其中20≤t≤39
Kt=0X8F1BBCDC,其中40≤t≤59
Kt=0XCA62C1D6,其中60≤t≤79
步骤6:结果输出
运算最后再执行一次加法:
A=A+A0
B=B+B0
C=C+C0
D=D+D0
E=E+E0
其中A0、B0、C0、D0、E0中使用的分别是A、B、C、D、E的初始值,所有512比特的分组处理完成后,产生160比特的数据摘要SHA-1(m);发送方SHA-1单元产生数据摘要A,发送至ECC加密单元;接收方SHA-1单元产生数据摘要C,发送至比较单元。
5.根据权利要求2所述的数据加密方法,其特征在于:
所述的ECC加密单元实现加密的步骤如下:
步骤1:ECC加密单元接收发送方SHA-1加密单元发出的数据摘要A,发送方选定一个椭圆曲线,然后选择曲线上任意的一点G,作为基点,随机生成密钥K,那么根据ECC算法,公钥Q就是Q=K·G;
步骤2:随机生成自然数d,计算U=d·G=(x1,y1),其中(x1,y1)是U的坐标;
步骤3:在选定的椭圆曲线上随机取一点n,计算r=x1·mod(n),其中mod(n)表示取点n的模。如果r=0,那么回到步骤2;
步骤4:计算ECC加密数据S,如果S=0,那么回到步骤2;如果S≠0,完成签名;
步骤5:发送方将ECC加密单元计算出的加密数据S、选定的椭圆曲线相关信息(基点G、公钥Q)和计算出的r、U作为签名信息发送至接收方解密单元。
6.根据权利要求4所述的数据加密方法,其特征在于:
所述的ECC加密单元包含预计算单元,预计算单元改进了ECC加密单元的点乘运算,具体实现步骤:
在ECC算法中,密钥K一般用二进制表示:
其中n为密钥长度,可根据需要调整,密钥长度越长数据越难破解;an=0或1;
在本发明ECC数字签名算法中,基点G选定后就不再改变,但是密钥K是随机生成的,那么对应的公钥Q也就是随机的。而每次求取Q都需要进行大量的点乘运算,为了快速地求出公钥Q,引入预计算单元,设计如下:
步骤1:令即f(i)=2i=2f(i-1),计算f(i);
步骤2:计算F(i)=f(i)·G=2F(i-1);
步骤3:将计算结果F(n)保存在预计算单元;
那么加密单元根据其随机生成的二进制密钥K,引用预计算单元的F(i),公钥Q可以快速地求出:。
7.根据权利要求2所述的数据加密方法,其特征在于:
所述接收方,包含ECC解密单元;
ECC解密单元接收发送方发出的签名信息,并进行如下解密:
步骤1:计算W1=S·U,W2=r·Q;
步骤2:计算P=SHA-1(m)·G=W1-W2;
步骤3:根据计算结果P和G的坐标,可以求出SHA-1(m),即数据摘要B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710809890.4A CN107395371B (zh) | 2017-09-11 | 2017-09-11 | 无线传感器网络中的数据加密 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710809890.4A CN107395371B (zh) | 2017-09-11 | 2017-09-11 | 无线传感器网络中的数据加密 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107395371A true CN107395371A (zh) | 2017-11-24 |
CN107395371B CN107395371B (zh) | 2020-07-07 |
Family
ID=60352150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710809890.4A Active CN107395371B (zh) | 2017-09-11 | 2017-09-11 | 无线传感器网络中的数据加密 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107395371B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965310A (zh) * | 2018-07-27 | 2018-12-07 | 广东讯飞启明科技发展有限公司 | 一种批量数据上传中防篡改加密实现方法和装置 |
CN109190414A (zh) * | 2018-08-09 | 2019-01-11 | 宁波大学 | 一种用于乘法器的全同态混淆方法 |
CN111147249A (zh) * | 2019-12-16 | 2020-05-12 | 中国银联股份有限公司 | 数据处理方法、装置、设备及介质 |
CN112448934A (zh) * | 2019-09-03 | 2021-03-05 | 无锡江南计算技术研究所 | 基于摘要的软件可信消息实现方法 |
CN115086032A (zh) * | 2022-06-15 | 2022-09-20 | 上海领雾软件科技有限公司 | 一种传感器数据保护系统及方法 |
CN115086032B (zh) * | 2022-06-15 | 2024-05-10 | 上海领雾软件科技有限公司 | 一种传感器数据保护系统及方法 |
-
2017
- 2017-09-11 CN CN201710809890.4A patent/CN107395371B/zh active Active
Non-Patent Citations (3)
Title |
---|
吉兵: ""基于无线传感器网络的AES-ECC加密系统的研究"", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
吉兵等: ""WSNs中基于FPGA的AES-ECC新型加密系统"", 《激光杂志》 * |
孙楠楠等: ""一种基于循环展开结构的SHA-1算法实现"", 《信息技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965310A (zh) * | 2018-07-27 | 2018-12-07 | 广东讯飞启明科技发展有限公司 | 一种批量数据上传中防篡改加密实现方法和装置 |
CN109190414A (zh) * | 2018-08-09 | 2019-01-11 | 宁波大学 | 一种用于乘法器的全同态混淆方法 |
CN112448934A (zh) * | 2019-09-03 | 2021-03-05 | 无锡江南计算技术研究所 | 基于摘要的软件可信消息实现方法 |
CN111147249A (zh) * | 2019-12-16 | 2020-05-12 | 中国银联股份有限公司 | 数据处理方法、装置、设备及介质 |
CN111147249B (zh) * | 2019-12-16 | 2023-04-18 | 中国银联股份有限公司 | 数据处理方法、装置、设备及介质 |
CN115086032A (zh) * | 2022-06-15 | 2022-09-20 | 上海领雾软件科技有限公司 | 一种传感器数据保护系统及方法 |
CN115086032B (zh) * | 2022-06-15 | 2024-05-10 | 上海领雾软件科技有限公司 | 一种传感器数据保护系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107395371B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101938499B (zh) | 用于数据处理系统的有效加密和认证 | |
CN101202623B (zh) | 消息验证码产生方法、验证/加密和验证/解密方法 | |
CN101262341A (zh) | 一种会务系统中混合加密方法 | |
Gupta et al. | A review of comparative study of md5 and ssh security algorithm | |
CN107395371A (zh) | 无线传感器网络中的数据加密 | |
Walia et al. | Implementation of new modified MD5-512 bit algorithm for cryptography | |
CN1316405C (zh) | 一种获得数字签名和实现数据安全的方法 | |
CN113297633A (zh) | 一种量子数字签名方法 | |
CN111432403A (zh) | 基于区块链的数据审计方法及装置 | |
CN111030821B (zh) | 一种基于双线性映射技术的联盟链的加密方法 | |
CN109787764B (zh) | 一种密钥的加密方法 | |
Tiwari | Cryptography in blockchain | |
CN107317667B (zh) | 一种身份证件丢失的预警方法及预警装置 | |
Gaur et al. | Comparative Study on Different Encryption and Decryption Algorithm | |
CN106973061B (zh) | 一种基于可逆逻辑电路的aes的外发文件加密方法 | |
CN108768923A (zh) | 一种基于量子可逆逻辑线路的加密算法的聊天实时加密方法 | |
Surabhi et al. | Advanced 256-Bit Aes Encyption With Plain Text Partitioning | |
CN108200108B (zh) | 一种非对称加密算法及其应用 | |
Balitanas et al. | Crossed crypto-scheme in WPA PSK mode | |
CN111654859A (zh) | 移动区块链资源分配方法及装置 | |
CN111641494A (zh) | 全球区块链的实现方法及装置 | |
JP3706398B2 (ja) | 楕円曲線による署名、認証及び秘密通信方式 | |
Malla et al. | A novel encryption scheme for secure SMS communication | |
Balitanas | Wi Fi protected access-pre-shared key hybrid algorithm | |
CN111641493A (zh) | 基于云计算的物流区块链的共识方法及装置 |
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 |