一种基于区块链的身份证信息查询固证与取证方法与流程

文档序号:23989209发布日期:2021-02-20 12:54阅读:104来源:国知局
一种基于区块链的身份证信息查询固证与取证方法与流程

[0001]
本发明属于身份信息安全技术领域,具体涉及区身份证信息查询固证与取证方法。


背景技术:

[0002]
公共身份证查询中心提供身份证信息查询核验服务时,存在查询中心与查询方数据不一致的问题。通常解决该问题的方法是对历史查询记录进行回溯核实,然而查询记录数据往往存储在单点系统中,容易被破坏或被篡改,而影响查询记录的可信度。为了解决查询记录的安全问题,现有的数据保护方案通常按照时间戳对日志数据做增量保存而形成日志链,并将日志链压缩或重新计算排列,以降低存储空间与恢复时间开销。对日志记录数据做单向哈希,只保存其初始密钥,利用usbkey进行日志实时完整性检测。还有,基于可信密码模块的日志防护方案解决密钥管理难题。然而,现有的解决方法都是从日志的生产源单点进行防护,没有形成整体性保护。
[0003]
本发明通过联盟区块链技术、哈希算法和椭圆曲线加密算法,将查询记录密文和查询记录的哈希值上链,构建一个分布式链式数据结构的日志数据安全存储网络。当查询节点和中心节点之间出现查询信息不一致时,基于安全可信的日志数据,能有效快速定位问题根源。


技术实现要素:

[0004]
本发明的目的在于针对传统的身份证信息查询网络中查询记录可信度较低的问题,提供一种基于区块链的身份证信息查询固证与取证方法,以确保身份证信息查询系统的数据安全和一致性,并对信息查询问题进行高效定位,提高身份证查询网络的工作效率。
[0005]
本发明提供的基于区块链的身份证信息查询固证与取证方法,首先,将查询中心与查询各方构建为联盟区块链网络,并采用椭圆曲线算法为中心节点及各查询节点生成公钥和私钥;然后,查询节点对查询请求加密和查询请求哈希值上链,当中心节点收到查询请求时返回查询结果,并将查询记录加密及查询日志上链,完成信息查询固证;当查询节点与中心节点记录不一致时,查询区块链是否存在相应的查询请求与查询记录,完成查询取证;具体步骤如下。
[0006]
(1)身份证信息查询固证,具体包括以下子步骤;(1.1)基于联盟区块链网络,采用椭圆曲线算法,给查询方节点a和查询中心节点c生成一对公钥和私钥(p,s),作为在链上的唯一身份标识,其流程如下:(1.1.1)节点选定一条椭圆曲线e(x, y),并取e(x, y)上任一基点g(x', y'),计算g(x', y')的阶数n;(1.1.2)选择整数k(k < n,n为基点g(x', y')的阶)作为节点的私钥,根据椭圆曲线加法运算规则,计算节点的公钥k=kg;
(1.2)查询请求固证;查询方节点a向查询中心节点c发起身份证查询请求req,处理步骤如下:(1.2.1)查询方节点a发送查询请求req,应用哈希算法sha256得到查询请求的数字指纹,记为hashreq;(1.2.2)查询方节点a采用椭圆曲线算法和查询方节点a的私钥sa,对hashreq签名,即sig(hashreq);(1.2.3)将身份证(id、req、sig(hashreq))以交易形式上链存储;(1.3) 身份证查询结果固证;查询中心节点c接收到查询方节点a的查询请求后,处理步骤如下:(1.3.1)查询中心节点c返回查询结果给节点a;(1.3.2)查询中心节点c采用哈希算法sha256对查询日志rlog进行哈希运算,得到查询日志的数字指纹,记为hashrlog;(1.3.3)查询中心节点c采用椭圆曲线签名算法和查询中心节点c的私钥sc,对hashrlog签名,即sig(hashrlog);(1.3.4)将身份证(id、rlog、sig(hashrlog))以交易形式上链存储。
[0007]
(2)身份证查询记录取证,具体包括以下子步骤:(2.1)根据需要取证的身份证id及时间范围,发送查询请求,基于步骤(1.2.3)和步骤(1.3.4)的数据集,在链上查找匹配的结果;(2.2)查询返回身份证id对应在区块链上的查询请求和查询日志数据;(2.3)查询方a提供该身份证id及对应时间的本地查询请求日志数据;(2.4)采用sha256计算步骤(2.3)返回的查询请求日志数据的哈希值;(2.5)对比步骤(2.4)的哈希值与步骤 (2.2)获得的查询请求哈希值。
[0008]
本发明的有益效果:1、区块链技术的块链式数据结构及分布式存储方法,有效克服了传统身份证查询系统单点日志存储方法的不足,保证了查询记录的数据安全性和一致性;2、采用非对称加密算法、签名算法和哈希算法将查询请求和查询记录签名上链,可实现查询消息来源快速验证,并可保证查询结果的数据完整性;3、当查询中心与查询方数据不一致时,基于多方共识的区块链数据存储方式为双方提供了有力的自证保障,极大提高了问题定位与解决的效率。
[0009]
本发明通过将身份证信息查询请求与查询记录密文和哈希值上链,保证了身份证信息查询系统的数据可信度,可有效解决用户身份证信息被查询方缓存而导致查询记录不一致的问题,在信息系统的查询轨迹追溯和业务数据存证等方面具有重要应用价值。
附图说明
[0010]
图1为基于区块链的身份证信息查询固证和取证方法流程图示。
具体实施方式
[0011]
下面结合附图对本发明作进一步详细说明。
[0012]
如图1所示,本发明一种基于区块链的身份证信息查询固证和取证方法,包括以下
步骤。
[0013]
(1)身份证信息查询固证,具体包括以下步骤。
[0014]
(1.1)基于联盟区块链网络,采用椭圆曲线算法给查询方节点和查询中心节点生成一对公钥和私钥(p,s),作为在链上的唯一身份标识;其步骤如下:(1.1.1)节点选定一条椭圆曲线e(x, y),并取e(x, y)上任一基点g(x', y'),计算g(x', y')的阶数n;(1.1.2)选择整数k(k < n,n为基点g(x', y')的阶)作为节点的私钥,根据椭圆曲线加法运算规则计算节点的公钥k=kg。
[0015]
(1.2)查询节点a采用sha256哈希算法对查询请求req进行哈希运算,得到查询请求的哈希值hashreq,具体流程为:(1.2.1)分别对自然数中前8个质数的平方根的小数部分取前32比特位,生成8个哈希初值h0={h
00
, h
01
,
ꢀ…
, h
07
},以及对自然数中前64个质数的立方根的小数部分取前32比特位,生成64个常量c={k0, k1,
ꢀ…
, k
63
};(1.2.2)在req的末尾补充第1个比特值1,然后持续补充比特值0,直至长度满足对512取模后的余数为448,得到中间消息m1,然后以64位的数据表示m的长度值,附加到m1的末尾,生成中间消息m2;(1.2.3)将m2分成n个512比特大小的消息块{m0, m1,
ꢀ…
, m
n
},对每个块依次进行逻辑计算,得到8个32比特的字{w
n0
, w
n1
,
ꢀ…
, w
n7
},将其串联生成256比特的消息摘要,作为消息m的哈希值hashreq,具体为:(1.2.3.1)将信息块m
i
分成16个32比特的字{w
i0
, w
i1
,
ꢀ…
, w
i15
},并根据公式(2)~(4)继续生成48个字{w
i16
, w
i17
,
ꢀ…
, w
i63
},

