CN112054889B - 消息认证码的生成方法及生成装置、计算机可读存储介质 - Google Patents

消息认证码的生成方法及生成装置、计算机可读存储介质 Download PDF

Info

Publication number
CN112054889B
CN112054889B CN201910493015.9A CN201910493015A CN112054889B CN 112054889 B CN112054889 B CN 112054889B CN 201910493015 A CN201910493015 A CN 201910493015A CN 112054889 B CN112054889 B CN 112054889B
Authority
CN
China
Prior art keywords
byte
message
stage
output value
message block
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
CN201910493015.9A
Other languages
English (en)
Other versions
CN112054889A (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.)
Suzhou Institute of Nano Tech and Nano Bionics of CAS
Original Assignee
Suzhou Institute of Nano Tech and Nano Bionics of CAS
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 Suzhou Institute of Nano Tech and Nano Bionics of CAS filed Critical Suzhou Institute of Nano Tech and Nano Bionics of CAS
Priority to CN201910493015.9A priority Critical patent/CN112054889B/zh
Publication of CN112054889A publication Critical patent/CN112054889A/zh
Application granted granted Critical
Publication of CN112054889B publication Critical patent/CN112054889B/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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种消息认证码的生成方法及生成装置。该方法包括根据输入的原始密钥Kin计算得到临时密钥K0,并存储所述临时密钥K0;将输入的消息分割成N个消息块;根据所述N个消息块中的第1至第N‑1个消息块依次计算得到第N‑1阶段的密码输出值的每个字节;每当生成所述第N‑1阶段的密码输出值的每个字节时,根据所述第N‑1阶段的密码输出值的每个字节、所述第N个消息块的每个字、所述临时密钥K0的每个字节以及所述原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码。这样不需要设置额外的存储单元来存储第N‑1阶段的密码输出值,改进了传统AES‑CMAC处理器,节省了存储单元数量,降低了成本和功耗。

Description

