CN114124354A - 确定性鉴别加解密装置及方法 - Google Patents

确定性鉴别加解密装置及方法 Download PDF

Info

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
Application number
CN202111394974.9A
Other languages
English (en)
Other versions
CN114124354B (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.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202111394974.9A priority Critical patent/CN114124354B/zh
Publication of CN114124354A publication Critical patent/CN114124354A/zh
Application granted granted Critical
Publication of CN114124354B publication Critical patent/CN114124354B/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/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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
对于i=1,...,m,计算
Figure BDA0003369708580000071
返回Xm
其中
Figure BDA0003369708580000072
多项式为:f=1+α+α27128
鉴别加密函数采用公式详细介绍如下:
输入:明文数据P和鉴别码位长度t,其中t=8i,4≤i≤12;
输出:密文数据C;
算法:将明文数据P按照128位分组为位串序列,最后一个分组可能不足128位,分组填充并增加长度分组后,获得多组明文分组数据,即:
Figure BDA0003369708580000073
计算:
H=EK(0128)
Figure BDA0003369708580000074
Y0=T||0127-len(T)||1
Yi=inc128-len(T)(Yi-1)对于i=1,...,n
Figure BDA0003369708580000075
对于i=1,...,n-1
Figure BDA0003369708580000081
Figure BDA0003369708580000082
其中,K为分组密码密钥,H为杂凑子密钥,P为明文数据,C为密文数据,R为分组乘法操作算法中的常量,T为鉴别码,t为鉴别码的位长度,FAIL为鉴别失败。
操作和函数定义:
0s为由s个比特位‘0’组成的位串;
X||Y为两个比特位串X和Y的串联;
Figure BDA0003369708580000083
两个相同长度的位串X和Y的位异或;
X·Y为两个位串X和Y在二元扩域
Figure BDA0003369708580000084
的积,X和Y被视为
Figure BDA0003369708580000085
的元素;
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;
将C分解为长度为t的鉴别码和128位分组的串序列(分解密文C),最后一个分组可能不足128位,即:
Figure BDA0003369708580000091
如果len(C)≤t返回FAIL,否则计算:
H=E(K,0128)
Y0=T||0127-len(T)||1
Yi=inc128-len(T)(Yi-1)对于i=1,...,n
Figure BDA0003369708580000092
对于i=1,...,n-1
Figure BDA0003369708580000093
Figure BDA0003369708580000094
Figure BDA0003369708580000095
若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所述方法。
CN202111394974.9A 2021-11-23 2021-11-23 确定性鉴别加解密装置及方法 Active CN114124354B (zh)

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)

* Cited by examiner, † Cited by third party
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 工业信息安全(四川)创新中心有限公司 一种基于消息鉴别码算法的保留格式加密方法及解密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
US20060285684A1 (en) Method and apparatus for facilitating efficient authenticated encryption
US20120008767A1 (en) System for encrypting and decrypting a plaintext message with authentication
US9787475B2 (en) Device, method, and program for message authentication tag generation
Raeburn Encryption and checksum specifications for Kerberos 5
WO2013065241A1 (ja) インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
KR20020041815A (ko) 대칭-키 암호에 대한 선형 변환
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
CN111314050A (zh) 一种加解密方法及装置
US20070277043A1 (en) Methods for Generating Identification Values for Identifying Electronic Messages
US20110317840A1 (en) System and method of performing authentication
CN114124354B (zh) 确定性鉴别加解密装置及方法
CN114095259A (zh) 鉴别加解密装置及方法
CN111314051A (zh) 一种加解密方法和装置
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
KR20150103394A (ko) 암호화 시스템 및 그것의 암호 통신 방법
Dworkin Request for review of key wrap algorithms
Homer A Chosen Plaintext Attack on Offset Public Permutation Mode
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