有效
一种二维码离线核验方法、系统及存储介质
王涛、沈大勇、张忠山、姚锋、刘晓路、杜永浩、闫俊刚、王沛、陈英武、吕济民、何磊、陈宇宁、陈盈果
中国人民解放军国防科技大学
王
王涛 专利 287
中国人民解放军国防科技大学知识系统行政管理软件工程设计
沈
沈大勇 专利 124
中国人民解放军国防科技大学知识系统行政管理模式识别
张
张忠山 专利 153
中国人民解放军国防科技大学知识系统行政管理模式识别
姚
姚锋 专利 202
中国人民解放军国防科学技术大学CAD技术细节行政管理知识系统
刘
刘晓路 专利 198
中国人民解放军国防科技大学CAD技术细节行政管理知识系统
杜
杜永浩 专利 134
中国人民解放军国防科技大学知识系统CAD技术细节行政管理
闫
闫俊刚 专利 120
中国人民解放军国防科技大学知识系统行政管理模式识别
王
王沛 专利 112
中国人民解放军国防科学技术大学行政管理电子数据处理商务信息处理
陈
陈英武 专利 169
中国人民解放军国防科学技术大学知识系统行政管理模式识别
吕
吕济民 专利 162
中国人民解放军国防科技大学知识系统CAD技术细节行政管理
何
何磊 专利 196
中国人民解放军国防科技大学CAD技术细节申请详情分析优化类型
陈
陈宇宁 专利 159
中国人民解放军国防科技大学CAD技术细节行政管理商务信息处理
陈
陈盈果 专利 189
中国人民解放军国防科技大学CAD技术细节行政管理知识系统
摘要
本发明公开了一种二维码离线核验方法、系统及存储介质,方法包括步骤:生成安全的二维码;使用混合加密方案,结合对称加密和非对称加密的优点,确保数据的安全性,并且能够在离线设备中进行快速的解密和校验;在离线状态下,使用一次性密码算法实现身份认证的额外保护;离线设备核验系统进行二维码身份认证的流程,以及离线核验设备的解密过程;配置离线核验设备以实现不需要互联网连接的身份认证和授权过程;离线设备故障处理。本发明保证核验过程的安全性和可靠性;对离线设备的二维码解码和解析、防伪防篡改技术优化,实现稳定的离线核验。
1.一种二维码离线核验方法,其特征在于,包括以下步骤:生成安全的二维码:为了防止伪造和篡改,生成二维码时加密身份认证数据,并添数字签名和TOTP密码算法来保护数据完整性和安全性;在验证二维码时,解密身份认证数据并通过数字签名、时间戳和TOTP密码算法来保证数据的完整性、有效性;数据加密:使用混合加密方案,结合对称加密和非对称加密的优点,确保数据的安全性,并且能够在离线设备中进行快速的解密和校验;同时使用数字签名和时间戳防止伪造和篡改;在离线状态下,使用一次性密码算法实现身份认证的额外保护;所述一次性密码算法使用一个固定的密钥和当前时间来生成一个短期有效的密码,防止重放攻击和窃取攻击;离线设备核验系统进行二维码身份认证的流程,以及离线核验设备的解密过程:验证二维码时验证数字签名和时间戳的有效性,使用AES密钥对数据进行解密;在离线核验设备上,使用RSA私钥解密RSA加密后的AES密钥,然后使用该密钥对数据进行解密;对解密后的数据进行数字签名验证以确保数据的完整性和正确性;配置离线核验设备以实现不需要互联网连接的身份认证和授权过程;离线设备故障处理:在设备出现故障时,对故障进行快速诊断,确定故障原因;对设备数据的定期备份,在设备故障时,通过数据恢复系统将备份数据还原到设备中,保证核验数据不会丢失;对于一些故障无法本地解决的情况,通过远程连接到设备并对设备进行远程操作;使用一次性密码算法实现身份认证的额外保护,具体包括服务器处理流程和离线设备核验系统验证流程,服务器处理流程包括:服务器生成密钥,并通过HTTPS协议安全地将TOTP密钥传输到手机上,确保密钥在传输过程中不会被截获或篡改,K=base32_decode(random_key)其中,random_key是一个随机生成的字符串,经过base32编码处理后得到K,base32_decode是将字符串解码为字节流的函数;手机通过HTTPS协议安全地获取服务器生成的TOTP密钥,并将该TOTP密钥嵌入到二维码中,确保密钥在传输过程中不会被截获或篡改;离线设备通过扫码获取到TOTP密钥,并使用TOTP算法生成一个验证码:HMAC(K, T) = SHA1(K ⊕ 0x5c || SHA1(K ⊕ 0x36 || T))其中,HMAC是哈希函数,K是服务器生成的密钥,T是一个时间戳,"||"表示拼接操作,"⊕"表示异或操作,0x5c和0x36是两个常量,以十六进制表示,它们分别用于在计算HMAC过程中异或密钥的两个不同版本;TOTP算法将当前时间戳除以30或60得到一个整数值X,然后将X作为T的值代入上述公式,得到一个哈希值,最后,将哈希值取模,得到一个长度为digits的验证码;在验证过程中,离线设备生成的验证码的有效期在时间窗口内进行比较,同时,用防止重放攻击的技术,以防止用户恶意重放验证码;验证模块获取当前的系统时间,并将其转换为整数形式;验证模块使用TOTP密钥和当前的整数时间戳作为输入,计算出当前的TOTP验证码;验证模块将用户输入的TOTP验证码与计算出的TOTP验证码进行比对,以确定用户的身份是否有效;在本地数据库中创建一个新的TOTP密钥字段,当用户生成新的TOTP密钥时,将其存储到该字段中,每次验证时,会从数据库中获取用户的TOTP密钥,并使用TOTP算法来计算出相应的TOTP验证码;离线设备核验系统验证流程包括:获取二维码数据,并进行解码,得到Payload、数字签名和时间戳信息;Payload是指从二维码数据中解码出的信息负载;使用RSA公钥验证数字签名的有效性,以确保Payload的完整性和不可篡改性;验证时间戳的有效性,以确保验证的时效性使用以下公式:CurrentTime - TimeStamp \leq ValidityPeriod其中,CurrentTime表示当前时间,TimeStamp表示二维码中的时间戳,ValidityPeriod表示二维码的有效期限,在验证时间戳的有效性时,使用 "\leq" 运算符来比较当前时间和二维码中的时间戳与有效期限之间的关系,如果当前时间减去时间戳的值小于等于有效期限,则二维码为有效二维码,否则为无效二维码;使用RSA私钥解密EncryptedKey,得到AES-256密钥,使用以下公式:AES_{Key} = RSA_{Decrypt}(EncryptedKey, RSA_{Privatekey})其中,AES_{Key}表示AES密钥,EncryptedKey表示RSA加密后的AES密钥,RSA_{Privatekey}表示RSA私钥,RSA_{Decrypt}表示RSA解密函数;使用AES-256密钥对Ciphertext进行解密,得到原始数据,使用以下公式:Plaintext = AES_{Decrypt}(Ciphertext, AES_{Key})其中,Plaintext表示解密后的原始数据,Ciphertext表示待解密的密文,AES_{Key}表示用于解密的AES密钥,AES_{Decrypt}表示AES解密函数;在离线核验设备上,读取二维码并解析出加密后的数据和RSA加密后的AES密钥,使用离线存储的RSA私钥进行解密获取AES密钥,然后再使用该密钥对加密后的数据进行解密,得到身份认证数据,包括:读取二维码信息;验证数字签名和时间戳,验证数字签名的公式涉及到哈希函数和非对称加密,包括:S = RSA^-1 (sign, pubKey)verify = Hash(data) == S其中:sign为二维码中包含的数字签名;pubKey为公钥,用于解密数字签名;RSA^-1为RSA加密算法的解密函数,用于解密数字签名;data是二维码中的原始数据,用于进行数字签名的哈希处理;Hash为哈希函数,用于计算数据的哈希值;==为等于号,表示两者相等;验证时间戳的公式如下:verify = abs(T - T0) <= delta其中:T为当前时间戳;T0为二维码中的时间戳;delta为允许的时间差;分离加密后的数据和RSA加密后的AES密钥;解密RSA加密的AES密钥:使用设备上离线存储的RSA私钥对RSA加密后的AES密钥进行解密,得到AES密钥,解密RSA加密的AES密钥的公式如下:AES_key = RSA^-1(key, privKey)其中:key:二维码中RSA加密后的AES密钥;privKey:设备上离线存储的RSA私钥;RSA^-1:RSA加密算法的解密函数,用于解密RSA加密后的AES密钥;AES_key:解密后得到的AES密钥;使用AES密钥对加密后的数据进行解密,公式如下:decrypted_data = AES_decrypt(encrypted_data, AES_key)其中:encrypted_data为二维码中加密后的数据;AES_key为使用RSA解密后得到的 AES密钥;AES_decrypt为AES解密函数,用于将加密后的数据解密;decrypted_data为解密后得到的数据;AES-256密钥对加密后的数据进行解密,包括:获取密钥:从二维码中获取经RSA加密后的AES密钥EncryptedKey,使用RSA私钥RSA_{Privatekey}解密,得到AES-256密钥AES_{Key}: AES_{Key} = RSA_{Decrypt}(EncryptedKey, RSA_{Privatekey});解密数据:从二维码中获取经AES-256密钥加密后的数据块 C_i^{(Nr)},将其转换为原始的二进制数据块;按照相反的步骤进行解密:进行最终轮变换:M_n^{(Nr)}= InvSubBytes(InvShiftRows(InvMixColumns(C_n^{(Nr)}) \oplus K^{(Nr)}));C_n^{(Nr)}:表示进行AES-256加密后得到的最终密文数据块,n 表示每个数据块的索引;K^{(Nr)}:表示最后一轮的轮密钥(Round Key),在解密时,与加密过程中使用的轮密钥相反顺序使用;InvMixColumns(C_n^{(Nr)}):表示对密文数据块 C_n^{(Nr)} 进行逆MixColumns操作;在解密过程中,需要进行逆混淆变换,与加密过程中的MixColumns相对应;InvShiftRows(InvMixColumns(C_n^{(Nr)})):表示对逆MixColumns操作的结果进行逆ShiftRows操作;InvSubBytes(InvShiftRows(InvMixColumns(C_n^{(Nr)}))):表示对逆ShiftRows操作的结果进行逆SubBytes操作;M_n^{(Nr)}:表示进行最终轮解密后得到的数据块,n 可以表示每个数据块的索引;进行多轮逆变换:M_i^{(r)} = InvSubBytes(InvShiftRows(InvMixColumns(M_i^{(r+1)}) \oplus K^{(r)})),其中 r = Nr-1, Nr-2, \ldots, 1;M_i^{(r+1)}:表示上一轮解密后得到的数据块,这是初始值,初始化为最后一轮解密后得到的数据块 M_n^{(Nr)},其中 n 表示每个数据块的索引;K^{(r)}:表示第 r 轮的逆轮密钥,这是解密过程中使用的轮密钥,与加密过程中使用的轮密钥相反顺序使用;在解密过程中,轮密钥的顺序与加密过程中相反;InvMixColumns(M_i^{(r+1)}):表示对上一轮解密得到的数据块 M_i^{(r+1)} 进行逆MixColumns操作;在解密过程中,需要进行逆混淆变换,与加密过程中的MixColumns相对应;InvShiftRows(InvMixColumns(M_i^{(r+1)})):表示对逆MixColumns操作的结果进行逆ShiftRows操作;InvSubBytes(InvShiftRows(InvMixColumns(M_i^{(r+1)}))):表示对逆ShiftRows操作的结果进行逆SubBytes操作;M_i^{(r)}:表示第r轮解密后得到的数据块;进行解密子密钥生成:使用AES_{Key}和Nr作为输入,生成解密所需的轮密钥K^{(r)};AES_{Key}:指的是AES-256算法中使用的主密钥,也称为加密密钥;Nr:表示AES-256加密或解密的总轮数;K^{(r)}:表示第 r 轮解密所需的轮密钥;进行异或密钥操作:M_i^{(r)} = M_i^{(r+1)} \oplus K^{(r)};M_i^{(r+1)}:表示上一轮解密后得到的数据块;初始值为最后一轮解密后得到的数据块 M_n^{(Nr)},其中n表示每个数据块的索引;K^{(r)}:表示第r轮解密所需的轮密钥;M_i^{(r)}:表示第r轮解密后得到的数据块;获取原始数据;将解密块M_i^{(Nr)}进行异或操作得到原始数据块M_i:M_i = K \oplus M_i^{(Nr)},其中K为加密数据时使用的密钥。
2.根据权利要求1所述的一种二维码离线核验方法,其特征在于,所述安全的二维码包含如下信息:用户身份信息;生成二维码时的时间戳,以确保二维码生成的时间与核验的时间相符合;生成二维码的同时生成一个基于时间的TOTP密钥;将这些信息进行整合,形成一个完整的数据集,并进行加密和数字签名操作,以确保数据的安全性和完整性,下面是二维码中包含信息的公式:二维码数据集=用户身份信息+时间戳+TOTP密钥TOTP密钥公式:TOTP密钥=Kdf(Ks,T)其中,Ks为主密钥,T为时间戳,Kdf为密钥派生函数;加密和数字签名的过程用以下公式表示:加密后的数据=E(Kd,二维码数据集)数字签名=Sign(Kp,加密后的数据)其中,Kd为对称密钥,用于加密二维码数据集;Kp为私钥,用于生成数字签名,E为加密算法,Sign为数字签名算法。
3.根据权利要求1所述的一种二维码离线核验方法,其特征在于,为了保证数据的安全性,在生成二维码时对数据进行加密,数据加密包括以下步骤:生成二维码时,使用AES-256对称加密算法对身份认证数据进行对称加密:使用RSA非对称加密算法对AES-256对称加密算法加密后的数据进行非对称加密,生成RSA密钥对;使用RSA-OAEP算法将生成的AES密钥使用公钥加密;最终的RSA-OAEP加密算法的密文为(C',P),在解密时,首先将P解码得到掩码后的密文C,再通过解密得到原始的哈希值mHash和随机数r,最后验证哈希值和填充是否正确;将加密后的数据和RSA加密后的AES密钥一起生成二维码,并在二维码中加入数字签名和时间戳来防止伪造和篡改。
4.根据权利要求1所述的一种二维码离线核验方法,其特征在于,故障诊断的具体步骤如下:通过设备传感器和状态监控模块,实时监测设备的状态,包括温度、电压、CPU利用率;在设备运行期间,记录所有设备操作日志,并对日志进行分类和整理;通过对设备状态、日志和传感器数据信息的实时监控和分析,快速发现故障点,并给出针对性的解决方案;根据故障诊断结果,生成故障报告,包括故障原因、解决方案和修复时间。
5.根据权利要求1所述的一种二维码离线核验方法,其特征在于,数据备份和恢复的步骤如下:定期对设备核验数据进行备份,并将备份数据存储在本地或云端存储设备中,以便在设备故障时进行恢复;在设备故障后,通过数据恢复系统将备份数据还原到设备中,恢复设备核验数据;建立数据同步机制,将设备核验数据同步到云端存储设备中,以便在设备故障时进行恢复。
6.根据权利要求1所述的一种二维码离线核验方法,其特征在于,将加密后的数据和RSA加密后的AES密钥一起生成二维码,并在二维码中加入数字签名和时间戳来防止伪造和篡改,具体包括:使用AES-256加密算法对需要加密的数据进行加密,并得到加密后的数据Ciphertext:Ciphertext = AES_{256}(Plaintext, Key)其中,AES_{256}表示AES-256加密算法,Plaintext表示需要加密的明文数据,Key表示AES-256密钥,Ciphertext表示加密后的数据;使用RSA非对称加密算法对AES-256密钥进行加密,并得到加密后的AES密钥EncryptedKey:EncryptedKey = RSA_{pub}(Key)其中,RSA_{pub}表示RSA公钥加密算法,Key表示AES-256密钥,EncryptedKey表示加密后的AES密钥;将加密后的数据和RSA加密后的AES密钥一起生成二维码,并在二维码中加入数字签名和时间戳来防止伪造和篡改:将Ciphertext和EncryptedKey组合成一个数据包Payload,按照一定的格式进行编码:使用数字签名技术对Payload进行签名,以确保二维码数据的完整性和不可篡改性:可以使用SHA-256哈希算法计算Payload的哈希值,并使用RSA私钥对哈希值进行签名:Signature = RSA_{priv}(SHA256(Payload))其中,RSA_{priv}表示RSA私钥签名算法,SHA256表示SHA-256哈希算法,Payload表示数据包,Signature表示数字签名;添加时间戳,记录生成二维码的时间,以便后续验证:Timestamp 表示当前时间;将Payload、数字签名和时间戳组合成一个二维码图像,并进行二维码纠错处理。
7. 根据权利要求1所述的一种二维码离线核验方法,其特征在于,在AES-256对称加密算法中,选择一个256位的加密密钥K来对要加密的数据M进行分块加密,每个加密块的长度为128位,即M = M1M2...Mn;加密块的加密过程包括以下两个步骤:a) 将密钥K与数据块Mi进行异或操作:Ci = K XOR Mi;b) 对每个加密块进行多轮的AES变换,每轮变换包括字节替代、行移位和列混淆三个操作;在每一轮变换中,都使用不同的子密钥来进行加密,这些子密钥是通过主密钥按照特定规则生成的,假设变换轮数为Nr,加密块Ci在第r轮变换后的结果为:Ci(r);最后一个加密块需要进行最终轮变换,该步骤包括字节替代、行移位、列混淆和密钥加操作,加密后的数据块Ci(r)转化为16进制字符串,并添加到二维码中。
8.一种使用权利要求1-7任一项所述方法的二维码离线核验系统,其特征在于,包括:二维码生成模块:为了防止伪造和篡改,生成二维码时加密身份认证数据,并添数字签名和TOTP密码算法来保护数据完整性和安全性;在验证二维码时,解密身份认证数据并通过数字签名、时间戳和TOTP密码算法来保证数据的完整性、有效性;数据加密模块:使用混合加密方案,结合对称加密和非对称加密的优点,确保数据的安全性,并且能够在离线设备中进行快速的解密和校验;同时使用数字签名和时间戳防止伪造和篡改;在离线状态下,使用一次性密码算法实现身份认证的额外保护;所述一次性密码算法使用一个固定的密钥和当前时间来生成一个短期有效的密码,防止重放攻击和窃取攻击;离线设备核验系统:进行二维码身份认证的流程,以及离线核验设备的解密过程:验证二维码时验证数字签名和时间戳的有效性,使用AES密钥对数据进行解密;在离线核验设备上,使用RSA私钥解密RSA加密后的AES密钥,然后使用该密钥对数据进行解密;对解密后的数据进行数字签名验证以确保数据的完整性和正确性;离线核验设备:实现不需要互联网连接的身份认证和授权过程;离线设备故障处理模块:在设备出现故障时,对故障进行快速诊断,确定故障原因;对设备数据的定期备份,在设备故障时,通过数据恢复系统将备份数据还原到设备中,保证核验数据不会丢失;对于一些故障无法本地解决的情况,通过远程连接到设备并对设备进行远程操作。
9.一种计算机可读存储介质,其特征在于,设置在权利要求8所述二维码离线核验系统中,其中,在所述计算机可读存储介质包括的程序被处理器运行时,控制所述二维码离线核验系统运行。



