CN107566360B - 一种数据认证码的生成方法 - Google Patents

一种数据认证码的生成方法 Download PDF

Info

Publication number
CN107566360B
CN107566360B CN201710743045.1A CN201710743045A CN107566360B CN 107566360 B CN107566360 B CN 107566360B CN 201710743045 A CN201710743045 A CN 201710743045A CN 107566360 B CN107566360 B CN 107566360B
Authority
CN
China
Prior art keywords
data
mac
user
authentication code
signature
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
CN201710743045.1A
Other languages
English (en)
Other versions
CN107566360A (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.)
Beijing Star Tong Technology Co Ltd
Original Assignee
Beijing Star Tong Technology Co 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 Beijing Star Tong Technology Co Ltd filed Critical Beijing Star Tong Technology Co Ltd
Priority to CN201710743045.1A priority Critical patent/CN107566360B/zh
Priority to GBGB1720671.5A priority patent/GB201720671D0/en
Publication of CN107566360A publication Critical patent/CN107566360A/zh
Application granted granted Critical
Publication of CN107566360B publication Critical patent/CN107566360B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据认证码的生成方法,包括:设置一个固定的任意长度的二进制字符串为MAC函数的初始向量值MAC0;调用MAC函数,以当前存在的最后一个输出的MAC值MACi‑1作为初始向量,以没有生成数据认证码的当前数据Mi对应的字符串作为输入,输出相应的MAC值MACi,作为当前数据Mi的非公开验证数据认证码,并存储、发送该MAC值MACi到寄存服务器;根据公开验证周期策略,以最后一个生成的非公开数据认证码对应的MAC值MACi作为输入,输出当前数据Mi的公开可验证数据认证码,并存储、发送到寄存服务器。本发明生成的当前数据的数据认证码能够对之前所有数据进行认证,不仅降低数据丢失风险,增强数据认证的可靠性和安全性,而且提高数据认证效率。

Description

