CN113055184B - 数据加解密方法及装置 - Google Patents

数据加解密方法及装置 Download PDF

Info

Publication number
CN113055184B
CN113055184B CN202110300380.0A CN202110300380A CN113055184B CN 113055184 B CN113055184 B CN 113055184B CN 202110300380 A CN202110300380 A CN 202110300380A CN 113055184 B CN113055184 B CN 113055184B
Authority
CN
China
Prior art keywords
data
encrypted
matrix
section
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.)
Active
Application number
CN202110300380.0A
Other languages
English (en)
Other versions
CN113055184A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110300380.0A priority Critical patent/CN113055184B/zh
Publication of CN113055184A publication Critical patent/CN113055184A/zh
Application granted granted Critical
Publication of CN113055184B publication Critical patent/CN113055184B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

本申请提供了一种数据加解密方法及装置,可用于金融领域或其他领域,该方法包括:获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据;随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵;根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。本申请能够提高数据加解密的可靠性,进而能够提高数据传输的安全性。

Description

数据加解密方法及装置
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据加解密方法及装置。
背景技术
目前,随着互联网信息技术快速发展,特别是5G、云和大数据等新技术不断发展,各行各业信息系统的安全性和保密性显得越来越重要。其中,加解密算法的研究在安全保密体系中处于核心地位。
业界主流的加解密算法主要分为对称加密和非对称加密算法,例如,DES对称加密算法和RSA非对称加密算法。其中,应用对称加密算法加解密的密钥相同,双方事先都必须知道加密密钥。应用非对称加密算法加密和解密的密钥不同:公钥加密,私钥解密。
对称或非对称密钥难破解主要是因为计算量较大,但是随着新的超强计算机的发展,例如量子计算机出现后,对称或非对称密钥被破解的风险越来越大,影响数据传输的安全性。
发明内容
针对现有技术中的问题,本申请提出了一种数据加解密方法及装置,能够提高数据加解密的可靠性,进而能够提高数据传输的安全性。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种数据加解密方法,包括:
获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据;
随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵;
根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。
进一步地,所述目标矩阵中的每个首行矩阵元素是对所述向量中的与该首行矩阵元素的列号相同的向量元素进行哈希计算后得到的结果,其余行的每个矩阵元素为其对应的上一行且列号相同的矩阵元素进行哈希计算后得到的结果;
所述目标矩阵的行数m=2t,其中,t表示预设的整数。
进一步地,所述根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,包括:
将所述待加密数据划分为多节,每节待加密数据的长度为t;
若所述待加密数据的分节个数小于等于所述向量元素的个数,则根据下列公式得到每节待加密数据的加密小节:
Figure BDA0002986008220000021
其中,Mj表示第j节待加密数据,
Figure BDA0002986008220000022
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示第j节待加密数据对应的加密小节;
将各节待加密数据各自对应的加密小节组成所述加密数据。
进一步地,所述解密所述加密数据,得到所述目标通信数据,包括:
对所述加密数据分节得到各节加密小节;
对加密小节crypt(Mj)进行多次哈希计算,直至得到的哈希结果为kmj,得到所述哈希计算的次数;
根据所述哈希计算的次数和目标矩阵的行数,得到所述加密小节crypt(Mj)的明文;
根据每个加密小节的明文,得到所述目标通信数据。
进一步地,在所述将所述待加密数据划分为多节之后,还包括:
若所述待加密数据的分节个数大于所述向量元素的个数,则将所述待加密数据拆分为多段,以使每段均满足分节个数小于等于所述向量元素的个数;
根据下列公式得到每段中的各节待加密数据各自对应的加密小节:
Figure BDA0002986008220000023
其中,Mj表示任一段中的第j节待加密数据,
Figure BDA0002986008220000024
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示任一段中的第j节待加密数据对应的加密小节;
将所有段中的各节待加密数据各自对应的加密小节组成所述加密数据。
进一步地,所述根据每个加密小节的明文,得到所述目标通信数据,还包括:
根据各个加密小节的明文,得到所述待加密数据;
验证所述待加密数据中的校验码。
第二方面,本申请提供一种数据加解密装置,包括:
获取模块,用于获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据;
生产模块,用于随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵;
输出模块,用于根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。
进一步地,所述目标矩阵中的每个首行矩阵元素是对所述向量中的与该首行矩阵元素的列号相同的向量元素进行哈希计算后得到的结果,其余行的每个矩阵元素为其对应的上一行且列号相同的矩阵元素进行哈希计算后得到的结果;
所述目标矩阵的行数m=2t,其中,t表示预设的整数。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的数据加解密方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的数据加解密方法。
由上述技术方案可知,本申请提供一种数据加解密方法及装置。其中,该方法包括:获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据;随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵;根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据,能够提高数据加解密的可靠性,进而能够提高数据传输的安全性;不需要生成密钥,同时可以提高加解密运算的并行度,执行过程简单,安全性非常高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中数据加解密方法的流程示意图;
图2是本申请实施例中数据加解密方法中步骤311至步骤314的流程示意图;
图3是本申请实施例中数据加解密装置的结构示意图;
图4是本申请具体应用实例中数据加解密方法的逻辑示意图;
图5为本申请实施例的电子设备9600的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高数据加解密的可靠性,进而提高数据传输的安全性,本申请实施例提供一种数据加解密装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行数据加解密的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
需要说明的是,本申请公开的数据加解密方法及装置可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的数据加解密方法及装置的应用领域不做限定。具体通过下述各个实施例进行说明。
为了提高数据加解密的可靠性,进而提高数据传输的安全性,本实施例提供一种执行主体是数据加解密装置的数据加解密方法,该数据加解密装置包括但不限于服务器,如图1所示,该方法具体包含有如下内容:
步骤100:获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据。
具体地,目标通信数据可以为通信数据经编码后得到的二进制字符串M,校验码可以是固定长度的二进制字符串C,所述待加密数据为M|C(表示两个字符串连接),以二进制的形式表示;所述校验码的固定长度可根据实际需要进行设置,本申请对此不作限制;固定长度的校验码可以便于区分解码后的数据中的校验码和通信数据。
步骤200:随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵。
具体地,本申请对所述向量元素的个数不作限制,可根据实际需要进行设置;举例来说,向量a=(a1 a2 a3 ... an),向量a包括向量元素a1至an,n表示向量元素的个数。
其中,哈希算法即散列函数,Hash函数包含有两个特征:1)固定长度;给定一个Hash函数H(x),则对于任意长度的x,则H(x)的长度是固定的。如SHA256就是固定长度为256位的Hash函数。2)单向性;是指其的操作方向的不可逆性,即由输入x容易求出输出H(x),但反过来,不可能由输出求出输入。
步骤300:根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。
具体地,所述接收端可以是服务器或笔记本电脑等终端设备。其中,所述目标矩阵中的每个首行矩阵元素是对所述向量中的与该首行矩阵元素的列号相同的向量元素进行哈希计算后得到的结果,其余行的每个矩阵元素为其对应的上一行且列号相同的矩阵元素进行哈希计算后得到的结果;所述目标矩阵的行数m=2t,其中,t表示预设的整数。t的值可根据实际需要申请设置,本申请对此不作限制。
具体地,1)对向量a的每个元素分别进行哈希计算,生成目标矩阵K的第一行,即:k1j=H(aj),其中,j=1,2……n,aj表示向量a中的第j列的向量元素。2)目标矩阵K的每一行(第2行起)是上一行的元素分别进行哈希计算的结果,即:k(s+1)j=H(ksj)其中,j=1,2,...n;s=1,2,...m-1,m表示目标矩阵的行数;最终可以得到目标矩阵K可以如下所示:
Figure BDA0002986008220000061
本实施例提供的数据加解密方法可以具体应用在多种实际场景,如交易和医疗等应用场景,对于交易场景来说,为了提高交易数据传输的可靠性,进而提高交易过程的安全性,在一种举例中,所述数据加解密方法包括:
获取目标交易数据,并生成固定长度的校验码,将所述目标交易数据和校验码组合为待加密数据,所述目标交易数据包括:账户名、交易金额和交易类型等。
随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵。
根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端。
接收端解密所述加密数据,得到所述目标交易数据,以完成该目标交易数据对应的交易过程。
为了进一步提高获得加密小节的可靠性,在本申请一个实施例中,步骤300包括:
步骤301:将所述待加密数据划分为多节,每节待加密数据的长度为t。
具体地,可以以t为单位长度进行分节,可以表示待加密数据中数字的个数。
举例来说,待加密数据M|C=1101......10 011.......100.................01...0011=M1|M2|...|Mr;M1至Mr分别表示一节待加密数据,M1=1101......10,M2=011.......100,Mr=01...0011;即r节每节长度为t(最后一节的长度可能不足t,则以0填充),并且需要满足r≦n。
步骤302:若所述待加密数据的分节个数小于等于所述向量元素的个数,则根据下列公式得到每节待加密数据的加密小节:
Figure BDA0002986008220000071
其中,Mj表示第j节待加密数据,
Figure BDA0002986008220000072
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示第j节待加密数据对应的加密小节。
步骤303:将各节待加密数据各自对应的加密小节组成所述加密数据。
为了进一步提高数据解密的可靠性,参见图2,在本申请一个实施例中,步骤300所述的解密所述加密数据,得到所述目标通信数据,包括:
步骤311:对所述加密数据分节得到各节加密小节。
具体地,可以根据所述哈希算法的输出结果的长度,对所述加密数据进行分节,得到各节加密小节。
步骤312:对加密小节crypt(Mj)进行多次哈希计算,直至得到的哈希结果为kmj,得到所述哈希计算的次数。
可以理解的是,kmj为所述目标矩阵中的列号与所述加密小节的节号相同且位于该目标矩阵的最后一行的矩阵元素。
步骤313:根据所述哈希计算的次数和目标矩阵的行数,得到所述加密小节crypt(Mj)的明文。
可以理解的是,已知
Figure BDA0002986008220000073
若确定
Figure BDA0002986008220000074
经过q次哈希计算得到kmj,则可以确定目标矩阵中的(mj+1)行往下还有q行;同时已知目标矩阵的行数m,因此,根据(mj+1)+q=m,可以确定mj的值,进而确定加密小节crypt(Mj)的明文Mj
步骤314:根据每个加密小节的明文,得到所述目标通信数据。
为了进一步提高得到加密数据的可靠性,在本申请一个实施例中,在步骤301之后,还包括:
步骤3011:若所述待加密数据的分节个数大于所述向量元素的个数,则将所述待加密数据拆分为多段,以使每段均满足分节个数小于等于所述向量元素的个数。
步骤3012:根据下列公式得到每段中的各节待加密数据各自对应的加密小节:
Figure BDA0002986008220000081
其中,Mj表示任一段中的第j节待加密数据,
Figure BDA0002986008220000082
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示任一段中的第j节待加密数据对应的加密小节;
步骤3013:将所有段中的各节待加密数据各自对应的加密小节组成所述加密数据。
相对应的,在接收端接收到所述加密数据之后,可以将所述加密数据分节得到各节加密小节;将各节加密小节分为多段,以使每段均满足节数r小于等于所述向量元素的个数;对于任一段中的加密小节crypt(Mj)进行多次哈希计算,直至得到的哈希结果为kmj,得到所述哈希计算的次数;根据所述哈希计算的次数和目标矩阵的行数,得到所述加密小节crypt(Mj)的明文。其中,Mj表示任一段中的第j节的待加密数据,不同段中的Mj可能不同。
为了进一步提高数据传输的安全性,在本申请一个实施例中,步骤314还包括:
根据各个加密小节的明文,得到所述待加密数据。
验证所述待加密数据中的校验码。
从软件层面来说,为了提高数据加解密的可靠性,进而提高数据传输的安全性,本申请提供一种用于实现所述数据加解密方法中全部或部分内容的数据加解密装置的实施例,参见图3,所述数据加解密装置具体包含有如下内容:
获取模块10,用于获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据。
生产模块20,用于随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵。
输出模块30,用于根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。
其中,所述目标矩阵中的每个首行矩阵元素是对所述向量中的与该首行矩阵元素的列号相同的向量元素进行哈希计算后得到的结果,其余行的每个矩阵元素为其对应的上一行且列号相同的矩阵元素进行哈希计算后得到的结果;所述目标矩阵的行数m=2t,其中,t表示预设的整数。
本说明书提供的数据加解密装置的实施例具体可以用于执行上述数据加解密方法的实施例的处理流程,其功能在此不再赘述,可以参照上述数据加解密方法实施例的详细描述。
为了进一步说明本方案,本申请提供一种数据加解密装置的应用实例,在本应用实例中,该装置包含有加密模块和解密模块,具体描述如下:
一、加密模块用于实现以下处理步骤:
步骤11:随机生成由n个单词组成的向量a,称为“密语”。假设设备终端A与设备终端B通信,A选择n个单词a1,a2……an形成容易记住的“密语”(或存于某物理介质上),如(1)式所示。
a=(a1 a2 a3 ... an) (1)式
Figure BDA0002986008220000091
由该“密语”生成一个矩阵K,生成方式如下:
1)对向量a中的每个元素分别进行hash计算,生成矩阵K的第一行,即:
H(aj)=k1j j=1,2……n (3)式
2)矩阵K的每一行(第2行起)是上一行的元素分别进行hash计算得到的结果,即:
k(s+1)j=H(ksj) j=1,2,...n; s=1,2……m-1 (4)式
3)矩阵K的行数m为2的幂,即先选定整数t,使得m满足:
m=2t (5)式
步骤12:设通信的内容经过某种编码后的信息为M,为避免网络黑客作“局部”替换攻击,整体运算出一个固定长度的校验码Check,设为C,则需要传输的信息为M|C(|表示两个字符串连接),将其以二进制的形式表示,并以上述(5)式指定的t为单位长度进行分节,t为分节长度,即:
Figure BDA0002986008220000092
即r节每节长度为t(最后一节的长度可能不足t,则以0填充),并且需要满足r≦n(n为“密语”单词个数;若r>n时,说明M太长,可继续拆分为多段,使每段能满足r≦n要求)。
步骤13:加密。对于(6)式中的第j节Mj让其对应于矩阵K的第j列,将Mj视为二进制数,转化为10进制数mj,即:
mj=(Mj)2 (7)式
由于Mj的二进制表示长度为t,故mj范围为:
0≦mj≦2t-1 (8)式
由(8)式及(5)式可知:
1≦mj+1≦m (9)式
结合上述(9)式和选取的j列,将矩阵的定位元素(mj+1,j)作为Mj的加密小节(crypt表示加密),即:
Figure BDA0002986008220000101
具体如下所示:
Figure BDA0002986008220000102
其中,(mj+1)为行数,j为列数,箭头所指即为存放Mj密文crypt(Mj)的地方,为矩阵的第(mj+1)行,第j列。
同时,对(6)式的每小节均依(10)式确定其加密小节,即:
crypt[M|C]=crypt(M1)|crypt(M2)|......|crypt(Mr) (11)式
crypt[M|C]即为加密数据。
二、解密模块用于实现以下处理步骤:
步骤21:在通信之前,A已将矩阵K的最后一行(其中矩阵的总行数m已知),包括总行数m和该行各元素值提供给B,B收到(11)式的密文后,逐节进行解密。
1)对crypt[M|C]进行分节,由Hash的固定长度特性知,矩阵K中的所有元素的长度都为所选的Hash函数的长度(如SHA256的长度为256),B也使用同一Hash函数,故可依Hash函数的长度对crypt[M|C]进行分节成(11)式右边形式(这里每节的长度不是前述的t,而是hash函数固定值)。
2)对第j节的密文crypt(Mj)进行解密,由上述(4)式可知,对密文crypt(Mj)反复求Hash,一定会得到该j列最后一行元素kmj。又因为B已知kmj,故能求出hash次数q。即:
Figure BDA0002986008220000111
3)由矩阵K的生成规则可知,密文crypt(Mj)下面的行数为q,则crypt(Mj)上面的行数(即mj)为:
mj=m-q-1 (13)式
其中,m由(5)式得到,因m为矩阵K的最后一行的行号,B已知;q又由B通过(12)式计数得到,故现在B获得mj
由(7)式即可得到十进制明文mj对应的二进制明文Mj;至此,解密成功。
4)重复上述步骤,依次求得mj拼装起来。最终由密文crypt(M|C)得到明文M|C;校验码C长度固定,从而能够得到信息M;还可以先验证接收到的校验码与实际的校验码是否匹配,若是,则根据校验码C的长度确定信息M。
其中,本申请引入了密语(即a或矩阵K的第一行),为随机生成的n个单词,可以仅仅由A知晓,并不对外提供。但是若需要进行A、B协查问题或者信息分享等缘故,可以将密语提供给可靠的第三方存证,那么(11)式也是一个数字签名,必要时可由第三方进行验签。由于密语每次都是随机生成,该密语泄漏并不会导致安全性降低。
为了进一步说明本方案,本申请提供一种数据加解密方法的具体应用实例,在本具体应用实例中,如图4所示,该方法包括:
将海量数据片A按照一定长度二进制拆分为A0A1A2……An,分别对每一数据块进行加密,生成密文串A0’A1’A2’……An’。然后针对该密文串进行并行解密,最终形成明文串,将其拼接成数据串。
针对具体的数据片A0,假设对应的二进制码为:100110101010100111,假设以t=3个单位长度,100 110 101 010 100 111则形成的明文段为:4 6 5 2 4 7(即上述(6)式)。整体的加密矩阵的高度为23=8。
假设密语串为:(A,B,C,D,E,F),对其进行8次hash计算,得到如下所示的矩阵K,同时将生成的密文和最后一行发给接收方;接收方收到密文(A5,B7,C6,D3,E5,F8)和最后一行(A8,B8,C8,D8,E8,F8)后进行处理。
Figure BDA0002986008220000121
根据(12)式可知,A5进行8-5=3次hash计算可以得到A8,故根据(13)式可知,得到明文为:M=m-q-1=8-3-1=4。同时,依次将(B,C,D,E,F)进行上述处理后得到(6 5 2 47)。然后将明文串4 6 5 2 4 7,转化成二进制表示即为100 110 101 010 100 111
由上述描述可知,本申请提供的数据加解密方法及装置,能够提高数据加解密的可靠性,进而能够提高数据传输的安全性;不需要生成密钥,同时可以提高加解密运算的并行度,执行过程简单,安全性非常高。
从硬件层面来说,为了提高数据加解密的可靠性,进而提高数据传输的安全性,本申请提供一种用于实现所述数据加解密方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述数据加解密装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述数据加解密方法的实施例及用于实现所述数据加解密装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图5为本申请实施例的电子设备9600的系统构成的示意框图。如图5所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图5是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,数据加解密功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据。
步骤200:随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵。
步骤300:根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。
从上述描述可知,本申请的实施例提供的电子设备,能够提高数据加解密的可靠性,进而提高数据传输的安全性。
在另一个实施方式中,数据加解密装置可以与中央处理器9100分开配置,例如可以将数据加解密装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现数据加解密功能。
如图5所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图5中所示的所有部件;此外,电子设备9600还可以包括图5中没有示出的部件,可以参考现有技术。
如图5所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高数据加解密的可靠性,进而提高数据传输的安全性。
本申请的实施例还提供能够实现上述实施例中的数据加解密方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的数据加解密方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据。
步骤200:随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵。
步骤300:根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高数据加解密的可靠性,进而提高数据传输的安全性。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (7)

