基于区块链的电子病历共享方法和电子设备与流程

文档序号:24562424发布日期:2021-04-06 12:11阅读:69来源:国知局
基于区块链的电子病历共享方法和电子设备与流程
本发明属于涉及区块链
技术领域
,具体涉及一种基于区块链的电子病历共享方法和电子设备。
背景技术
:电子病历(emr,electronicmedicalrecord)也叫计算机化的病案系统或称基于计算机的病人记录,它是用电子设备(计算机、健康卡等)保存、管理、传输和重现的数字化的医疗记录,用以取代手写纸张病历。它的内容包括纸张病历的所有信息,且相比纸张病历,电子病历还具有为医护人员提供完整的、实时的、随时随地的病人信息访问,以及支持病人在不同医疗机构之间的医疗信息共享等意义。而现有使用电子病历的医疗机构通常只是将问电子病历存储起来,以便以后病历的保管和查询,不同医疗机构之间的电子病历不能共享;从而导致了病人在其他医疗机构看病时不能方便的获取到原来医疗机构的电子病历;且由于每个医疗机构管理各自的电子病历,因此电子病历存在被篡改的风险,无法保证电子病历的真实性。技术实现要素:为了解决现有技术中存在的上述问题,本发明提供了一种基于区块链的电子病历共享方法及电子设备。本发明要解决的技术问题通过以下技术方案实现:第一方面,本发明实施例提供了一种基于区块链的电子病历共享方法,应用于医疗机构节点,包括:从预设数据库获取电子病历;对所述电子病历进行哈希运算生成病历摘要;构造一基于有限域的grs码;根据所述grs码生成公钥以及私钥;使用所述私钥对所述病历摘要进行加密处理得到第一数字签名;使用所述私钥对所述第一数字签名进行译码并将得到的错误向量作为第二数字签名;将所述第二数字签名发送至验证节点进行验证;接收所述验证节点确认的区块并将所述区块添加到所述预设数据库所维护的区块链结构上。在本发明的一个实施例中,所述构造一基于有限域的grs码,包括:构造一有限域,并根据所述有限域构造一个码长为n、维数为k且纠错能力为t的grs码,其中,n、k和t均为任意正整数,且满足在本发明的一个实施例中,所述根据所述grs码生成公钥以及私钥,包括:在所述有限域内选取一(n-k)×(n-k)的非奇异矩阵、一n×n的稠密矩阵以及一n×n的稀疏矩阵;所述稠密矩阵的秩为z,所述稀疏矩阵的平均行重和列重为x;其中,z、x为自然数,且z小于n,x小于n。将所述稠密矩阵以及所述稀疏矩阵进行矩阵的加法运算,得到变换矩阵;将所述非奇异矩阵的逆矩阵、校验矩阵以及所述变换矩阵的转置矩阵进行矩阵的乘法运算,得到公钥;其中,所述校验矩阵是grs码的(n-k)×n的矩阵;将所述非奇异矩阵、所述校验矩阵、所述变换矩阵与译码算法作为私钥。在本发明的一个实施例中,所述对所述电子病历进行哈希运算生成病历摘要,包括:对所述电子病历进行初次哈希运算;对初次哈希运算得到的结果再次进行哈希运算,得到所述病历摘要。在本发明的一个实施例中,所述对所述病历摘要进行加密处理得到第一数字签名,包括:将所述非奇异矩阵与所述病历摘要进行乘法运算,得到所述第一数字签名。在本发明的一个实施例中,所述使用所述私钥对所述第一数字签名进行译码并将得到的错误向量作为第二数字签名,包括:结合所述私钥的变换矩阵使用所述译码算法对所述第一数字签名进行译码,得到第一错误向量;将所述第一错误向量与所述私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到第二错误向量,所述第二错误向量的权重小于等于所述grs码的纠错能力值;将所述第二错误向量作为所述第二数字签名。在本发明的一个实施例中,在得到所述第二错误向量之后,还包括:对所述第二错误向量构建索引对,得到第二错误向量的索引对;相应的,将所述索引对作为所述第二数字签名。第二方面,本发明实施例提供了一种基于区块链的电子病历共享方法,应用于验证节点,包括:接收来自医疗机构节点的第二数字签名,所述第二数字签名第一方面任一项所述的方法得到;获取所述医疗机构节点的公钥并根据所述公钥对所述第二数字签名进行验证;若所述第二数字签名验证通过,将所述病历摘要封装到区块中;通过共识机制对所述区块进行确认并将所确认的区块发送至所述医疗机构节点。在本发明的一个实施例中,所述获取所述医疗机构节点的公钥并根据所述公钥对所述第二数字签名进行验证,包括:获取所述医疗机构节点的公钥并根据所述公钥对所述第二数字签名进行解密,得到待验证的病例摘要;获取所述电子病历并对所述电子病历进行哈希运算,得到病历摘要;将所述待验证的病例摘要与所述病历摘要进行比较,若所述待验证病例摘要与所述病例摘要相同,则验证成功,反之则验证失败。第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤或第二方面所述的方法步骤。本发明的方案基于区块链技术和数字签名技术,能够保证电子病历在各医疗机构之间共享且不会被篡改;且本发明实施例提供的数字签名方案具有较高的可行性,能够减小公钥量,提高签名效率,并能够进一步提高安全性。以下将结合附图及实施例对本发明做进一步详细说明。附图说明图1是本发明实施例提供的一种基于区块链的电子病历共享方法示意图;图2是本发明实施例提供的另一种基于区块链的电子病历共享方法示意图;图3是本发明实施例提供的电子设备结构示意图;图4是本发明实施例提供的签名方法的可行性仿真结果图;图5是本发明实施例提供的签名方法在不同纠错能力下的可行性仿真结果图;图6是本发明实施例提供的签名方法在isd译码攻击下的仿真结果图;图7是本发明实施例提供的签名方法在不同纠错能力下的公钥量仿真结果图。具体实施方式下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。为了解决现有电子病历在不同医疗机构之间不能共享,以及存在的被篡改的风险,本发明实施例提供了一种基于区块链的电子病历共享方法和电子设备。第一方面,本发明实施例提供的一种基于区块链的电子病历共享方法,应用于医疗机构节点,下面对该电子病历共享方法进行介绍。请参见图1,图1是本发明实施例提供的一种基于区块链的电子病历共享方法流程图。本发明实施例提供的基于区块链的电子病历共享方法,应用于医疗机构节点。医疗机构节点可以是医疗机构的计算服务器,区块链由各个节点服务器共同维护,而医疗机构节点为众多节点中的一个节点。该方法包括:s11、从预设数据库获取电子病历。医疗机构指的是医院、诊所、社区健康中心以及其他医疗组织,电子病历是各医疗机构的医生在为病人问诊过程中记录的病历信息,例如症状及诊疗手段等内容,这些病历信息均存储在各医疗机构的预设数据库中,使用时直接从预设数据库中获取即可。s12、对电子病历进行哈希运算生成病历摘要。哈希运算指的是可将任意长度的消息映射成固定长度消息的算法,本发明实施的哈希运算可以采用md4、md5或者sha256中的任意一种。其中,病历摘要作为未经过加密的明文,明文即人可直观地理解其意思的字符,通过哈希算法进行第一加密将任意长度的明文映射成一串固定长度的密文,密文即经过加密后的字符串,人无法直观地理解其意思,这串密文即为数字摘要。本步骤通过哈希运算,由电子病历明文生成病历摘要,该病历摘要用于电子病历的下一步加密。可选的一种实施方式中,s12可以包括s121~s122。s121、对需要进行数字签名的电子病历进行初次哈希运算。若用m表示电子病历明文,对电子病历进行初次哈希运算得到h(m)。s122、对初次哈希运算得到的结果再次进行哈希运算,得到电子病历摘要。本步骤中,对初次哈希运算得到的结果h(m)再次进行哈希运算,得到电子病历摘要sx,即计算sx=h(h(m)|i),其中,i=0,1,2……。本发明实施例中取i=0,使电子病历摘要sx为一个长度为n-k的向量。在其他实施例中,也可以使用一次或多次哈希运算得到电子病历摘要,满足固定长度的输出即可。s13、构造一基于有限域的grs码。示例的,本步骤可以包括:构造一有限域,并根据有限域构造一个码长为n、维数为k且纠错能力为t的grs码,其中,n、k和t均为任意正整数,且满足其中,有限域可以选择包括q个元素的有限域fq,且选取一正整数m,使q满足q=2m。需要说明的是,本发明实施例之所以选择基于有限域fq而不是选择基于通常的二进制,是因为在面对isd译码攻击时,对于安全级别相同的码(比如:goppa码),基于有限域fq的goppa码相比基于二进制goppa码具有更小的公钥量。举例来说,具有128的安全级别的基于有限域的goppa码,公钥量为725740bits;而具有128的安全级别的基于二进制goppa码,公钥量为1537536bits。相比来说,基于有限域fq的goppa码的公钥量要比基于二进制goppa码的公钥量小近一个数量级。此外,本发明之所以选择grs码而不是别的码(比如goppa码),是因为grs码是极大距离可分(mds)码,码的性能好;且grs码现有编译码器在各领域应用多,实用性好;此外,grs码比goppa码更灵活;以及grs码具有可发展性更强的优势。s14、根据grs码生成公钥以及私钥。基于有限域的grs码生成公钥以及私钥,可以保证公钥以及私钥具有的安全性能更高且占空间更小,且针对不同的物流信息生成不同的公钥以及私钥。一个公钥只能对一个加密标签进行解密。可选的一种实施方式中,s14可以包括s141~s144。s141、在有限域内选取(n-k)×(n-k)的非奇异矩阵、n×n的稠密矩阵以及n×n的稀疏矩阵,且稠密矩阵的秩为z,稀疏矩阵的平均行重和列重为x,其中,z、x为自然数,且z小于n,x小于n。作为本发明的一种实施方式,可以采用稠密矩阵的秩z远小于n,且稀疏矩阵的平均行重和列重x远小于n。具体的,稠密矩阵可以用矩阵的转置矩阵与矩阵的乘积表示,即其中为有限域fq上定义的两个z×n的矩阵,且矩阵的秩为z。可选的,本发明的方案,对参数m、n、k、t以及x的选取有以下几种选择可供参考,参见表1,有且不限于这几种,但考虑到方案的正确性、可行性与安全性,以及公钥量和签名长度,本发明的方案优选采用表1列出的三组参数值。表1参数选取mnktx1240944074101~1.116655346551691~1.11010221002101~1.1s142、将稠密矩阵以及稀疏矩阵进行矩阵的加法运算,得到变换矩阵。具体的,加法运算采用公式(1):其中,表示变换矩阵,表示稠密矩阵,表示稀疏矩阵。s143、将非奇异矩阵的逆矩阵、校验矩阵以及变换矩阵的转置矩阵进行矩阵的乘法运算得到公钥;其中,校验矩阵为grs码的(n-k)×n矩阵。具体的,乘法运算采用公式(2):其中,表示公钥,表示非奇异矩阵的逆矩阵,表示校验矩阵,表示变换矩阵的转置矩阵。s144、将非奇异矩阵校验矩阵变换矩阵与译码算法作为私钥。可以理解的是,公钥用于对外公开,私钥用于存储。公钥和私钥是一个算法中不同的两个参数集合,但内在又相关联的参数集合,公钥和私钥是同时生成,但可以独立使用的。s15、对病历摘要进行加密处理得到第一数字签名。示例的,该步骤可以包括:将非奇异矩阵与病历摘要进行乘法运算,得到第一数字签名。具体的,乘法运算采用公式(3):其中,s'x表示第一数字签名,也可以叫做待译校正子,表示非奇异矩阵,sx表示病历摘要。s16、对第一数字签名进行译码并将得到的错误向量作为第二数字签名。示例的,该步骤可以包括s161~s163:s161、结合私钥的变换矩阵使用译码算法对第一数字签名进行译码,得到第一错误向量。译码算法可以选用现有的任一译码算法,本实施例中,译码算法优选为时域上的迭代译码算法,即:bm迭代译码算法(berlekamp-massey)、钱式搜索算法(chien)以及forney算法的组合。该译码算法速度快,实现简单,易于用计算机实现,因此是一种快速译码算法。可选的,译码算法可以包括以下几个步骤:步骤一:计算校正子;步骤二:确定错误位置多项式;步骤三:确定错误估值函数;步骤四:求解错误位置数和错误数值,并进行纠错。完成上述四步即可完成一次译码,若译码成功,则直接译出错误向量;否则,将视为译码失败。结合本发明实施例的方案,若译码失败,则使i'=i+1,从重新开始哈希运算重新译码,直到译码成功,得到第一错误向量。s162、将第一错误向量与私钥的变换矩阵的逆矩阵进行矩阵的乘法运算,得到第二错误向量,第二错误向量的权重小于等于grs码的纠错能力值。具体的,本步骤的乘法运算采用公式(4):其中,表示第二错误向量,表示第一错误向量,表示私钥的变换矩阵的逆矩阵。s163、将第二错误向量作为第二数字签名。至此,已经得到基于错误向量纠错码的数字签名,但该错误向量中由于存在多个0元素,占用较多的比特位。为减小比特位数,本发明提供的方案在上述实施例的基础上,可以进一步优化。优选的,在得到第二错误向量之后,还包括以下步骤:对第二错误向量构建索引对,得到第二错误向量的索引对。具体的,第二错误向量的索引对可以根据公式(5)得到。其中,ie表示索引对。即提取第二错误向量中的非零元素标记为错误值,用错误位置α以及错误位置c构建第二错误向量的索引对ie。相应的,将索引对作为数字签名。需要说明的是,签名通常对应的还有验签的过程,作为只生成数字签名的步骤,将得到的索引对ie作为数字签名;而在验签过程中,由于验签者需要用到索引对ie和电子病历摘要h(h(m)|i)一起验签,因此在验签成功后,最终是将[ie|i]作为电子病历明文m的数字签名。在优选的方案里,通过进一步对生成的第二错误向量建立索引对,并将索引对作为数字签名,可以减少比特位数,从而减小签名长度。s17、将第二数字签名发送至验证节点进行验证。在得到第二数字签名后,将该数字签名以及电子病历摘要广播到网络的各个验证节点中,验证节点接收到该数字签名以及电子病历摘要后,对该数字签名进行验证。具体验证的方法可以参考本发明第二发面用于验证节点的基于区块链的电子病历共享方法,为了避免重复,此处略去。s18、接收验证节点确认的区块并将区块添加到预设数据库所维护的区块链结构上。每个节点均维护一个共同的区块链,每个节点分布式存储区块链,因此预设数据库中也维护着一个共同的区块链。在接收到验证节点所确认的区块后,按照发生顺序将所确认的区块与本地的区块链结构中的上一区块首尾连接以更新所维护的区块链,从而实现了电子病历的共享。需要说明的是,本发明的方案基于区块链技术实现,区块链是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式,其具有去中心化、开放性以及不可篡改的特点。本发明实施例提供的基于区块链的电子病历共享方法,应用于医疗机构节点,通过有限域fq的grs码生成公钥以及私钥,根据电子病历得到电子病历摘要,并使用私钥对电子病历摘要进行加密,得到数字签名,并将数字签名封装到区块中,通过共识机制对该区块进行确认并将所确认的区块发送至医疗机构节点。本发明的方案基于区块链技术和数字签名技术,能够保证电子病历在各医疗机构之间共享且不会被篡改;且本发明实施例提供的数字签名方案具有较高的可行性,能够减小公钥量,提高签名效率,并能够进一步提高安全性。第二方面,本发明实施例提供了一种基于区块链的电子病历共享方法,应用于验证节点,下面对该电子病历共享方法进行介绍。请参见图2,图2是本发明实施例提供的另一种基于区块链的电子病历共享方法流程图。本发明实施例提供的基于区块链的电子病历共享方法流程图,应用于验证节点。首先需要说明的是,由于数字签名和验签是相互对应的过程,因此本部分的验证过程即对第一方面医疗机构节点提供的数字签名的验签过程。该方法包括:s21、接收来自医疗机构节点的第二数字签名,第二数字签名由第一方面的实施例中的方法得到。本步骤中,验证节点接收网络中来自医疗机构节点广播的数字签名以及电子病历摘要,以用于下一步的验证。s22、获取医疗机构节点的公钥并根据公钥对第二数字签名进行验证。由于每个节点的公钥都是公开的,因此从医疗机构节点中获取其公钥。通过所获取的公钥验证数字签名可以证明该病例摘要来自医疗机构节点以及证明病历摘要完整且未篡改。示例的,该步骤可以包括s221~s223:s221、获取医疗机构节点的公钥并根据公钥对第二数字签名进行解密,得到待验证的病例摘要。对应于上述签名方法中将得到的第二错误向量作为数字签名的方案,本步骤是利用公钥直接对第二错误向量进行解密,得到待验证电子病历摘要。对应于上述签名方法中将得到的索引对作为数字签名的方案,本步骤需要先根据索引对恢复出第二错误向量,然后再利用公钥对第二错误向量进行解密,得到待验证电子病历摘要。具体的,需要根据索引对恢复出第二错误向量,即在索引对ie中αj索引的位置用cj填充,在αj索引之外的位置用0填充,直到向量的长度达到(n-k)。利用公钥对第二错误向量进行解密,即根据公式(6)得到待验证电子病历摘要:其中,y表示待验证电子病历摘要。计算公钥中的每一列根据αj索引的对应行的值与cj的乘积,并将该乘积作为待验证电子病历摘要。s222、获取电子病历并对电子病历进行哈希运算,得到病历摘要。同样的,需要对电子病历进行两次哈希运算,具体步骤与第一方面中哈希运算步骤相同,在此不再赘述。通过两次哈希运算,得到电子病历摘要y'=h(h(m)|i)。s223、将待验证的病例摘要与病历摘要进行比较,若待验证病例摘要与病例摘要相同,则验证成功,反之则验证失败。本发明实施例中,比较待验证电子病历摘要y与电子病历摘要y',若y=y',即待验证电子病历摘要与电子病历摘要相等,验证签名成功;否则,验证签名失败。s23、若第二数字签名验证通过,将病历摘要封装到区块中。区块指的是记录病历摘要的数据块,其包括区块头以及区块体,区块体用于存储病历摘要,区块头包括前一区块的哈希值、时间戳、版本号、难度值、随机数以及默克尔树根植。其中,默克尔树是中二叉树,其由根节点、中间节点以及叶节点组成,叶节点存储数据以及数据的哈希值,中间节点是叶节点的哈希值,而根节点则是中间节点哈希值,称为默克尔根植,任意一个节点的数据改变都会导致默克尔根植的改变,因此通过默克尔树可归纳数据以及校验数据的完整性;时间戳指的是时间标记,用于证明病历摘要的发生时间;难度值指的是确认区块有效的难度;随机数是用于计算哈希值的参数。s24、通过共识机制对区块进行确认并将所确认的区块发送至医疗机构节点。共识机制指的是网络中的节点怎么达成共识一致确认区块有效的手段,主要包括工作量证明机制、权益证明机制以及股份授权证明机制,本实施例采用工作量证明机制,工作量证明机制指的是一种工作量证明,该工作量证明是节点耗费大量的计算机算力得到满足条件的结果,而该证明极易验证,当某个节点完成工作量证明后,由其余节点迅速验证即可确认有效。具体地,首先根据哈希算法求出由前一区块的哈希值、时间戳、版本号、难度值、随机数以及默克尔树根植组成的区块头的哈希值,本实施例哈希算法采用sha256;然后根据难度值求出目标值,目标值=最大目标值/难度值,其中,最大目标值是恒定值,难度值由区块链系统设定的以维护区块确认的难度;接着将区块头的哈希值与目标值进行对比,若区块头的哈希值小于等于目标值则确认区块有效,若区块头的哈希值大于目标值则将区块头中的随机数加一,重新求出区块头的哈希值,将重新求出的区块头的哈希值再次与目标值进行对比,重复上述过程直至区块头的哈希值小于等于目标值,从而完成区块的工作量计算;最后再由其他的验证节点对上述过程中最终的区块头进行一次哈希运算即可快速验证从而完成区块的确认。完成区块确认后广播到网络中,网络中的医疗机构节点接收到验证节点确认的区块后即可将所确认的区块添加到区块链中。本发明实施例提供的基于区块链的电子病历共享方法,应用于验证节点,通过有限域fq的grs码生成公钥以及私钥,根据电子病历得到电子病历摘要,并使用私钥对电子病历摘要进行加密,得到数字签名,并将数字签名封装到区块中,通过共识机制对该区块进行确认验证。本发明的方案基于区块链技术和数字签名技术,能够保证电子病历在各医疗机构之间共享且不会被篡改;且本发明实施例提供的数字签名方案具有较高的可行性,能够减小公钥量,提高签名效率,并能够进一步提高安全性。第三方面,本发明实施例还提供了一种电子设备。请参见图3,图3是本发明实施例提供的电子设备结构示意图;该电子设备,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301、通信接口302、存储器303通过通信总线304完成相互间的通信;存储器303,用于存放计算机程序;处理器301,用于执行存储器303上所存放的程序时,实现第一方面任一的方法步骤或第二方面任一项的方法步骤。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通过上述电子设备,可以实现:通过有限域fq的grs码生成公钥以及私钥,根据电子病历得到电子病历摘要,并使用私钥对电子病历摘要进行加密,得到数字签名,并将数字签名封装到区块中,通过共识机制对该区块进行确认并将所确认的区块发送至医疗机构节点。本发明的方案基于区块链技术和数字签名技术,能够保证电子病历在各医疗机构之间共享且不会被篡改;且本发明实施例提供的数字签名方案具有较高的可行性,能够减小公钥量,提高签名效率,并能够进一步提高安全性。本发明的方案采用了基于有限域的grs码的数字签名方法,以下,分别从该数字签名的正确性、可行性、安全性、公钥量以及签名长度这五个方面对本发明实施例提供的方案进行验证。(1)正确性:正确性的验证也是对签名是否验签成功的验证,需要证明利用公钥对第二错误向量进行解密得到的待验证摘要与生成签名过程中得到的摘要相等,即可证明正确性。具体过程如下:利用公钥对第二错误向量进行解密得到待验证摘要,其中,公钥是基于非奇异矩阵的逆矩阵、校验矩阵以及变化矩阵的转置矩阵进行矩阵的乘法运算得到的,即上述公式(2);第二错误向量是基于第一错误向量与私钥的变化矩阵的逆矩阵进行矩阵的乘法运算得到的,即上述公式(4);待验证摘要是基于公钥中的每一列根据αj索引的对应行的值与cj的乘积得到的,即上述公式(6)。因此,将公式(2)以及公式(4)代入公式(6)可以得到,对上述公式(7)进行简化公式,可以得到:又由于因此从公式(8)可以得到:其中,y表示待验证摘要,表示非奇异矩阵的逆矩阵,s'x表示待译校正子。待译校正子是基于非奇异矩阵与摘要进行乘法运算得到的,即上述公式(3)。因此,根据公式(3),得到y=sx,即能够得到y=y',验证成功,说明签名正确。(2)可行性:设基于有限域fq的grs码的总校正子数为n,且n=qn-k=q2t=q2mt,可进行译码的校正子数为m,且因此对摘要sx查找成功的概率为即平均查找次数为基于有限域fq的grs码签名的参数对(m,t)在选取上不仅要保证平均查找次数在千万数量级以下,还要保证参数对的选取不能过小。请参见图4,图4是本发明实施例提供的签名方法的可行性仿真结果图。图中表示了纠错能力t与平均查找次数的对数log2z之间的关系。由图4可以看出,纠错能力t与平均查找次数的对数log2z成正比,也就是平均查找次数z与纠错能力t呈指数关系。图4中的横线表示千万数量级的运算,图中数据x表示m,y表示log2z。当纠错能力t的值大于10后,平均查找次数将会过大,因此,纠错能力t选取小于等于10更为合适。请参见图5,图5是本发明实施例提供的签名方法在不同纠错能力下的可行性仿真结果图。图5表示的是纠错能力t取9和10时,m与平均查找次数的对数的关系。图中数据x表示m,y表示log2z。由图5可以看出,当m≥12时,随着m的增大,log2z趋于平稳,几乎没有什么变化;当m<12时,会增加平均查找次数。因此,m取大于等于12较为合适。另外,根据图5可以得到表2的两组数据:表2(a)m(t=10)681012141618log2z23.3322.1621.8821.8121.8021.7921.79表2(b)m(t=9)681012141618log2z19.7418.7818.5518.4918.4718.470318.47已知cfs签名使用的参数对(m,t)为(15,10)以及(16,9)。当参数对为(15,10)时,cfs签名的平均查找次数的对数值为27.7911,基于有限域fq的grs码签名的平均查找次数的对数值为21.7933;当参数对为(16,9)时,cfs签名的平均查找次数的对数值为18.4691,基于有限域fq的grs码签名的平均查找次数的对数值为18.4703。相比较来说,在两种参数对下,cfs签名与基于有限域fq的grs码签名的平均查找次数的数据差别不大,因此本发明基于有限域fq的grs码数字签名方法具有可行性。(3)安全性:请参见图6,图6是本发明实施例提供的签名方法在isd译码攻击下的仿真结果图。图6表示的是在在isd译码攻击的情况下,m与安全级别sl的关系。isd译码攻击下的安全级别系数与m和t的乘积呈指数关系,基于上述条件,t选取小于等于10。即当t确定下,m越大,安全级别系数越高。图中数据x表示m,y表示sl。从图6可以看出,基于有限域fq的grs码数字签名在参数对选取为(10,10)时,安全级别sl可以达到80,已经达到了一般安全级别,而在选取的参数对为(16,9)时,安全级别sl超过了128。在isd译码攻击下,当参数对为(15,10)时,cfs签名的安全级别系数sl为76.89,基于有限域fq的grs码签名的安全级别系数sl为135.42;当参数对为(16,9)时,cfs签名的安全级别系数sl为76.92,基于有限域fq的grs码签名的安全级别系数sl为135.56。相比较来看,本发明实施例提供的基于有限域fq的grs码签名在isd译码攻击下,具有较高的安全级别系数。另外,本发明实施例提供的基于有限域fq的grs码签名还能有效抵抗区分攻击,而cfs签名在区分攻击下的参数选取存在缺陷。(4)公钥量:本发明实施例中,对grs码的校验矩阵进行高斯消元化,得到行阶梯型矩阵,即公钥的公钥量为k·(n-k)。因此,基于有限域fq的grs码上,公钥量为k·(n-k)·log2q。请参见图7,图7是本发明实施例提供的签名方法在不同纠错能力下的公钥量仿真结果图。图7表示的是纠错能力t取9和10时,m与公钥量的关系。图中数据x表示m,y表示k·(n-k)·log2q。由图7可以看出,公钥量与m呈指数关系,而不同纠错能力t下,对公钥量的影响不是很明显。虽然当m越大,基于有限域fq的grs码签名越安全,但也会导致公钥量越大。因此,选取较为合适的m,使得安全系数较高且公钥量较小,例如m取10、12等。(5)签名长度:本发明实施例提供的基于有限域fq的grs码签名,签名长度为2m·tp+log2z。表3为基于有限域fq的grs码签名与cfs签名在两组不同参数对下,平均查找次数、安全级别、公钥量以及签名长度的对比。表3不同参数对下基于有限域fq的grs码签名与cfs签名的参数对比从表3可以看出,在不同的参数对下,本发明实施例提供的基于有限域fq的grs码签名的安全级别系数比cfs签名的安全级别系数要高,但是公钥量以及数字签名长度也要大一些。因此,选取几组不同的参数对对基于有限域fq的grs码签名的参数进行仿真,结果如表4所示。表4不同参数对下基于有限域fq的grs码签名的参数本发明实施例提供的基于有限域fq的grs码签名,在提升安全级别系数的前提下,能够降低参数对的选择,减少公钥量以及签名长度。通过以上验证说明本发明采用的数字签名方案具有正确性、可行性、安全性,以及公钥量降低、签名长度减小等效果。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1