CN114124354A - 确定性鉴别加解密装置及方法 - Google Patents
确定性鉴别加解密装置及方法 Download PDFInfo
- Publication number
- CN114124354A CN114124354A CN202111394974.9A CN202111394974A CN114124354A CN 114124354 A CN114124354 A CN 114124354A CN 202111394974 A CN202111394974 A CN 202111394974A CN 114124354 A CN114124354 A CN 114124354A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- decryption
- authentication
- plaintext
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 74
- 230000006870 function Effects 0.000 claims description 67
- 230000006978 adaptation Effects 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 29
- 230000001133 acceleration Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种确定性鉴别加解密装置及方法,可用于网络安全技术领域,该装置包括:确定性鉴别加解密模块,用于:在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组;产生鉴别码;产生密文数据;在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组;生成明文数据。本发明可以支持对数据的加/解密,安全性高、性能高。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种确定性鉴别加解密装置及方法。
背景技术
金融应用等系统为了满足网络安全等级保护三级以上系统的安全要求,需要采用密码技术保证重要数据传输的保密性和完整性,并采用硬件密码模块实现密码运算和密钥管理。一些重要数据加密后被存储在数据库中,并需要支持密文作为键值的检索能力。金融数据密码机分组加密模式仅要求支持ECB和CBC两种模式,但使用随机IV值的CBC每次加密结果不同,无法检索;而使用ECB或固定IV的CBC模式加密时,对头部分组相同的明文会产生相同的密文分组,降低了安全性。不仅如此,保护数据保密性和完整性需要的密码机加/解密和消息鉴别码计算/验证是不同的指令,需要调用两次密码机分别完成,不仅效率低,而且在调用密码机过程中,重要数据在网络上明文传输。不基于密码机,使用软件实现其它算法则需要密钥在软件中实施计算,难以保证密钥的安全性。应用系统采用现有国内外标准推荐的算法或组合现有加密、消息鉴别码算法实现确定性鉴别加密存在以下缺点:
第一,采用软件实现标准算法会导致密钥暴露在密码机等安全硬件之外,不符合网络安全等级保护对三级以上系统的安全要求;
第二,调用密码机现有的加/解密算法和消息鉴别码算法组合实现存在这些问题:a)分组加密ECB模式不安全;b)CBC模式固定IV不安全,随机IV不是确定性算法,无法满足数据库存储后作为(组合)键值检索的要求;c)至少调用密码机两次;d)需要较多的密钥;e)需要保护的敏感明文在网络上传输;f)密码机无法完成超长数据的MAC计算;g)所有的密码机调用需要串行,无法有效利用多台密码机硬件资源加速;
第三,可以采用支持国密算法的GB/T 36624-2018模式1或KW类似算法,或者SIV模式,将密码机作为底层加密算法,可以满足等级保护安全要求,但是需要许多次(与数据长度相关)密码机串行调用,性能太低无法接受。
综上所述,目前缺乏一种安全性高、性能高的确定性鉴别加解密。
发明内容
本发明实施例提出一种确定性鉴别加解密装置,用以支持对数据的加/解密,安全性高、性能高,该装置包括:
确定性鉴别加解密模块,用于:
接收到应用系统发送的初始化指令后,完成初始化过程;
在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码;根据多组明文分组数据和鉴别码,产生密文数据;
在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。
本发明实施例提出一种确定性鉴别加解密方法,用以支持对超长数据的加/解密,计算效率高,该方法包括:
接收到应用系统发送的初始化指令后,完成初始化过程;
在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码;根据多组明文分组数据和鉴别码,产生密文数据;
在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述确定性鉴别加解密方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述确定性鉴别加解密方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述确定性鉴别加解密方法。
在本发明实施例中,确定性鉴别加解密模块在接收到应用系统发送的初始化指令后,完成初始化过程;在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码;根据多组明文分组数据和鉴别码,产生密文数据;在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。在上述过程中,同时完成确定性加密/解密,产生确定性结果但没有固定IV或nonce的安全缺陷,避免了网络明文传输,并且加密结果没有多余的填充字节,安全性好,性能高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中确定性鉴别加解密装置的示意图;
图2为本发明实施例中确定性鉴别加解密装置的架构图;
图3为本发明实施例中初始化流程图;
图4为本发明实施例中确定性鉴别加密流程图;
图5为本发明实施例中确定性鉴别解密流程图;
图6为本发明实施例中确定性鉴别加解密方法的流程图;
图7为本发明实施例中计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
首先,对本发明实施例中涉及到的术语进行解释。
保密性:使信息不泄露给未授权的个人、实体、进程,或不被其利用的特性。
数据完整性:数据没有以未授权方式所作的更改或破坏的特性。
明文:的数据。
密文:经变换后信息内容被隐藏起来的数据。
消息:有特定语义的,任意有限长度的比特串。
密钥:控制密码转换操作的符号序列。
加密:对数据进行密码变换以产生密文的过程。
解密:加密的逆操作,将密文转换为明文。
密钥:控制密码变换操作的关键信息或参数。
对称密码算法:加密和解密使用相同密钥的密码算法。
分组密码算法:将输入数据划分成固定长度的分组进行加解密的一类对称密码算法。
分组长度:一个信息分组的比特位数。
SM4算法:一种分组密码算法,分组长度为128比特,密钥长度为128比特。
SM3算法:一种密码杂凑算法,其输出为256比特。
填充:对数据串附加额外比特。
数据鉴别:验证数据真实性的过程。例如:验证所收到的数据与所发送的数据是否相同。
可鉴别的加密:一种可逆的数据转换,利用密码算法产生数据对应的密文,非授权实体无法在不被发现的情况下对该密文进行修改,同时提供数据保密性、数据完整性以及数据源鉴别。
初始化向量(IV):在密码变换中,为增加安全性或使密码设备同步而引入的用于数据变换的起始数据。
分组密码算法工作模式:分组密码算法的使用方式,主要包括电码本模式(ECB)、密码分组链接模式(CBC)、密码反馈模式(CFB)、输出反馈模式(OFB)、计数器模式(CTR)等。
电码本(ECB)工作模式:分组密码算法的一种工作模式,明文分组数据直接作为加密算法的输入,对应的输出作为密文分组。
密码分组链接(CBC)工作模式:分组密码算法的一种工作模式,当前的明文分组数据与前一密文分组进行异或运算后再进行加密得到当前的密文分组。
计数器(CTR)工作模式:分组密码算法用于构造序列密码的一种工作模式,通过加密不断变化的计数器来产生密钥序列。
消息鉴别码算法:消息鉴别码算法简称MAC算法,其输入为密钥和消息,输出为一个固定长度的比特串,满足下面两个性质:第一,对于任何密钥和消息,MAC算法都能够快速有效地计算。第二,对于任何固定的密钥,攻击者在没有获得密钥信息的情况下,即使获得了一些(消息,MAC)对,对任何新的消息预测其MAC在计算上是不可行的。
消息鉴别码(MAC):利用对称密码技术,以密钥为参数,由消息导出的数据项。任何持有这一密钥的实体,都可利用消息鉴别码检查消息的完整性和始发者。
伽罗华消息鉴别码(GMAC):一种与128比特分组密码算法配合使用的消息鉴别码。
伽罗华/计数器(GCM)工作模式:分组密码算法用于可鉴别加密的一种工作模式,使用计数器模式产生密钥序列,使用GMAC计算消息鉴别码。
金融数据密码机:在金融领域内,用于确保金融数据安全,并符合金融磁条卡、IC卡业务特点的,主要实现PIN加密、PIN转加密、MAC产生和校验、数据加解密、签名验证以及密钥管理等密码服务功能的密码设备,也称为主机加密机(HSM)。
图1为本发明实施例中确定性鉴别加解密装置的示意图一,如图1所示,包括:
确定性鉴别加解密模块101,用于:
接收到应用系统发送的初始化指令后,完成初始化过程;
在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据P分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码T;根据多组明文分组数据和鉴别码T,产生密文数据C;
在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据C按照鉴别码长度分解为鉴别码T和分解密文C,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。
在一实施例中,所述装置还包括适配模块102,用于在接收到适配初始化指令后,进行适配初始化;
确定性鉴别加解密模块还用于:在接收到应用系统发送的初始化指令后,进行确定性鉴别加解密初始化;向适配模块发送适配初始化指令。
图2为本发明实施例中确定性鉴别加解密装置的架构图,其中,确定性鉴别加解密模块包括确定性鉴别加解密API和确定性鉴别加解密实现,确定性鉴别加解密API用于提供对外接口,主要与应用系统进行通信;确定性鉴别加解密实现主要进行加密计算和解密计算,内部包括鉴别加密函数、鉴别解密函数、GHASH函数、增量函数;适配模块实现或调用已有的128位分组加密软硬件实现,可以是国产密码算法SM4或者国际密码算法AES等。
在一实施例中,确定性鉴别加解密模块具体用于:采用如下步骤,进行确定性鉴别加解密初始化:向适配模块发送加密指令;在接收到GMAC子密钥后,根据所述GMAC子密钥和初始化指令中的加速表参数产生加速表;
适配模块还用于:接收到加密指令后,对全零明文数据加密产生GMAC子密钥并返回确定性鉴别加解密模块。
在一实施例中,适配模块具体用于:采用如下步骤进行适配初始化:在接收到适配初始化指令后,根据适配初始化指令中的连接参数,进行密码机连接、线程池准备。
在一实施例中,根据多组明文分组数据,产生鉴别码,包括:
调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算,产生鉴别码。
在一实施例中,调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算时,使用加速表并发加速。
在一实施例中,根据多组明文分组数据和鉴别码,产生密文数据,包括:
根据鉴别码T填充计数器产生中间初值Y0;
根据明文分组数据的数量和中间初值Y0,增量计算多组中间值Yi;
获得多组加密后的中间值EYi;
将多组明文分组数据Pi与多组加密后的中间值EYi异或,产生多组密文分组数据Ci;
串联鉴别码T和多组密文分组数据Ci,产生密文数据C。
综合上述实施例,GHASH函数采用如下公式详细介绍:
将输入P按照128位分组为位串序列,即:P=P1||P2||...||Pm,
令X0=0128
返回Xm
鉴别加密函数采用公式详细介绍如下:
输入:明文数据P和鉴别码位长度t,其中t=8i,4≤i≤12;
输出:密文数据C;
H=EK(0128)
Y0=T||0127-len(T)||1
Yi=inc128-len(T)(Yi-1)对于i=1,...,n
其中,K为分组密码密钥,H为杂凑子密钥,P为明文数据,C为密文数据,R为分组乘法操作算法中的常量,T为鉴别码,t为鉴别码的位长度,FAIL为鉴别失败。
操作和函数定义:
0s为由s个比特位‘0’组成的位串;
X||Y为两个比特位串X和Y的串联;
EK(D)为使用密钥K对数据分组D做分组加密;
len(M)为为返回比特位串M的比特位长度;
MSBs(X)为返回仅包含X的最高(最左)s位的位串;
LSBs(X)为返回仅包含X的最低(最右)s位的位串;
int(X)为位串X二进制表示的整数;
[x]s为非负整数x的二进制表示形式为s比特的位串,其中x<2s;
GHASHH(M)为应用于比特位串M的杂凑子密钥H下的GHASH函数的输出;
incs(X)为用1模2s递增位串X的最右s位的输出,即整数的二进制表示形式。在上述实施例中,增量计算采用增量函数,采用公式详细介绍如下:
incs(X)=MSBlen(X)-s||[int(LSBs(X))+1 mod 2s]s
在一实施例中,获得多组加密后的中间值,包括:
向适配模块发送加密指令,并接收返回的多组加密后的中间值;
适配模块具体用于:在接收到加密指令后,对加密指令中的多组中间值进行加密。
适配模块可以简化,直接在上述基本流程中调用底层分组加密实现。
在一实施例中,适配模块具体用于:
并行对加密指令中的多组中间值进行加密。
在一实施例中,根据多组密文分组数据和鉴别码,生成明文数据,包括:
根据鉴别码T填充计数器产生中间初值Y0;
根据密文分组数据的数量,增量计算每组中间值Yi,i=1,...,n;
获得加密后的中间值EYi;
将密文分组数据Ci与每组中间值EYi异或产生明文分组数据Pi;
根据明文分组数据Pi,生成第二鉴别码T′;
比较鉴别码T与第二鉴别码T′,如果相同,将明文分组数据Pi串联为明文数据P。
在一实施例中,根据明文分组数据Pi,生成第二鉴别码T′,包括:
将明文分组数据填充并增加长度分组后,调用GHASH函数做有限域乘法和加法计算,获得第二鉴别码T′。
综合上述实施例,鉴别解密函数采用公式详细介绍如下:
输入:密文数据C和鉴别码位长度t,其中t=8i,4≤i≤12;
输出:成功则返回明文数据P,失败则返回FAIL;
H=E(K,0128)
Y0=T||0127-len(T)||1
Yi=inc128-len(T)(Yi-1)对于i=1,...,n
若T=T′则返回P,否则返回FAIL
在一实施例中,调用GHASH函数做有限域乘法和加法计算时,使用加速表并发加速。加速表的设计提高了整体性能。
在一实施例中,获得加密后的中间值EYi,包括:
向适配模块发送加密指令,并接收返回的加密后的中间值EYi;
适配模块具体用于:在接收到加密指令后,对加密指令中的中间值进行加密。
在一实施例中,适配模块具体用于:
并行对加密指令中的中间值进行加密。
综合上述实施例,可总结出确定性鉴别加解密模块中的确定性鉴别加解密API的主要功能为与应用系统交互。确定性鉴别加解密实现的主要是实现各类函数,以及逻辑处理,具体包括鉴别加密函数、鉴别解密函数、增量函数、GHASH函数。
适配模块提供对给数量的128位分组明文数据进行加密的功能,具体加密算法可以是软件实现,也可以由硬件密码机实现,支持所有ECB模式的128位分组加密算法,可以利用软件并发和硬件的并行计算能力。
另外,综合上述实施例,可见,本发明实施例提出的装置主要实现三大块功能,分别为初始化、确定性鉴别加密和确定性鉴别解密,下面统一介绍三个功能对应的流程。
图3为本发明实施例中初始化流程图,包括:
1.1应用系统向确定性鉴别加解密模块发送初始化指令。
1.2确定性鉴别加解密模块进行确定性鉴别加解密初始化,即初始化内部数据;
1.3确定性鉴别加解密模块向适配模块发送适配初始化指令,适配模块进行适配初始化,完成密码机连接、线程池准备等工作;
1.4确定性鉴别加解密模块向适配模块发送加密指令,对全零数据加密产生GMAC子密钥;
1.5适配模块加密全零数据,产生GMAC子密钥;
1.6确定性鉴别加解密模块产生加速表,即根据所述GMAC子密钥和初始化指令中的加速表参数产生加速表。
初始化后应用系统可多次调用确定性鉴别加解密过程。初始化流程,将可以提前完成的步骤准备好,提高性能。
图4为本发明实施例中确定性鉴别加密流程图,包括:
2.1应用系统获取明文数据,向确定性鉴别加解密模块发送加密计算指令;
2.2确定性鉴别加解密模块将明文数据分组填充并增加长度分组后,获得多组明文分组数据,调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算后产生鉴别码T,计算时可以使用加速表并发加速;
2.3确定性鉴别加解密模块根据T填充计数器产生中间初值Y0;
2.4确定性鉴别加解密模块根据明文分组数据的数量n和中间初值,产生中间值Yi,i=1,...,n;
2.5确定性鉴别加解密模块向适配模块发送加密指令加密中间值Yi;
2.6适配模块并发加密中间值Yi后返回EYi;
2.7确定性鉴别加解密模块将明文分组数据与加密后的中间值EYi,异或产生明文分组数据Ci;
2.8确定性鉴别加解密模块串联鉴别码和明文分组数据T||C1||...||Cn,产生密文数据并返回;
2.9应用系统获取密文数据处理,结束本次加密流程。
图5为本发明实施例中确定性鉴别解密流程图,包括:
3.1应用系统获取要鉴别解密的密文数据,向确定性鉴别加解密模块发送解密计算指令;
3.2确定性鉴别加解密模块将密文数据按照鉴别码长度分解为鉴别码T和分解密文,并将密文分组为Ci;
3.3如果分解失败,转3.11,否则转3.4;
3.4确定性鉴别加解密模块根据鉴别码T填充计数器产生中间初值Y0;
3.5确定性鉴别加解密模块密文分组数据的数量,增量计算中间值Yi,i=1,...,n;
3.6确定性鉴别加解密模块向适配模块发送加密指令加密中间值Yi;
3.7适配模块并发加密中间值Yi后返回加密后的中间值EYi;
3.8确定性鉴别加解密模块将密文分组数据Ci与加密后的中间值EYi异或产生明文分组数据Pi;
3.9确定性鉴别加解密模块将明文分组数据填充并增加长度分组后,调用GHASH函数做有限域乘法和加法计算后返回第二鉴别码T′,计算时可以使用加速表并发加速;
3.10确定性鉴别加解密模块比较鉴别码T与第二鉴别码T′,如果相同转3.12,不同则返回失败,转3.11;
3.11解密失败,应用系统做失败处理,结束本次解密流程。
3.12明文分组数据Pi串联为明文数据P,返回明文数据P;
3.13应用系统获取明文数据P,结束本次解密流程。
综上所述,在本发明实施例提出的装置中,可同时完成加密/解密,产生确定性结果但没有固定IV或nonce的安全缺陷,既能充分利用密码机的密钥保护能力和安全性,又能充分发挥多密码机的并行计算能力,提供了比密码机本身更强的功能和效率,避免了网络明文传输,并且加密结果没有多余的填充字节。可应用于如下复杂场景:既要满足数据保密性又要满足数据完整性;需要保证相同的明文加密结果是相同的密文,又要防止类似的明文出现类似的密文;需要硬件设备保护密钥、完成加解密算法;需要防止敏感信息在网络上明文传输,又要支持大数据量并解决性能问题。
本发明还提出一种确定性鉴别加解密方法,其原理与确定性鉴别加解密装置相同,这里不再赘述。
图6为本发明实施例中确定性鉴别加解密方法的流程图,如图6所示,其中,步骤601是作为加密方的应用系统对应的确定性鉴别加解密装置对应的步骤,步骤602是作为解密方的应用系统对应的确定性鉴别加解密装置对应的步骤,包括:
步骤601,在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码;根据多组明文分组数据和鉴别码,产生密文数据;
步骤602,在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。
当然,在步骤601和步骤602之前,接收到应用系统发送的初始化指令后,完成初始化过程。
在一实施例中,所述方法还包括:
在接收到应用系统发送的初始化指令后,进行确定性鉴别加解密初始化;向适配模块发送适配初始化指令;
其中,
适配模块,用于在接收到适配初始化指令后,进行适配初始化。
在一实施例中,所述方法还包括:
采用如下步骤,进行确定性鉴别加解密初始化:向适配模块发送加密指令,用全零明文数据加密产生GMAC子密钥;在接收到GMAC子密钥后,根据所述GMAC子密钥和初始化指令中的加速表参数产生加速表;
适配模块还用于:接收到加密指令后,对全零明文数据加密产生GMAC子密钥并返回确定性鉴别加解密模块。
在一实施例中,根据多组明文分组数据,产生鉴别码,包括:
调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算,产生鉴别码。
在一实施例中,调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算时,使用加速表并发加速。
在一实施例中,根据多组明文分组数据和鉴别码,产生密文数据,包括:
根据鉴别码填充计数器产生中间初值;
根据明文分组数据的数量和中间初值,增量计算多组中间值;
获得多组加密后的中间值;
将多组明文分组数据与多组加密后的中间值异或,产生多组密文分组数据;
串联鉴别码和多组密文分组数据,产生密文数据。
在一实施例中,获得多组加密后的中间值,包括:
向适配模块发送加密指令,并接收返回的多组加密后的中间值;
适配模块具体用于:在接收到加密指令后,对加密指令中的多组中间值进行加密。
在一实施例中,根据多组密文分组数据和鉴别码,生成明文数据,包括:
根据鉴别码填充计数器产生中间初值;
根据密文分组数据的数量,增量计算每组中间值;
获得加密后的中间值;
将密文分组数据与每组中间值异或产生明文分组数据;
根据明文分组数据,生成第二鉴别码;
比较鉴别码与第二鉴别码,如果相同,将明文分组数据串联为明文数据。
在一实施例中,获得加密后的中间值,包括:
向适配模块发送加密指令,并接收返回的加密后的中间值;
适配模块具体用于:在接收到加密指令后,对加密指令中的中间值进行加密。
在一实施例中,根据明文分组数据,生成第二鉴别码,包括:
将明文分组数据填充并增加长度分组后,调用GHASH函数做有限域乘法和加法计算,获得第二鉴别码。
在一实施例中,调用GHASH函数做有限域乘法和加法计算时,使用加速表并发加速。
本发明实施例还提供一种计算机设备,图7为本发明实施例中计算机设备的示意图,所述计算机设备700包括存储器710、处理器720及存储在存储器710上并可在处理器720上运行的计算机程序730,所述处理器720执行所述计算机程序730时实现上述确定性鉴别加解密方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述确定性鉴别加解密方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述确定性鉴别加解密方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种确定性鉴别加解密装置,其特征在于,包括:
确定性鉴别加解密模块,用于:
接收到应用系统发送的初始化指令后,完成初始化过程;
在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码;根据多组明文分组数据和鉴别码,产生密文数据;
在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。
2.如权利要求1所述的确定性鉴别加解密装置,其特征在于,还包括适配模块,用于:在接收到适配初始化指令后,进行适配初始化;
确定性鉴别加解密模块还用于:在接收到应用系统发送的初始化指令后,进行确定性鉴别加解密初始化;向适配模块发送适配初始化指令。
3.如权利要求2所述的确定性鉴别加解密装置,其特征在于,确定性鉴别加解密模块具体用于:采用如下步骤,进行确定性鉴别加解密初始化:向适配模块发送加密指令;在接收到GMAC子密钥后,根据所述GMAC子密钥和初始化指令中的加速表参数产生加速表;
适配模块还用于:接收到加密指令后,对全零明文数据加密产生GMAC子密钥并返回确定性鉴别加解密模块。
4.如权利要求2所述的确定性鉴别加解密装置,其特征在于,适配模块具体用于:采用如下步骤进行适配初始化:在接收到适配初始化指令后,根据适配初始化指令中的连接参数,进行密码机连接、线程池准备。
5.如权利要求2所述的确定性鉴别加解密装置,其特征在于,根据多组明文分组数据,产生鉴别码,包括:
调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算,产生鉴别码。
6.如权利要求5所述的确定性鉴别加解密装置,其特征在于,调用GHASH函数完成对各明文分组数据做有限域乘法和加法计算时,使用加速表并发加速。
7.如权利要求2所述的确定性鉴别加解密装置,其特征在于,根据多组明文分组数据和鉴别码,产生密文数据,包括:
根据鉴别码填充计数器产生中间初值;
根据明文分组数据的数量和中间初值,增量计算多组中间值;
获得多组加密后的中间值;
将多组明文分组数据与多组加密后的中间值异或,产生多组密文分组数据;
串联鉴别码和多组密文分组数据,产生密文数据。
8.如权利要求7所述的确定性鉴别加解密装置,其特征在于,获得多组加密后的中间值,包括:
向适配模块发送加密指令,并接收返回的多组加密后的中间值;
适配模块具体用于:在接收到加密指令后,对加密指令中的多组中间值进行加密。
9.如权利要求8所述的确定性鉴别加解密装置,其特征在于,适配模块具体用于:
并行对加密指令中的多组中间值进行加密。
10.如权利要求2所述的确定性鉴别加解密装置,其特征在于,根据多组密文分组数据和鉴别码,生成明文数据,包括:
根据鉴别码填充计数器产生中间初值;
根据密文分组数据的数量,增量计算每组中间值;
获得加密后的中间值;
将密文分组数据与每组中间值异或产生明文分组数据;
根据明文分组数据,生成第二鉴别码;
比较鉴别码与第二鉴别码,如果相同,将明文分组数据串联为明文数据。
11.如权利要求10所述的确定性鉴别加解密装置,其特征在于,获得加密后的中间值,包括:
向适配模块发送加密指令,并接收返回的加密后的中间值;
适配模块具体用于:在接收到加密指令后,对加密指令中的中间值进行加密。
12.如权利要求11所述的确定性鉴别加解密装置,其特征在于,适配模块具体用于:
并行对加密指令中的中间值进行加密。
13.如权利要求10所述的确定性鉴别加解密装置,其特征在于,根据明文分组数据,生成第二鉴别码,包括:
将明文分组数据填充并增加长度分组后,调用GHASH函数做有限域乘法和加法计算,获得第二鉴别码。
14.如权利要求13所述的确定性鉴别加解密装置,其特征在于,调用GHASH函数做有限域乘法和加法计算时,使用加速表并发加速。
15.一种确定性鉴别加解密方法,其特征在于,包括:
接收到应用系统发送的初始化指令后,完成初始化过程;
在接收到应用系统发送的加密计算指令后,调用鉴别加密函数,对加密计算指令中的明文数据进行加密计算,产生密文数据,并返回应用系统;所述鉴别加密函数的计算步骤包括:将明文数据分组填充并增加长度分组后,获得多组明文分组数据;根据多组明文分组数据,产生鉴别码;根据多组明文分组数据和鉴别码,产生密文数据;
在接收到应用系统发送的解密计算指令后,调用鉴别解密函数,对解密计算指令中的密文数据进行解密计算,获得明文数据,并返回应用系统;所述鉴别解密函数的计算步骤包括:将密文数据按照鉴别码长度分解为鉴别码和分解密文,并将分解密文进行分组,获得多组密文分组数据;根据多组密文分组数据和鉴别码,生成明文数据。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求15所述方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求15所述方法。
18.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求15所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111394974.9A CN114124354B (zh) | 2021-11-23 | 2021-11-23 | 确定性鉴别加解密装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111394974.9A CN114124354B (zh) | 2021-11-23 | 2021-11-23 | 确定性鉴别加解密装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114124354A true CN114124354A (zh) | 2022-03-01 |
CN114124354B CN114124354B (zh) | 2024-04-16 |
Family
ID=80439942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111394974.9A Active CN114124354B (zh) | 2021-11-23 | 2021-11-23 | 确定性鉴别加解密装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124354B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064563A (zh) * | 2019-12-12 | 2020-04-24 | 北京计算机技术及应用研究所 | 一种高效并行gcm实现方法 |
CN111835509A (zh) * | 2020-05-20 | 2020-10-27 | 成都盛拓源科技有限公司 | 一种基于哈希函数和口令的抗丢失单向加密方法及装置 |
CN112994874A (zh) * | 2021-04-19 | 2021-06-18 | 工业信息安全(四川)创新中心有限公司 | 一种基于消息鉴别码算法的保留格式加密方法及解密方法 |
-
2021
- 2021-11-23 CN CN202111394974.9A patent/CN114124354B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064563A (zh) * | 2019-12-12 | 2020-04-24 | 北京计算机技术及应用研究所 | 一种高效并行gcm实现方法 |
CN111835509A (zh) * | 2020-05-20 | 2020-10-27 | 成都盛拓源科技有限公司 | 一种基于哈希函数和口令的抗丢失单向加密方法及装置 |
CN112994874A (zh) * | 2021-04-19 | 2021-06-18 | 工业信息安全(四川)创新中心有限公司 | 一种基于消息鉴别码算法的保留格式加密方法及解密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114124354B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10009171B2 (en) | Construction and uses of variable-input-length tweakable ciphers | |
US9537657B1 (en) | Multipart authenticated encryption | |
Sarkar | A simple and generic construction of authenticated encryption with associated data | |
US7110545B2 (en) | Method and apparatus for symmetric-key encryption | |
US20080084996A1 (en) | Authenticated encryption method and apparatus | |
US8107620B2 (en) | Simple and efficient one-pass authenticated encryption scheme | |
US20120008767A1 (en) | System for encrypting and decrypting a plaintext message with authentication | |
US9787475B2 (en) | Device, method, and program for message authentication tag generation | |
WO2013065241A1 (ja) | インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置 | |
CN112152805B (zh) | 一种认证加密方法、验证解密方法和通信方法 | |
KR20020041815A (ko) | 대칭-키 암호에 대한 선형 변환 | |
CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
CN111314050A (zh) | 一种加解密方法及装置 | |
Paar et al. | Message authentication codes (MACs) | |
CN102946315A (zh) | 一种采用分组方式构造mac码的方法及系统 | |
US20110317840A1 (en) | System and method of performing authentication | |
CN114124354B (zh) | 确定性鉴别加解密装置及方法 | |
Paar et al. | More about block ciphers | |
CN114095259A (zh) | 鉴别加解密装置及方法 | |
CN111314051A (zh) | 一种加解密方法和装置 | |
JP2015082077A (ja) | 暗号化装置、制御方法、及びプログラム | |
KR20150103394A (ko) | 암호화 시스템 및 그것의 암호 통신 방법 | |
Dworkin | Request for review of key wrap algorithms | |
CN115549987B (zh) | 一种基于数据安全隐私保护的混合加密方法 | |
CN117273728A (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 |