1.一种数据加解密方法,其特征在于,包括:
获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据;
随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵;所述目标矩阵中的每个首行矩阵元素是对所述向量中的与该首行矩阵元素的列号相同的向量元素进行哈希计算后得到的结果,其余行的每个矩阵元素为其对应的上一行且列号相同的矩阵元素进行哈希计算后得到的结果;所述目标矩阵的行数m=2t,其中,t表示预设的整数;
根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据;
所述根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,包括:
将所述待加密数据划分为多节,每节待加密数据的长度为t;
若所述待加密数据的分节个数小于等于所述向量元素的个数,则根据下列公式得到每节待加密数据的加密小节:
Figure FDA0003907470700000011
其中,Mj表示第j节待加密数据,
Figure FDA0003907470700000012
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示第j节待加密数据对应的加密小节;
将各节待加密数据各自对应的加密小节组成所述加密数据。
2.根据权利要求1所述的数据加解密方法,其特征在于,所述解密所述加密数据,得到所述目标通信数据,包括:
对所述加密数据分节得到各节加密小节;
对加密小节crypt(Mj)进行多次哈希计算,直至得到的哈希结果为kmj,得到所述哈希计算的次数;
根据所述哈希计算的次数和目标矩阵的行数,得到所述加密小节crypt(Mj)的明文;
根据每个加密小节的明文,得到所述目标通信数据。
3.根据权利要求1所述的数据加解密方法,其特征在于,在所述将所述待加密数据划分为多节之后,还包括:
若所述待加密数据的分节个数大于所述向量元素的个数,则将所述待加密数据拆分为多段,以使每段均满足分节个数小于等于所述向量元素的个数;
根据下列公式得到每段中的各节待加密数据各自对应的加密小节:
Figure FDA0003907470700000021
其中,Mj表示任一段中的第j节待加密数据,
Figure FDA0003907470700000022
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示任一段中的第j节待加密数据对应的加密小节;
将所有段中的各节待加密数据各自对应的加密小节组成所述加密数据。
4.根据权利要求2所述的数据加解密方法,其特征在于,所述根据每个加密小节的明文,得到所述目标通信数据,还包括:
根据各个加密小节的明文,得到所述待加密数据;
验证所述待加密数据中的校验码。
5.一种数据加解密装置,其特征在于,包括:
获取模块,用于获取目标通信数据,并生成固定长度的校验码,将所述目标通信数据和校验码组合为待加密数据;
生产模块,用于随机生成由多个向量元素组成的向量,根据哈希算法和所述向量,生成目标矩阵;所述目标矩阵中的每个首行矩阵元素是对所述向量中的与该首行矩阵元素的列号相同的向量元素进行哈希计算后得到的结果,其余行的每个矩阵元素为其对应的上一行且列号相同的矩阵元素进行哈希计算后得到的结果;所述目标矩阵的行数m=2t,其中,t表示预设的整数;
输出模块,用于根据所述待加密数据和目标矩阵,生成加密数据并输出至接收端,以使该接收端解密所述加密数据,得到所述目标通信数据;
所述输出模块包括:
划分单元,用于将所述待加密数据划分为多节,每节待加密数据的长度为t;
确定单元,用于若所述待加密数据的分节个数小于等于所述向量元素的个数,则根据下列公式得到每节待加密数据的加密小节:
Figure FDA0003907470700000023
其中,Mj表示第j节待加密数据,
Figure FDA0003907470700000031
表示目标矩阵中的第(mj+1)行第j列的矩阵元素,mj表示Mj对应的十进制数,crypt(Mj)表示第j节待加密数据对应的加密小节;
组合单元,用于将各节待加密数据各自对应的加密小节组成所述加密数据。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述的数据加解密方法。
7.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至4任一项所述的数据加解密方法。
CN202110300380.0A 2021-03-22 2021-03-22 数据加解密方法及装置 Active CN113055184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110300380.0A CN113055184B (zh) 2021-03-22 2021-03-22 数据加解密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110300380.0A CN113055184B (zh) 2021-03-22 2021-03-22 数据加解密方法及装置