一种数据认证码的生成方法
技术领域
本发明涉及数据认证技术,具体涉及一种数据认证码的生成方法。
背景技术
随着网络技术和大数据概念的发展,保证数据完整性的数据认证技术变得更为关键,无论是在政府、金融、电力、医疗、航天、航运行业等任意行业,在通信过程中,保证数据安全,不被损坏,都是实现数据存储、提高系统可靠性的重中之重,一旦数据被破坏,将会带来不可弥补的损失。
目前,采用的数据认证技术主要为消息认证码、数字签名方案等,只逐条对当前的增量数据进行认证,而无法保证之前所有数据的安全性,这种只对当前增量数据进行验证的方案,无法对之前的数据存进行认证,存在丢失、损坏风险;如果要对之前全部数据进行认证,需要对所有数据重新处理,数据处理量十分大,特别是对于具有公开性验证性的数字签名,由于其计算速度较为缓慢,如果逐条对增量数据进行认证,随着数据量的增加,整个认证过程将需要较长时间,不仅数据认证效率较低,且延迟明显,影响用户体验。
发明内容
本发明所要解决的技术问题是现有的逐条对当前增量数据进行认证生成的数据认证码,只反映当前增量数据的完整性,无法对之前所有数据的完整性进行认证,存在丢失、损坏风险,如果要对之前全部数据进行认证,需要对所有数据重新处理,数据处理量十分大,数据认证效率较低,延迟明显,影响用户体验,尤其是在要求认证码为公开时认证速度极为缓慢,以上缺陷更为明显。
为了解决上述技术问题,本发明所采用的技术方案是提供一种数据认证码的生成方法,该方法配置在可与寄存服务器通信的用户端,包括以下步骤:
为系统设置消息认证码函数初始向量值MAC0,初始向量值MAC0为一个固定的任意长度的二进制字符串;
调用消息认证码函数,以当前存在的最后一个输出的MAC值MACi-1作为初始向量,以没有生成数据认证码的当前数据Mi对应的字符串作为输入,输出相应的MAC值MACi,作为当前数据Mi的非公开验证数据认证码,并存储、发送该MAC值MACi到寄存服务器;
根据公开验证周期策略,以最后一个生成的非公开数据认证码对应的MAC值MACi作为输入,输出当前数据Mi的公开可验证数据认证码,并存储、发送到寄存服务器。
在上述方法中,在根据公开验证周期策略,生成当前数据Mi的公开可验证数据认证码时,先对输入的最后一个输出的MAC值MACi的正确性进行检验,检验正确后,才开始进行生成当前数据Mi的公开可验证数据认证码的计算。
在上述方法中,公开验证周期策略包括:
对于每条数据都实时生成;
仅对当前最后输出的MAC值MACi对应的数据生成;
仅在系统空闲时对当前最后输出的MAC值MACi对应的数据生成;
按照一定时间周期对当前最后输出的MAC值MACi对应的数据生成。
在上述方法中,根据隐私保护需要,对新接收的数据加密,再对加密后的数据生成非公开验证数据认证码和公开可验证数据认证码;密钥由用户管理。
在上述方法中,所述消息认证码函数为支持认证消息的异或运算且分级处理的算法。
在上述方法中,所述消息认证码函数包括CMAC算法、HMAC算法。
在上述方法中,所述公开可验证数据认证码为数字签名或多重签名等非对称签名算法。
在上述方法中,当MAC函数为NIST SP800-38B中定义的CMAC消息认证码算法时,生成用户U与用户A之间数字验证码的具体包括以下步骤:
步骤11、用户U与用户A确定一个签名周期N,开启通道UA,初始化所有参数和密钥,计算MAC初始向量值MAC0=0;
步骤12、从用户A处收到一个新数据Mi,用户U加密得到其加密数据E为安全分组加密算法,kENC为加密密钥;
步骤13、查找本地记录是否存在上一次MAC值MACi-1,如果存在,执行步骤14;否则,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签名σq、与该签名对应的数据开始所有未经消息认证码函数处理的数据以及所有未经消息认证码函数处理的数据对应的MAC值发送给用户U,用户U对其检验正确后,执行步骤14;
步骤14、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算本次MAC值MACi;其中,CMAC为RFC4493中AES-CMAC标准算法中的AES替换为任意安全分组加密算法E时的MAC算法,kMAC为消息认证码函数密钥;
步骤15、判断是否是签名周期,若不是,向寄存服务器发送本次MAC值MACi以及加密后的数据mi;若是,用户U对最新的MAC值MACi签名,并将加密后数据mi、本次MAC值MACi及其签名σi发送给寄存服务器存储;
步骤16、判断交易通道是否终止,如未终止,则回到步骤12;否则,用户U查找本地存储的最新数据,判断数据是否正确,如果无误,则用户U终止与寄存服务器的通信,如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将将用户U最近一次的签名σq、与该签名对应的数据开始的所有数据以及所有数据对应的MAC值发给用户U,用户U检验正确,向寄存服务器发送对MACi的签名σi
在上述方法中,当MAC函数为RFC2104中定义的HMAC算法时,生成用户U与用户A之间数字验证码的具体包括以下步骤:
步骤21、用户U与用户A确定一个签名周期N,生成所有密钥、固定初始向量IV、RFC2104标准中指定的常数ipad和opad,计算 其中,kMAC为用户认证码生成密钥;
步骤22、从A处收到一个新数据Mi,用户U加密得到加密数据E为安全分组加密算法;
步骤23、查找本地记录是否存在MACi-1,如果存在,执行步骤24;否则,数据丢失,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签σq、与该签名对应的数据起的所有数据以及所有数据对应的MAC值发送给用户U,用户U检验正确后,执行步骤24;
步骤24、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算本次MAC值
步骤25、判断是否是签名周期,若不是,向寄存服务器发送本次数据对应的MAC值MACi以及加密后的数据mi;若是,则用户U对最新的MAC值MACi签名,将本次加密后的数据mi,本次MAC值MACi及其签名σi发送给寄存服务器存储;
步骤26、判断认证流程是否终止,如未终止,则回到步骤22;否则,用户U查找本地存储的最新数据,判断数据是否正确,如果无误则用户U与寄存服务器的本次雇佣关系终止,如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将将用户U最近一次的签名σq、与该签名对应的数据开始的所有数据以及所有数据对应的MAC值发给用户U,用户U检验正确,向寄存服务器发送对MACi的签名σi
本发明利用生成的当前数据的数据认证码(公开数据认证码和非公开数据认证码)能够对之前所有数据进行认证,这样,只要验证最后一条数据的数据认证码的正确性,就能保证之前所有数据认证码的正确性,不需要对增量数据逐条进行公开验证,不仅降低数据丢失风险,增强数据认证的可靠性和安全性,而且提高数据认证效率;同时,本发明生成的数据认证码还具有公开可验证、防伪造和不可抵赖性,在产生纠纷时,能够提供事实依据,特别的,本发明可用于区块链离链数据的完整性保护。
附图说明
图1为本发明提供的一种数据认证码的生成方法的流程图;
图2为应用本发明的一种区块链离链数据的安全存储系统的结构框图;
图3为利用本发明生成用户U与用户A之间数字验证码的具体流程图;
图4为本发明MAC函数为CMAC算法时,生成用户U与用户A之间数字验证码的具体流程图;
图5为本发明MAC函数为HMAC时,生成用户U与用户A之间数字验证码的具体流程图。
具体实施方式
下面结合说明书附图和具体实施例对本发明做出详细的说明。
如图1所示,本发明提供了一种数据认证码的生成方法,该方法配置在可与寄存服务器通信的用户端,具体包括以下步骤:
步骤10、初始化时,为了数据安全,需要为系统设置消息认证码(MessageAuthentication Code,简称MAC)函数初始向量值MAC0,初始向量值MAC0为一个固定的二进制字符串;
步骤20、调用消息认证码函数MAC(该消息认证码函数MAC为支持认证消息的异或运算且分组处理消息的算法,例如HMAC、CMAC等),以当前存在的最后一个输出的MAC值MACi-1作为初始向量,以没有生成数据认证码的当前数据Mi对应的字符串作为输入,输出相应的MAC值MACi,作为当前数据Mi的非公开验证数据认证码,并存储、发送该MAC值MACi及对应的当前数据Mi到寄存服务器,该非公开数据认证码反应的是数据拥有者对初始化以来所有数据的认证,认证速度快但不具有公开可验证性,是从第一条到最后一条数据的指纹信息;
步骤30、为保证第三方寄存服务器利益,实现在发生纠纷时追责,并使非公开认证码具有极端性公开认证特性,根据公开验证周期策略,以最后一个输出的MAC值MACi作为输入,检验MACi的正确性后,输出当前离链数据Mi的公开可验证数据认证码(数字签名等),并存储、发送到寄存服务器;MACi的正确性检验,可根据实际情况省略,例如对于一条数据,同时生成其非公开认证码和公开认证码时,就可以省略对MACi的正确性检验。本步骤生成的公开可验证数据认证码由数据拥有者生成,速度较慢但具有公开可验证性即不可抵赖功能,如由单一用户生成的数字签名(DigitalSignature)或者由多用户(数据的所有拥有者)生成的多重签名(Multi-Signature)等非对称密码算法。
本发明可以应用在如图2所示的一种区块链离链数据的安全存储系统中,该系统中包括:
数据认证码生成模块10,读取当前离链数据,做预处理(包括但不限于填充、保存中间变量、生成随机密钥、加密、取哈希值、生成校验码或格式转换)后,根据数据认证码生成策略生成当前离链数据的数据认证码;该当前离链数据的数据认证码可以对第一条离链数据至今的所有数据进行认证,在这里数据认证码生的策略配置为本发明。
可靠存储模块20,验证写入的离链数据和对应的数据认证码的正确性,并将验证正确的离链数据写入其备份缓冲区。
数据备份模块30,根据系统写入区块链主链的既定策略(包括但不限于周期性或空闲时写入区块链),将备份缓冲区上的离链数据经必要处理(例如做哈希运算后,只写入哈希值,而不是数据本身)后写入区块链主链;在本发明中,数据备份模块30还可以根据系统策略,额外对备份缓冲区的数据进行备份。
上述区块链离链数据的安全存储系统通过对数据产生数据认证码后,一起存入可靠第三方存储(寄存服务器),然后在一定时期后,将离链数据或其哈希值写入区块链(主链),在解决区块链处理速度瓶颈同时,解决数据丢失问题。而其中的离链数据并不是区块链数据(分布式账本数据)因为它们没有被全网大多数节点认可,但由于其采用了本发明生成数据认证码,该数据认证码包括非公开数据认证码和公开数据认证码两部分,非公开数据认证码能够对初始化至今所有离线数据进行验证,保证所有存储数据的可靠性,公开的数据认证码具有公开可验证、防伪造和不可抵赖性,以及第三方可靠存储的存在,从而保证其安全性,且在产生纠纷时,不需要将离链数据存入主链也能够提供事实依据,而通常的区块链技术只能够认证存在于主链上的数据能够提供事实依据,更为重要的是,由于公开的数据认证码是在非公开数据认证码的基础上生成的,且不需要对力量数据逐条生成公开数据认证码,也能够反映之前所有离链数据的安全性,大大提高了认证效率。
在本发明中,根据系统需要,公开验证周期策略包括但不限于以下几种:
对于每条数据都实时生成公开可验证的数据认证码;
仅对当前最后输出的MAC值MACi对应的数据生成公开可验证的数据认证码;
仅在系统空闲时对当前最后输出的MAC值MACi对应的数据生成公开可验证的数据认证码;
按照一定时间周期对当前最后输出的MAC值MACi对应的数据生成公开可验证的数据认证码。
在本发明中,根据隐私保护需要,可先对数据认证码生成模块10接收的数据加密,密钥由用户自行管理,不在第三方寄存服务器上(可靠存储模块20)保存,在对加密后的数据生成数据认证码,以确保数据的隐秘性,确保其安全,此时在生成非公开数据认证码时,输入的是当前数据的加密后的数据。
在本发明中,验证数据和数据认证码的正确性,只需验证系统最后一条数据的非公开数据验证码对应的MAC值(事实上验证了所有数据的正确性,但非公开可验证)和相应的公开数据认证码(公开可验证)是否同时正确,就可以验证所有数据的正确性,同时正确时,判断所有数据为“正确”;否则,判断为“不正确”。
如图3所示,为利用本发明生成用户U与用户A之间数字验证码的具体流程,其中,表示用户使用私钥为ku的签名算法签名;该流程包括以下步骤:
步骤1、用户U与用户A开启了通道UA,用户U和寄存服务器S根据需要,为通道UA商议一个签名周期N(即公开验证周期为累计N次交易,需要双方进行签名),初始化所有参数和密钥。
步骤2、从用户A处收到一个新数据Mi,用户U用对称加密密钥加密Mi,得到mi
步骤3、查找本地记录是否存在MACi-1,如果数据丢失,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签名σq、与该签名对应的数据开始所有未经数据认证码函数处理的数据以及所有数据对应的MAC值发送给用户U,用户U对所有收到的信息核对后,执行步骤4。
步骤4、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算出新的MAC值MACi
步骤5、判断是否是签名周期,即计算i≡0(mod N)是否成立,若不成立,则向寄存服务器发送本次MAC值MACi以及本次加密后的数据mi;若成立,则用户U对最新的MAC值MACi签名,并将本次加密后的数据mi、对应的MAC值MACi及其签名σi发送给寄存服务器存储。
步骤6、判断认证过程是否终止,若未终止,则转步骤2;若终止,用户U查找本地存储的最新数据,并判断数据是否正确,如果无误,用户U与寄存服务器的本次雇佣关系终止;如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签名σq、与该签名对应的数据开始的所有数据以及所有数据对应的MAC值发送给用户U,用户U检验正确后则向寄存服务器发送对MACi的签名σi
如图4为当MAC函数为NIST SP800-38B中定义的CMAC消息认证码算法时,生成用户U与用户A之间数字验证码的具体流程,具体包括以下步骤:
步骤11、用户U与用户A确定一个签名周期N,开启通道UA,初始化所有参数和密钥,计算MAC初始向量值MAC0=0。
步骤12、从用户A处收到一个新数据Mi,用户U加密得到其加密数据mi其中,E为安全分组加密算法,kENC为加密密钥。
步骤13、查找本地记录是否存在上一次MAC值MACi-1,如果存在,执行步骤14;否则,数据丢失,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签名σq、与该签名对应的数据开始所有未经消息认证码函数处理的数据以及所有未经消息认证码函数处理的数据对应的MAC值发送给用户U,用户U对所有收到的信息核对后,如果检验正确,然后执行步骤14。
步骤14、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算本次MAC值MACi;其中,CMAC为将RFC4493中AES-CMAC标准算法中的AES替换为任意安全分组加密算法E时的MAC算法,kMAC为消息认证码函数密钥。
步骤15、判断是否是签名周期,若不是,向寄存服务器发送本次MAC值MACi以及加密后的数据mi;若是,用户U对最新的MAC值MACi签名,并将加密后数据mi、本次MAC值MACi及其签名σi发送给寄存服务器存储。
步骤16、判断交易通道是否终止,如未终止,则回到步骤12;否则,用户U查找本地存储的最新数据,判断数据是否正确,如果无误,则用户U终止与寄存服务器的通信,如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将将用户U最近一次的签名σq、与该签名对应的数据开始所有未经消息认证码函数处理的数据以及所有未经消息认证码函数处理的数据对应的MAC值发给用户U,用户U检验正确,向寄存服务器发送对MACi的签名σi
如图5为当MAC函数为RFC2104中定义的HMAC算法时,生成用户U与用户A之间数字验证码的具体流程,包括以下步骤:
步骤21、用户U与用户A确定一个签名周期N,生成所有密钥、固定初始向量IV、RFC2104标准中指定的常数ipad和opad,计算 其中,kMAC为用户认证码生成密钥。
步骤22、从A处收到一个新数据Mi,用户U加密得到加密数据E为安全分组加密算法。
步骤23、查找本地记录是否存在MACi-1,如果存在,执行步骤24;否则,数据丢失,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签σq、与该签名对应的数据起的所有数据以及所有数据对应的MAC值发送给用户U,用户U检验正确后,执行步骤24;
步骤24、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算本次MAC值
步骤25、判断是否是签名周期,若不是,向寄存服务器发送本次数据对应的MAC值MACi以及加密后的数据mi;若是,则用户U对最新的MAC值MACi签名,将本次加密后数据mi,本次MAC值MACi及其签名σi发送给寄存服务器存储;
步骤26、判断认证流程是否终止,如未终止,则回到步骤22;否则,用户U查找本地存储的最新数据,判断数据是否正确,如果无误则用户U与寄存服务器的本次雇佣关系终止,如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将将用户U最近一次的签名σq、与该签名对应的数据开始的所有数据以及所有数据对应的MAC值发给用户U,用户U检验正确,向寄存服务器发送对MACi的签名σi
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种数据认证码的生成方法,该方法配置在可与寄存服务器通信的用户端,其特征在于,包括以下步骤:
为系统设置消息认证码函数初始向量MAC0,初始向量MAC0为一个固定的二进制字符串;
调用消息认证码函数,以当前存在的最后一个输出的MAC值MACi-1作为初始向量,以没有生成数据认证码的当前数据Mi对应的字符串作为输入,输出相应的MAC值MACi,作为当前数据Mi的非公开验证数据认证码,并存储、发送该MAC值MACi到寄存服务器;
根据公开验证周期策略,以最后一个生成的非公开数据认证码对应的MAC值MACi作为输入,输出当前数据Mi的公开可验证数据认证码,并存储、发送到寄存服务器;
所述公开验证周期策略包括但不限于以下几种:
对于每条数据都实时生成;
仅对当前最后输出的MAC值MACi对应的数据生成;
仅在系统空闲时对当前最后输出的MAC值MACi对应的数据生成;
按照一定时间周期对当前最后输出的MAC值MACi对应的数据生成。
2.如权利要求1所述的方法,其特征在于,在根据公开验证周期策略,生成当前数据Mi的公开可验证数据认证码时,先对输入的最后一个输出的MAC值MACi的正确性进行检验,检验正确后,才开始进行生成当前数据Mi的公开可验证数据认证码的计算。
3.如权利要求1所述的方法,其特征在于,根据隐私保护需要,对新接收的数据加密,再对加密后的数据生成非公开验证数据认证码和公开可验证数据认证码;密钥由用户管理。
4.如权利要求1所述的方法,其特征在于,所述消息认证码函数为支持认证消息的异或运算且分级处理的算法。
5.如权利要求4所述的方法,其特征在于,所述消息认证码函数包括CMAC算法、HMAC算法。
6.如权利要求5所述的方法,其特征在于,所述公开可验证数据认证码为数字签名或多重签名等非对称签名算法。
7.如权利要求6所述的方法,其特征在于,当MAC函数为NIST SP800-38B中定义的CMAC消息认证码算法时,生成用户U与用户A之间数字验证码的具体包括以下步骤:
步骤11、用户U与用户A确定一个签名周期N,开启通道UA,初始化所有参数和密钥,计算MAC初始向量值MAC0=0;
步骤12、从用户A处收到一个新数据Mi,用户U加密得到其加密数据E为安全分组加密算法,kENC为加密密钥;
步骤13、查找本地记录是否存在上一次MAC值MACi-1,如果存在,执行步骤14;否则,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签名σq、与该签名对应的数据开始所有未经消息认证码函数处理的数据以及所有未经消息认证码函数处理的数据对应的MAC值发送给用户U,用户U对其检验正确后,执行步骤14;
步骤14、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算本次MAC值MACi;其中,CMAC为RFC4493中AES-CMAC标准算法中的AES替换为任意安全分组加密算法E时的MAC算法,kMAC为消息认证码函数密钥;
步骤15、判断是否是签名周期,若不是,向寄存服务器发送本次MAC值MACi以及加密后的数据mi;若是,用户U对最新的MAC值MACi签名,并将加密后数据mi、本次MAC值MACi及其签名σi发送给寄存服务器存储;
步骤16、判断交易通道是否终止,如未终止,则回到步骤12;否则,用户U查找本地存储的最新数据,判断数据是否正确,如果无误,则用户U终止与寄存服务器的通信,如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将将用户U最近一次的签名σq、与该签名对应的数据开始的所有数据以及所有数据对应的MAC值发给用户U,用户U检验正确,向寄存服务器发送对MACi的签名σi
8.如权利要求6所述的方法,其特征在于,当MAC函数为RFC2104中定义的HMAC算法时,生成用户U与用户A之间数字验证码的具体包括以下步骤:
步骤21、用户U与用户A确定一个签名周期N,生成所有密钥、固定初始向量IV、RFC2104标准中指定的常数ipad和opad,计算 其中,kMAC为用户认证码生成密钥;
步骤22、从A处收到一个新数据Mi,用户U加密得到加密数据E为安全分组加密算法;
步骤23、查找本地记录是否存在MACi-1,如果存在,执行步骤24;否则,数据丢失,将向寄存服务器发送提取数据请求,寄存服务器将用户U最近一次的签σq、与该签名对应的数据起的所有数据以及所有数据对应的MAC值发送给用户U,用户U检验正确后,执行步骤24;
步骤24、用户U将上一个MAC值MACi-1和本次加密后的数据mi作为输入,计算本次MAC值
步骤25、判断是否是签名周期,若不是,向寄存服务器发送本次数据对应的MAC值MACi以及加密后的数据mi;若是,则用户U对最新的MAC值MACi签名,将本次加密后的数据mi,本次MAC值MACi及其签名σi发送给寄存服务器存储;
步骤26、判断认证流程是否终止,如未终止,则回到步骤22;否则,用户U查找本地存储的最新数据,判断数据是否正确,如果无误则用户U与寄存服务器的本次雇佣关系终止,如果数据丢失,则向寄存服务器发送提取数据请求,寄存服务器将将用户U最近一次的签名σq、与该签名对应的数据开始的所有数据以及所有数据对应的MAC值发给用户U,用户U检验正确,向寄存服务器发送对MACi的签名σi
CN201710743045.1A 2017-08-25 2017-08-25 一种数据认证码的生成方法 Active CN107566360B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710743045.1A CN107566360B (zh) 2017-08-25 2017-08-25 一种数据认证码的生成方法
GBGB1720671.5A GB201720671D0 (en) 2017-08-25 2017-12-12 The generating method of data authentication code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710743045.1A CN107566360B (zh) 2017-08-25 2017-08-25 一种数据认证码的生成方法