消息认证码的生成方法及生成装置、计算机可读存储介质
技术领域
本发明属于硬件加密技术领域,具体地讲,涉及一种消息认证码的生成方法及生成装置、计算机可读存储介质。
背景技术
物联网(Internet of Things,简称IoT)设备除了要求成本低、功耗低之外,还要求很高的安全保密性。这是因为多数的物联网设备都会处理、存储和传输各种隐秘信息,比如个人健康信息、敏感数据等。所以,物联网芯片中的数据处理之后需要加入安全保密模块,以达到高安全保密性的数据存储和传输。目前的安全保密模块的研究重点主要是如何提高安全保密性,而功耗和芯片面积则没有满足物联网应用的要求。但是在物联网应用和芯片设计中,我们需要在达到高安全保密性的同时,达到超低功耗和超低成本的设计目标也尤其重要。
加密需要与认证相结合,以形成相对完整的硬件安全解决方案。高级加密标准(Advanced Encryption Standard,AES)是最流行的数据加密标准,同时基于加密编码的消息认证码(Cipher-based message authentication code,CMAC)提供认证以确保数据的真实性和完整性。目前技术中提出了基于高级加密标准(AES)密码的轻量级消息认证码(CMAC)处理器(AES-CMAC),但是目前的AES-CMAC硬件设计所需存储器数量过多,导致电路面积大,成本高,功耗大。
发明内容
(一)本发明所要解决的技术问题
本发明解决的技术问题是:如何减少消息认证码的生成装置所需存储器数量,使得电路面积减小,从而降低成本和功耗。
(二)本发明所采用的技术方案
一种消息认证码的生成方法,所述生成方法包括:
根据输入的原始密钥Kin计算得到临时密钥K0,并存储所述临时密钥K0
将输入的消息分割成N个消息块,其中,第1至第N-1个消息块的长度均相等;
根据所述N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节;
每当生成所述第N-1阶段的密码输出值的每个字节时,根据所述第N-1阶段的密码输出值的每个字节、所述第N个消息块的每个字节、所述临时密钥K0的每个字节以及所述原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码。
优选地,所述根据所述N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节的方法包括:
对所述第1至第N-1个消息块中每个消息块的每个字节依次进行密码分组链接模式计算,以得到第N-1阶段的密码输出值的每个字节。
优选地,所述每当生成所述第N-1阶段的密码输出值的每个字节时,根据所述第N-1阶段的密码输出值的每个字节、所述第N个消息块的每个字节以及所述临时密钥K0的每个字节依次计算得到第N阶段的密码输出值的每个字节的方法包括:
判断所述第N个消息块的长度是否等于第1个消息块的长度;
若是,则根据所述临时密钥K0的每个字节依次计算得到第一子密钥K1的每个字节;
根据所述第N个消息块的每个字节和所述第一子密钥K1的每个字节依次计算得到第N阶段的第一中间消息块Mn’的每个字节;
根据所述第一中间消息块Mn’的每个字节和所述第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。
优选地,若所述第N个消息块的长度不等于第1个消息块的长度,所述生成方法还包括:
对所述第N个消息块填充比特数据流以使得的所述第N个消息块的长度等于第1个消息块的长度;
根据所述第一子密钥K1的每个字节依次计算得到第二子密钥K2的每个字节;
根据所述第N个消息块的每个字节和所述第二子密钥K2的每个字节依次计算得到第N阶段的第二中间消息块Mn”的每个字节;
根据所述第二中间消息块Mn”的每个字节和所述第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。
本发明还公开了一种消息认证码的生成装置,包括:
密钥生成模块,用于接收输入的原始密钥Kin并生成临时密钥K0,且存储所述临时密钥K0
消息分割模块,用于将输入的消息分割成N个消息块,其中,第1至第N-1个消息块的长度均相等;
加密模块,用于根据所述N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节;
且所述加密模块还用于每当生成所述第N-1阶段的密码输出值的每个字节时,根据所述第N-1阶段的密码输出值的每个字节、所述第N个消息块的每个字节、所述临时密钥K0的每个字节以及所述原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码。
优选地,所述加密模块还用于对所述第1至第N-1个消息块中每个消息块的每个字节依次进行密码分组链接模式计算,以得到第N-1阶段的密码输出值的每个字节。
优选地,所述消息分割模块还用于判断所述第N个消息块的长度是否等于第1个消息块的长度;
当所述消息分割模块判断所述第N个消息块的长度等于第1个消息块的长度时:
所述密钥生成模块还用于根据所述临时密钥K0的每个字节依次计算得到第一子密钥K1的每个字节;
所述加密模块还用于:根据所述第N个消息块的每个字节和所述第一子密钥K1的每个字节依次计算得到第N阶段的第一中间消息块Mn’的每个字节;
根据所述第一中间消息块Mn’的每个字节和所述第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。
优选地,当所述消息分割模块判断所述第N个消息块的长度不等于第1个消息块的长度时:
所述消息分割模块还用于对所述第N个消息块填充比特数据流以使得的所述第N个消息块的长度等于第1个消息块的长度;
所述密钥生成模块还用于根据所述第一子密钥K1的每个字节依次计算得到第二子密钥K2的每个字节;
所述加密模块还用于:根据所述第N个消息块的每个字节和所述第二子密钥K2的每个字节依次计算得到第N阶段的第二中间消息块Mn”的每个字节;
根据所述第二中间消息块Mn”的每个字节和所述第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有消息认证码的生成程序,所述消息认证码的生成程序被处理器执行时实现任一种上述的消息认证码的生成方法。
(三)有益效果
本发明公开了一种消息认证码的生成方法及生成装置,其核心在于通过提前计算临时密钥,且在每当生成第N-1阶段的密码输出值的一个字节时,根据该字节和第N个消息块的相应字节以及临时密钥即可计算出第N阶段的密码输出值的相应字节,以生成消息认证码,这样不需要设置额外的存储单元来存储第N-1阶段的密码输出值,改进了传统AES-CMAC处理器,节省了存储单元数量,降低了成本。
附图说明
图1为现有技术中AES-CMAC处理器的硬件架构图;
图2为本发明的实施例一的消息认证码的生成方法的流程图;
图3为本发明的实施例一的消息认证码的生成方法的另一流程图;
图4为本发明的实施例二的消息认证码的生成装置的原理框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了现有技术中AES-CMAC处理器的架构图,其中这里的AES加密模块的模式为密码分组链接模式(CipherBlockChaining,简称CBC)。在现有技术的AES-CMAC设计的认证流程如下:从1st到(N-1)th阶段,各个消息块M1,……MN-1与前一阶段的密码输出值EK(n)进行异或运算得到EK(N-1),接着将EK(N-1)送入后续的密码模块。在传统的设计中,第(N-1)th阶段的输出EK(N-1)必须存储在相应的存储单元中,对于阶段N,使用相应位“0”作为消息输入来计算临时密钥K0=EK(0)。最后根据临时密钥K0和第(N-1)th阶段的输出EK(N-1)来计算得到第N阶段的输出,即消息认证码。这里以消息块长度128位为例,为了执行上述认证流程,总共需要679个存储单元(即触发器)。具体来说,需要128个存储单元来存储原始密钥输入;在AES模块内,需要128位存储单元来存储和更新状态Sij,需要128位存储单元来存储和更新密钥Kij。需要128位存储单元来存储和更新EK(n),需要128位存储单元来存储K0。此外,还需要39位存储单元用于控制。
本发明通过改进认证流程,以节省存储单元,下面通过两个具体实施例来详细描述本发明的具体方案。
实施例一
图2示出了本发明的实施例一的消息认证码的生成方法的流程图,该生成方法包括如下步骤:
步骤一:根据输入的原始密钥Kin计算得到临时密钥K0,并存储临时密钥K0
具体来说,在外部消息输入至处理器之前,将原始密钥Kin输入至处理器,并根据原始密钥Kin计算得到临时密钥K0,计算完成后将临时密钥K0存储在相应的存储单元中。传统技术中,在认证流程的第N阶段才进行临时密钥K0的计算,同样也需要相应的存储单元来存储临时密钥K0,本实施例在第0阶段即完成临时密钥K0的计算。临时密钥K0的具体计算过程属于本领域的公知技术,在此不进行赘述。
步骤二:将输入的消息分割成N个消息块,其中,第1至第N-1个消息块的长度均相等。
具体来说,从外部输入消息Min后,按照预定的分割方式将消息Min分割成N个消息块Mn,即Min=M1||M2||…||MN-1||MN,其中“||”表示N个消息块的拼接。消息块M1,……MN-1是完整的消息块(例如消息块长度为128位),MN可能是或可能不是一个完整的消息块(例如消息块长度等于或小于128位)。当然在其他实施方式中,在外部消息输入至处理器之前,即可按照预定的分割方式将消息Min分割成N个消息块Mn,然后将分割好的各个消息块Mn输入至处理器中。
步骤三:根据N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节。
具体地,此步骤采用现有的AES算法来计算每个阶段的密码输出值。如图3所示,作为优选实施例,对第1至第N-1个消息块中每个消息块的每个字节依次进行密码分组链接模式计算,以得到第N-1阶段的密码输出值的每个字节。进一步地讲,第1个消息块M1进入处理器的密码模块后,密码模块计算生成第1阶段的密码输出值EK(1),每当第1阶段的密码输出值EK(1)的第一个字节生成时,将EK(1)的第一个字节和第2个消息块M2的第一个字节进行异或运算,并将进行异或运算得到的值输入密码模块,密码模块生成第2阶段的密码输出值EK(2)的第一个字节,依次类推,直至计算出第N-1阶段的密码输出值EK(N-1)的第一个字节。重复上述补充,对每个阶段的密码输出值的第二个字节、第三个字节直至最后一个字节进行异或运算后,最后计算得到第N-1阶段的密码输出值EK(N-1)的每个字节。
步骤四:每当生成第N-1阶段的密码输出值的每个字节时,根据第N-1阶段的密码输出值的每个字节、第N个消息块的每个字节以及临时密钥K0的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码。
在本实施例中,由于前N-1个阶段中每个阶段的密码输出值都是依次生成逐个字节的,当第N-1阶段的密码输出值EK(N-1)的每个字节生成时,由于临时密钥K0已经提前计算出来了,即可根据EK(N-1)的每个字节、第N个消息块的每个字节以及临时密钥K0的每个字节进行相应的计算后,并输入密码模块,密码模块输出第N阶段的密码输出值EK(N)的每个字节,即可获取消息认证码。由于每当第N-1阶段的密码输出值EK(N-1)的每个字节生成时就进行相应的计算,这时不需要设置专门的存储单元来存储第N-1阶段的密码输出值EK(N-1),然而传统的技术中,第N-1阶段的密码输出值EK(N-1)计算出来后,由于需要时间来继续计算K0、K1、K2,所以EK(N-1)必须存储在存储单元中,这样本实施例节省了相应的存储单元。以128位的消息块为例,可省去传统设计中用来存储第N-1阶段的密码输出值EK(N-1)的128位存储单元,从而节省了大约19%的存储单元数量。
具体地,该步骤四包括如下步骤:
步骤四一:判断第N个消息块的长度是否等于第1个消息块的长度。由于在对原始输入的消息Min进行分割时,如果消息Min刚好是每个消息块Mn的整数倍,此时第N个消息块为完整消息块,其长度也等于第1个消息块的长度,否则第N个消息块为非完整消息块,其长度小于第1个消息块的长度。
步骤四二:若第N个消息块的长度等于第1个消息块的长度,则根据临时密钥K0的每个字节依次计算得到第一子密钥K1的每个字节。具体来说,若临时密钥K0的最高有效位(MSB)为0,则第一子密钥K1的值为K0<<1(表示K0值左移一个比特位);若临时密钥K0的最高有效位(MSB)不为0,则第一子密钥K1的值为K1=(K0<<1)⊕C,⊕表示比特位的异或运算,C为与原始密钥的字节长度相关的既定常数。
步骤四三:根据第N个消息块的每个字节和第一子密钥K1的每个字节依次计算得到第N阶段的第一中间消息块MN’的每个字节。
具体来说,第一中间消息块MN’的计算公式为MN’=K1⊕MN
步骤四四:根据第一中间消息块MN’的每个字节和第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。
具体地讲,将第一中间消息块MN’的每个字节和第N-1阶段的密码输出值的每个字节进行异或运算后得到的值输入进密码模块中,密码模块依次生成第N阶段的密码输出值的每个字节,即获取了消息认证码。
如果第N个消息块的长度不等于第1个消息块的长度,那么生成方法还包括:
步骤四五:对第N个消息块填充比特数据流以使得的第N个消息块的长度等于第1个消息块的长度。
步骤四六:根据第一子密钥K1的每个字节依次计算得到第二子密钥K2的每个字节。
具体地,若第一子密钥K1的最高有效位(MSB)为0,则第二子密钥K2的值为K1<<1(表示K1值左移一个比特位);若第一子密钥K1的最高有效位(MSB)不为0,则第二子密钥K2=(K1<<1)⊕C。
步骤四七:根据所述第N个消息块的每个字节和所述第二子密钥K2的每个字节依次计算得到第N阶段的第二中间消息块Mn”的每个字节。该步骤与步骤四三类似,在此不进行赘述。
根据所述第二中间消息块Mn”的每个字节和所述第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。该步骤与步骤四四类似,在此不进行赘述。
本实施例公开的消息认证码的生成方法,通过提前计算临时密钥,每当生成第N-1阶段的密码输出值的一个字节时,根据该字节和第N个消息块的相应字节以及临时密钥即可计算出第N阶段的密码输出值的相应字节,以生成消息认证码,这样不需要设置额外的存储单元来存储第N-1阶段的密码输出值,改进了传统AES-CMAC处理器,节省了存储单元数量,降低了成本。
实施例二
图4示出了本实施例二的消息认证码的生成装置的原理框图。该生成装置包括密钥生成模块10、消息分割模块20和加密模块30。其中,密钥生成模块10用于接收输入的原始密钥Kin并生成临时密钥K0,且存储临时密钥K0。消息分割模块20用于将输入的消息分割成N个消息块,其中,第1至第N-1个消息块的长度均相等。加密模块30用于根据N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节;且加密模块30还用于每当生成第N-1阶段的密码输出值的每个字节时,加密模块还用于:根据第N-1阶段的密码输出值的每个字节、第N个消息块的每个字节以及临时密钥K0的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码。
具体来说,加密模块还用于对第1至第N-1个消息块中每个消息块的每个字节依次进行密码分组链接模式计算,以得到第N-1阶段的密码输出值的每个字节。具体的计算方法已在实施例一中描述,在此不进行赘述。
进一步地,消息分割模块20还用于判断第N个消息块的长度是否等于第1个消息块的长度;当消息分割模块20判断第N个消息块的长度等于第1个消息块的长度时:
密钥生成模块10还用于根据临时密钥K0的每个字节依次计算得到第一子密钥K1的每个字节;加密模块30还用于:根据第N个消息块的每个字节和第一子密钥K1的每个字节依次计算得到第N阶段的第一中间消息块Mn’的每个字节;根据第一中间消息块Mn’的每个字节和第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。上述的计算方法已在实施例一中描述,在此不进行赘述。
进一步地,当消息分割模块20判断第N个消息块的长度不等于第1个消息块的长度时:
消息分割模块20还用于对第N个消息块填充比特数据流以使得的第N个消息块的长度等于第1个消息块的长度;密钥生成模块10还用于根据第一子密钥K1的每个字节依次计算得到第二子密钥K2的每个字节;加密模块30还用于:根据第N个消息块的每个字节和第二子密钥K2的每个字节依次计算得到第N阶段的第二中间消息块Mn”的每个字节;根据第二中间消息块Mn”的每个字节和第N-1阶段的密码输出值的每个字节依次计算得到第N阶段的密码输出值的每个字节。上述的计算方法已在实施例一中描述,在此不进行赘述。
具体来说,本实施例二通过改进消息认证码的生成装置的各个模块的具体计算过程,使得生成装置不需要设置额外的存储单元来存储第N-1阶段的密码输出值,节省了存储单元数量,从而改进了生成装置,降低了成本。
实施例三
本发明的实施例三还公开了一种计算可读存储介质,该计算机可读存储介质存储有消息认证码的生成程序,消息认证码的生成程序被处理器执行时实现如实施例一所述的消息认证码的生成方法。
上面对本发明的具体实施方式进行了详细描述,虽然已表示和描述了一些实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改和完善,这些修改和完善也应在本发明的保护范围内。