Publications (2)

Publication Number Publication Date
CN113055184A CN113055184A (zh) 2021-06-29
CN113055184B true CN113055184B (zh) 2022-11-29

Family

ID=76513913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110300380.0A Active CN113055184B (zh) 2021-03-22 2021-03-22 数据加解密方法及装置

Country Status (1)

Country Link
CN (1) CN113055184B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978573B (zh) * 2022-03-30 2024-02-20 潍柴动力股份有限公司 Ota数据的加密方法、装置以及系统
CN115659383B (zh) * 2022-12-29 2023-02-24 中信天津金融科技服务有限公司 一种电子档案安全分享方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778294A (zh) * 2016-11-25 2017-05-31 努比亚技术有限公司 信息保护方法及装置
CN106921485A (zh) * 2015-12-24 2017-07-04 航天信息股份有限公司 基于矩阵运算的加密解密方法
CN107911354A (zh) * 2017-11-07 2018-04-13 北京航空航天大学 一种复合并行数据加密方法
CN109274485A (zh) * 2017-07-17 2019-01-25 科大国盾量子技术股份有限公司 一种数据加密方法、数据认证方法及相关设备和系统
CN111770115A (zh) * 2020-09-01 2020-10-13 北京连山科技股份有限公司 一种具有雪崩效应的数据安全处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5689826B2 (ja) * 2012-01-26 2015-03-25 日本電信電話株式会社 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム
JP6083234B2 (ja) * 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
CN112398878B (zh) * 2021-01-21 2021-04-16 北京电信易通信息技术股份有限公司 一种基于编码的流数据传输防泄密方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106921485A (zh) * 2015-12-24 2017-07-04 航天信息股份有限公司 基于矩阵运算的加密解密方法
CN106778294A (zh) * 2016-11-25 2017-05-31 努比亚技术有限公司 信息保护方法及装置
CN109274485A (zh) * 2017-07-17 2019-01-25 科大国盾量子技术股份有限公司 一种数据加密方法、数据认证方法及相关设备和系统
CN107911354A (zh) * 2017-11-07 2018-04-13 北京航空航天大学 一种复合并行数据加密方法
CN111770115A (zh) * 2020-09-01 2020-10-13 北京连山科技股份有限公司 一种具有雪崩效应的数据安全处理方法