表示按位异或运算,s
λ
表示循环右移λ个比特位,r
λ
表示右移λ个比特位;w
it = σ1(w
i(t

2)
) + w
i(t

7) + σ0(w
i(t

15)
) + w
i(t

16)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)σ0(x)=s7(x)

s
18
(x)

r3(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)σ1(x)= s
17
(x)

s
19
(x)

r
10
(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)(1.2.3.2)初始化哈希值h
i
={h
(i-1)0
, h
(i-1)1
,
ꢀ…
, h
(i-1)7
},对h
i
做64次赋值运算,即h
(i-1)0
=t1+t2,h
(i-1)1
= h
(i-1)0
,h
(i-1)2
= h
(i-1)1
,h
(i-1)3
= h
(i-1)2
,h
(i-1)4
= h
(i-1)3
+t1,h
(i-1)5
= h
(i-1)4
,h
(i-1)6
= h
(i-1)5
,h
(i-1)7
= h
(i-1)6
,其中t1和t2根据公式(5)~(10)计算,k
t
表示步骤(1.2.1)中生成的第t个常量,∧表示按位与运算,
¬
表示按位求补运算;t1= h
(i-1)7
+ σ1(h
(i-1)4
) + ch(h
(i-1)4
, h
(i-1)5
, h
(i-1)6
) + k
t + w
it
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)t2= σ0(h
(i-1)0
) +ma(h
(i-1)0
, h
(i-1)1
, h
(i-1)2
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)ch(x, y, z) = (x∧y)

(
¬
x∧z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)ma(x, y, z) = (x∧y)

(x∧z)

(y∧z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)σ0(x) = s2(x)

s
13
(x)

s
22
(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)σ1(x) = s6(x)

s
11
(x)