Claims (5)

1.一种消息认证码的生成方法,其特征在于,所述生成方法包括:
根据输入的原始密钥Kin计算得到临时密钥K0,并存储所述临时密钥K0
将输入的消息分割成N个消息块,其中第1至第N-1个消息块的长度均相等;
根据所述N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节;
每当生成所述第N-1阶段的密码输出值的每个字节时,根据所述第N-1阶段的密码输出值的每个字节、第N个消息块的每个字节、所述临时密钥K0的每个字节以及所述原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码;
其中,每当生成所述第N-1阶段的密码输出值的每个字节时,根据所述第N-1阶段的密码输出值的每个字节、所述第N个消息块的每个字节以及所述临时密钥K0的每个字节依次计算得到第N阶段的密码输出值的每个字节的方法包括:
判断所述第N个消息块的长度是否等于第1个消息块的长度;
若是,则根据所述临时密钥K0的每个字节依次计算得到第一子密钥K1的每个字节;
根据所述第N个消息块的每个字节和所述第一子密钥K1的每个字节依次计算得到第N阶段的第一中间消息块Mn’的每个字节;
根据所述第一中间消息块Mn’的每个字节、所述第N-1阶段的密码输出值每个字节和原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节;
其中,若所述第N个消息块的长度不等于第1个消息块的长度,所述生成方法还包括:
对所述第N个消息块填充比特数据流以使得的所述第N个消息块的长度等于第1个消息块的长度;
根据所述第一子密钥K1的每个字节依次计算得到第二子密钥K2的每个字节;
根据所述第N个消息块的每个字节和所述第二子密钥K2的每个字节依次计算得到第N阶段的第二中间消息块Mn”的每个字节;
根据所述第二中间消息块Mn”的每个字节、所述第N-1阶段的密码输出值的每个字节和原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节。
2.根据权利要求1所述的消息认证码的生成方法,其特征在于,所述根据所述N个消息块中的第1至第N-1个消息块依次计算得到第N-1阶段的密码输出值的每个字节的方法包括:
对所述第1至第N-1个消息块中每个消息块的每个字节依次进行密码分组链接模式计算,以得到第N-1阶段的密码输出值的每个字节。
3.一种消息认证码的生成装置,其特征在于,包括:
密钥生成模块,用于接收输入的原始密钥Kin并生成临时密钥K0,且存储所述临时密钥K0
消息分割模块,用于将输入的消息分割成N个消息块,其中,第1至第N-1个消息块的长度均相等;
加密模块,用于根据所述N个消息块中的第1至第N-1个消息块、和Kin依次计算得到第N-1阶段的密码输出值的每个字节;
且所述加密模块还用于每当生成所述第N-1阶段的密码输出值的每个字节时,根据所述第N-1阶段的密码输出值的每个字节、所述第N个消息块的每个字节、所述临时密钥K0的每个字节和原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节,以生成消息认证码;
其中,所述消息分割模块还用于判断所述第N个消息块的长度是否等于第1个消息块的长度;
当所述消息分割模块判断所述第N个消息块的长度等于第1个消息块的长度时:
所述密钥生成模块还用于根据所述临时密钥K0的每个字节依次计算得到第一子密钥K1的每个字节;
所述加密模块还用于:根据所述第N个消息块的每个字节和所述第一子密钥K1的每个字节依次计算得到第N阶段的第一中间消息块Mn’的每个字节;
根据所述第一中间消息块Mn’的每个字节、所述第N-1阶段的密码输出值的每个字节和原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节;
其中,当所述消息分割模块判断所述第N个消息块的长度不等于第1个消息块的长度时:
所述消息分割模块还用于对所述第N个消息块填充比特数据流以使得的所述第N个消息块的长度等于第1个消息块的长度;
所述密钥生成模块还用于根据所述第一子密钥K1的每个字节依次计算得到第二子密钥K2的每个字节;
所述加密模块还用于:根据所述第N个消息块的每个字节和所述第二子密钥K2的每个字节依次计算得到第N阶段的第二中间消息块Mn”的每个字节;
根据所述第二中间消息块Mn”的每个字节、所述第N-1阶段的密码输出值的每个字节和原始密钥Kin的每个字节依次计算得到第N阶段的密码输出值的每个字节。
4.根据权利要求3所述的消息认证码的生成装置,其特征在于,所述加密模块还用于对所述第1至第N-1个消息块中每个消息块的每个字节依次进行密码分组链接模式计算,以得到第N-1阶段的密码输出值的每个字节。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有消息认证码的生成程序,所述消息认证码的生成程序被处理器执行时实现如权利要求1或2所述的消息认证码的生成方法。
CN201910493015.9A 2019-06-06 2019-06-06 消息认证码的生成方法及生成装置、计算机可读存储介质 Active CN112054889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910493015.9A CN112054889B (zh) 2019-06-06 2019-06-06 消息认证码的生成方法及生成装置、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910493015.9A CN112054889B (zh) 2019-06-06 2019-06-06 消息认证码的生成方法及生成装置、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112054889A CN112054889A (zh) 2020-12-08
CN112054889B true CN112054889B (zh) 2022-10-18