Also Published As

Publication number Publication date
CN113055184A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
US10122710B2 (en) Binding a data transaction to a person's identity using biometrics
CN109150499B (zh) 动态加密数据的方法、装置、计算机设备和存储介质
CN113364760A (zh) 一种数据加密处理方法、装置、计算机设备及存储介质
EP2798773B1 (en) Generating digital signatures
US11979492B2 (en) Computer-implemented system and method for distributing shares of digitally signed data
CN111404943B (zh) 数据的处理方法、装置、电子设备及计算机可读存储介质
CN112511514A (zh) 一种http加密传输方法、装置、计算机设备及存储介质
CN113055184B (zh) 数据加解密方法及装置
CN110138739B (zh) 数据信息加密方法、装置、计算机设备及存储介质
CN113542228B (zh) 基于联邦学习的数据传输方法、装置以及可读存储介质
CN110768784B (zh) 密码传输方法、装置、计算机设备和存储介质
CN113572743B (zh) 数据加密、解密方法、装置、计算机设备和存储介质
CN113987583A (zh) 一种隐匿查询方法及系统
US11599655B1 (en) Data sharing method
CN111931209B (zh) 基于零知识证明的合同信息验证方法及装置
US20200169384A1 (en) Calculation device for encryption using public key and encryption method thereof
CN105721156A (zh) 用于模幂加密方案的通用编码函数
CN113987584A (zh) 一种隐匿查询方法及系统
CN116830523A (zh) 阈值密钥交换
CN112865973A (zh) 基于格的加密密钥和数字签名的生成方法
CN114785524A (zh) 电子印章生成方法、装置、设备和介质
CN111859435B (zh) 一种数据安全处理方法及装置
US20130031373A1 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
CN115883212A (zh) 信息处理方法、装置、电子设备和存储介质
CN115459909A (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