Publications (2)

Publication Number Publication Date
CN107566360A CN107566360A (zh) 2018-01-09
CN107566360B true CN107566360B (zh) 2019-11-26

Family

ID=60976965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710743045.1A Active CN107566360B (zh) 2017-08-25 2017-08-25 一种数据认证码的生成方法

Country Status (2)

Country Link
CN (1) CN107566360B (zh)
GB (1) GB201720671D0 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108615155B (zh) * 2018-05-02 2021-07-20 飞天诚信科技股份有限公司 一种鉴别交易信息完整性的方法
CN111177800B (zh) * 2018-09-30 2023-06-30 创新先进技术有限公司 基于区块链的数据处理方法及装置、电子设备
CN109598518A (zh) 2018-09-30 2019-04-09 阿里巴巴集团控股有限公司 基于区块链的防伪方法及装置、电子设备
CN113449032B (zh) * 2021-06-03 2024-02-09 北京交通大学 一种数据上链可验证的区块链离链数据交互系统及方法
CN117041305B (zh) * 2023-10-10 2024-01-23 成都秦川物联网科技股份有限公司 基于物联网的气体流量计离线数据管理方法、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650344A (zh) * 2016-12-07 2017-05-10 清华大学 一种基于区块链的有第三方认证的数据存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650344A (zh) * 2016-12-07 2017-05-10 清华大学 一种基于区块链的有第三方认证的数据存储方法