Family

ID=73608687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910493015.9A Active CN112054889B (zh) 2019-06-06 2019-06-06 消息认证码的生成方法及生成装置、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112054889B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101913644B1 (ko) * 2017-03-13 2018-10-31 동국대학교 산학협력단 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
CN108234466A (zh) * 2017-12-26 2018-06-29 中国移动通信集团江苏有限公司 信息加密通信方法、装置、计算设备及存储介质

Also Published As

Publication number Publication date
CN112054889A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
US11218320B2 (en) Accelerators for post-quantum cryptography secure hash-based signing and verification
US7907725B2 (en) Simple universal hash for plaintext aware encryption
US9225521B2 (en) Apparatus and method for skein hashing
CN103560880B (zh) 用于生成基于密码的消息认证码的方法
US20150349950A1 (en) Construction and uses of variable-input-length tweakable ciphers
CN110880967B (zh) 采用分组对称密钥算法对多消息并行加解密方法
CN102411694B (zh) 加密装置及存储器系统
WO2020168627A1 (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
Achkoun et al. SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes
US7257229B1 (en) Apparatus and method for key scheduling
El-meligy et al. 130nm Low power asynchronous AES core
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN112054889B (zh) 消息认证码的生成方法及生成装置、计算机可读存储介质
CN114826558B (zh) 一种海量数据快速加密方法及系统
WO2023093278A1 (zh) 数字签名门限方法和装置
CN114826560B (zh) 一种轻量级分组密码cref实现方法及系统
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
CN112202546B (zh) Sm3密码杂凑算法消息扩展串行优化系统与方法
US20030198342A1 (en) System and method for implementing a hash algorithm
Mohammed Text encryption algorithm based on chaotic neural network and random key generator
Lee et al. Lightweight and low-latency AES accelerator using shared SRAM
Prathima et al. ASIC Implementation of Rabbit Stream Cipher Encryption for Data
Usman et al. A data specific comparative study for choosing best cryptographic technique
Fang et al. Decomposition of higher-order nonlinear S-boxes in lightweight block ciphers for algebraic fault analysis
CN115834028A (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