s
25
(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)。
[0016]
(1.3)节点a采用椭圆曲线签名算法对hashreq进行数字签名,即sig(hashreq)。
[0017]
(1.4)节点a将(id、req、sig(hashreq))以交易形式发送到链上存储。
[0018]
(1.5)节点c采用哈希算法sha256对查询日志rlog进行哈希运算,得到查询日志的数字指纹hashrlog,具体流程为:(1.5.1)分别对自然数中前8个质数的平方根的小数部分取前32比特位,生成8个哈希初值h0={h
00
, h
01
,
ꢀ…
, h
07
},以及对自然数中前64个质数的立方根的小数部分取前32比特位,生成64个常量c={k0, k1,
ꢀ…
, k
63
};(1.5.2)在m的末尾补充第1个比特值1,然后持续补充比特值0,直至长度满足对512取模后的余数为448,得到中间消息m1,然后以64位的数据表示m的长度值,附加到m1的末尾,生成中间消息m2;(1.5.3)将m2分成n个512比特大小的消息块{m0, m1,
ꢀ…
, m
n
},对每个块依次进行逻辑计算,得到8个32比特的字{w
n0
, w
n1
,
ꢀ…
, w
n7
},将其串联生成256比特的消息摘要,作为消息m的哈希值hashrlog,具体为:(1.5.3.1)将信息块m
i
分成16个32比特的字{w
i0
, w
i1
,
ꢀ…
, w
i15
},并根据公式(2)~(4)继续生成48个字{w
i16
, w
i17
,
ꢀ…
, w
i63
},

表示按位异或运算,s
λ
表示循环右移λ个比特位,r
λ
表示右移λ个比特位;w
it = σ1(w
i(t

2)
) + w
i(t

7) + σ0(w
i(t

15)
) + w
i(t

16)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)σ0(x)=s7(x)

s
18
(x)

r3(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)σ1(x)= s
17
(x)

s
19
(x)

r
10
(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)(1.5.3.2)初始化哈希值h
i
={h
(i-1)0
, h
(i-1)1
,
ꢀ…
, h
(i-1)7
},对h
i
做64次赋值运算,即h
(i-1)0
=t1+t2,h
(i-1)1
= h
(i-1)0
,h
(i-1)2
= h
(i-1)1
,h
(i-1)3
= h
(i-1)2
,h
(i-1)4
= h
(i-1)3
+t1,h
(i-1)5
= h
(i-1)4
,h
(i-1)6
= h
(i-1)5
,h
(i-1)7
= h
(i-1)6
,其中t1和t2根据公式(5)~(10)计算,k
t
表示步骤(1.5.1)中生成的第t个常量,∧表示按位与运算,
¬
表示按位求补运算;t1= h
(i-1)7
+ σ1(h
(i-1)4
) + ch(h
(i-1)4
, h
(i-1)5
, h
(i-1)6
) + k
t + w
it
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)t2= σ0(h
(i-1)0
) +ma(h
(i-1)0
, h
(i-1)1
, h
(i-1)2
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)ch(x, y, z) = (x∧y)

(
¬
x∧z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)ma(x, y, z) = (x∧y)

(x∧z)

(y∧z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)σ0(x) = s2(x)

s
13
(x)

s
22
(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)σ1(x) = s6(x)

s
11
(x)

s
25
(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)。
[0019]
(1.6)节点c采用椭圆曲线签名算法和c的私钥对hashrlog进行数字签名,即sig(hashrlog)。
[0020]
(1.7)节点c 将(id、rlog、sig(hashrlog))以交易形式发送到链上存储。
[0021]
(2)身份证查询记录取证当出现身份证查询相关业务投诉时,查询方节点及查询中心节点通过区块链平台核实双方的查询历史记录是否一致,排除查询方未提交查询请求给查询中心的情况。查询记录取证的具体步骤如下:(2.1)根据身份证id和时间,发送查询请求,进行链上查询;(2.2)查询返回身份证id对应在区块链上的查询请求和查询日志数据;(2.3)查询方a提供该身份证id及对应时间的本地查询请求日志数据;(2.4)采用哈希算法sha256计算步骤(2.3)返回的查询请求日志数据的哈希值;(2.5)对比步骤(2.4)的哈希值与步骤(2.2)获得的查询请求哈希值。
[0022]
本发明针对传统的身份证信息查询网络中查询记录可信度较低的问题,构建了一种基于区块链技术的去中心化信任网络,有效解决了传统身份证信息查询系统的数据安全和一致性问题。当表1中情况1和情况2的查询节点日志不可信时,通过区块链上的带数字签名的数据进行核实,则可以快速证实查询节点是否向中心节点发送查询请求数据。由此,提高身份证查询网络的运行效率。
[0023]
表1 查询日志数据的存在情况。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1