Also Published As

Publication number Publication date
CN107566360A (zh) 2018-01-09
GB201720671D0 (en) 2018-01-24

Similar Documents

Publication Publication Date Title
CN107566360B (zh) 一种数据认证码的生成方法
US9853816B2 (en) Credential validation
EP3532972B1 (en) Authentication method and system
CN109194466A (zh) 一种基于区块链的云端数据完整性检测方法及系统
CN106357701B (zh) 云存储中数据的完整性验证方法
CN1717896B (zh) 用于对电子文档进行数字签名的方法、计算机设备和系统
ES2960797T3 (es) Encadenamiento seguro e implícito de certificados
JP3899808B2 (ja) ディジタル署名生成方法およびディジタル署名検証方法
CA2976795C (en) Implicitly certified digital signatures
CN109586919A (zh) 一种在线合同自动签署方法
JP2007522739A (ja) 一方向性認証
Zhao et al. ePUF: A lightweight double identity verification in IoT
Gebotys Security in embedded devices
KR101253683B1 (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
CN110336663A (zh) 一种基于区块链技术的PUFs群对群认证方案
Agrawal et al. Game-set-MATCH: Using mobile devices for seamless external-facing biometric matching
US20220358203A1 (en) Puf-rake: a puf-based robust and lightweight authentication and key establishment protocol
Amin et al. Anonymity preserving secure hash function based authentication scheme for consumer USB mass storage device
WO2018047120A1 (en) A system and method for data block modification detection and authentication codes
CN115118433A (zh) 客户授权方法及装置、隐私保护集合交集计算方法及装置
Al-Saidi et al. Password authentication based on fractal coding scheme
Krzywiecki et al. Deniable key establishment resistance against eKCI attacks
Hartung et al. Biometric transaction authentication protocol: Formal model verification and “four-eyes” principle extension
US11095452B2 (en) Out-of-band authentication in group communications
CN110838918B (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