CN112822014A - 数据处理方法、装置、电子设备及存储介质 - Google Patents
数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112822014A CN112822014A CN202110437811.8A CN202110437811A CN112822014A CN 112822014 A CN112822014 A CN 112822014A CN 202110437811 A CN202110437811 A CN 202110437811A CN 112822014 A CN112822014 A CN 112822014A
- Authority
- CN
- China
- Prior art keywords
- result
- signature information
- user identity
- data
- random number
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供一种数据处理方法、装置、电子设备及存储介质,其中,该方法包括:获取系统参数、第一私钥以及第二用户身份标识;随机选择随机数;对系统参数进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果;根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息;根据第二用户身份标识、第二结果、签名信息、随机数以及所述系统参数,对明文数据进行加密获得目标密文数据;向第二用户身份标识对应设备发送目标密文数据。本申请实施例提供的技术方案能够提高SM9算法的处理效率。
Description
技术领域
本申请实施例涉及计算机应用技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
由国家密码管理局颁发的国家商用密码标准算法SM9是一种基于标识的密码(Identity-Based Cryptography,IBC)算法,该IBC算法基于用户的身份证号、手机号、邮箱地址等身份标识计算用户的公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。
目前,加密端设备执行SM9算法时,先执行数字签名操作再执行加密操作。在执行数字签名操作时,加密端设备需要获取系统参数、私钥以及解密端设备对应用户的身份标识;接着,随机选择随机数,以及对系统参数进行相关处理获取系统参数处理结果,最后,基于私钥、系统参数处理结果、随机数和系统参数进行数字签名。在执行加密操作时,加密端设备需要获取系统参数、私钥、解密端设备对应用户的身份标识以及数据签名信息;接着,随机选择随机数,以及对系统参数进行相关处理获取系统参数处理结果,最后,基于私钥、系统参数处理结果、随机数、系统参数以及数据签名信息进行加密操作。
显然,现有的SM9算法的步骤较为复杂,占用的计算资源较多,处理效率低。
发明内容
本申请实施例提供一种数据处理方法、装置、电子设备及存储介质,用以提高SM9算法的处理效率。
第一方面,本申请实施例提供一种数据处理方法,包括:
获取系统参数、第一私钥以及第二用户身份标识;
随机选择随机数;
对所述系统参数进行双线性对映射,得到第一结果,以及对所述第一结果进行幂运算,得到第二结果;
根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对明文数据进行数字签名获得签名信息;
根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据;
向所述第二用户身份标识对应设备发送所述目标密文数据。
第二方面,本申请实施例中提供一种数据处理方法,包括:
获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;
对所述第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;
根据所述第三结果以及所述第二用户身份标识对所述目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;
根据所述系统参数确定所述目标密文数据对应的第一签名信息;
根据所述第一签名信息和所述第二签名信息对所述目标密文数据进行数字签名验证;
若数字签名验证通过,则确定所述明文数据合法。
第三方面,本申请实施例提供一种数据处理装置,包括:
获取模块,用于获取系统参数、第一私钥以及第二用户身份标识;
选择模块,用于随机选择随机数;
处理模块,用于对所述系统参数进行双线性对映射,得到第一结果,以及对所述第一结果进行幂运算,得到第二结果;
处理模块,还用于根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对明文数据进行数字签名获得签名信息;
处理模块,还用于根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据;
发送模块,用于向所述第二用户身份标识对应设备发送所述目标密文数据。
第四方面,本申请实施例提供一种数据处理装置,包括:
获取模块,用于获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;
处理模块,用于对所述第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;
处理模块,还用于根据所述第三结果以及所述第二用户身份标识对所述目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;
处理模块,还用于根据所述系统参数确定所述目标密文数据对应的第一签名信息;
处理模块,还用于根据所述第一签名信息和所述第二签名信息对所述目标密文数据进行数字签名验证;
处理模块,还用于若数字签名验证通过,则确定所述明文数据合法。
第五方面,本申请实施例提供一种电子设备,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
获取系统参数、第一私钥以及第二用户身份标识;
随机选择随机数;
对所述系统参数进行双线性对映射,得到第一结果,以及对所述第一结果进行幂运算,得到第二结果;
根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对明文数据进行数字签名获得签名信息;
根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据;
向所述第二用户身份标识对应设备发送所述目标密文数据。
第六方面,本申请实施例提供一种计算机可读存储介质,存储有计算机程序,计算机程序被计算机执行时实现数据处理方法中的步骤。
本实施例中,第一用户设备获取系统参数、第一私钥以及第二用户身份标识;随机选择随机数;对系统参数进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果;根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息;根据第二用户身份标识、第二结果、签名信息、随机数以及所述系统参数,对明文数据进行加密获得目标密文数据;向第二用户身份标识对应设备发送目标密文数据。由此,相比现有的SM9算法,简化了算法步骤,缩短了执行时间,提高了处理效率,此外,还节约了计算资源,以及实现了在一个算法流程中同时执行数字签名操作和加密操作。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例在一个实际应用中的应用场景图;
图2示出了根据本申请提供的数据处理方法一个实施例的流程图;
图3示出了根据本申请提供的数据处理方法另一个实施例的流程图;
图4示出了根据本申请实施例在一个实际应用中的数据处理方法的流程图;
图5示出了根据本申请实施例在一个实际应用中的数据处理方法的流程图;
图6示出了根据本申请提供的数据处理装置一个实施例的结构示意图;
图7示出了根据本申请提供的数据处理装置另一个实施例的结构示意图;
图8示出了根据本申请提供的电子设备一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人经过研究发现,现有的SM9算法的数字签名流程和加密流程中,存在一些相同的步骤。现有的SM9算法,由于数字签名流程和加密流程分别独立执行,相同的步骤需要执行两遍,导致处理效率低下。为此,发明人重新设计SM9算法的流程,使得数字签名流程和加密流程共用相同的步骤,该方法属于一种新的基于IBC的SM9算法,不需要维护数字证书,同时保证了信息的保密性和认证性。相比现有的SM9算法,简化了算法步骤,缩短了执行时间,提高了处理效率,此外,还节约了计算资源,以及实现了在一个算法流程中同时执行数字签名操作和加密操作。
图1示出了根据本申请实施例在一个实际应用中的应用场景图。如图1所示,在该应用场景中,包括第一用户设备101、第二用户设备102、密钥生成中心(Key GenerationCenter,KGC)的服务端103;第一用户设备101和第二用户设备102均与密钥生成中心KGC的服务端103建立网络连接,且第一用户设备101和第二用户设备102建立网络连接。第一用户设备101和第二用户设备102包括但不限于台式计算机、智能手机、平板电脑、电子阅读器、智能穿戴设备以及其他用户终端。
其中,密钥生成中心KGC的服务端103负责生成SM9算法所需的系统参数,并下发给用户设备,用户设备例如为第一用户设备101或第二用户设备102。
在本实施例中,执行SM9算法所需的系统参数根据实际的业务需求进行确定。例如,系统参数包括但不限于以下参数中的一种或多种:安全参数z、正整数N、第一加法循环群G1、第二加法循环群G2、乘法循环群GT、第一生成元P1、第二生成元P2、双线性对映射e、密钥派生函数KDF()、哈希函数H1:{0,1}*×N→ZN、主公钥PPub-e、加密私钥生成函数识别符hid。其中,ZN在取值范围[0,N-1]之间取任意整数。
其中,安全参数z用于声明SM9算法的安全强度。密钥生成中心KGC的服务端还可以接收密钥生成中心KGC的管理人员输入的安全参数z。
其中,双线性对映射e:G1×G2→GT,即从G1×G2到GT的双线性对映射。
其中,第一生成元P1为第一加法循环群的生成元,第二生成元P2为第二加法循环群的生成元。
其中,G1、G2以及GT的阶数均为N,也即G1、G2均为N阶加法循环群,GT为N阶乘法循环群。
其中,密钥生成中心KGC的服务端选择一个字节来表示加密私钥生成函数识别符hid。
其中,密钥生成中心KGC的服务端还可以接收密钥生成中心KGC的管理人员输入的安全参数z,安全参数z用于声明SM9算法的安全强度。
其中,密钥生成中心KGC的服务端在生成主公钥PPub-e时,先随机选择主私钥ke,其中,ke∈ZN,即ke在ZN的取值范围内取值;接着,按照公式PPub-e=ke×P1计算主公钥PPub-e。需要指出的是,主私钥ke和主公钥PPub-e组成加密主密钥对。
关于上述系统参数的更多介绍可以参见国家密码管理局颁布SM9算法的相关标准文件。
需要指出的是,密钥生成中心KGC的服务端103可以选择公开安全参数z、正整数N、第一加法循环群G1、第二加法循环群G2、乘法循环群GT、第一生成元P1、第二生成元P2、双线性对映射e、密钥派生函数KDF()、哈希函数H1:{0,1}*×N→ZN、主公钥PPub-e、加密私钥生成函数识别符hid等系统参数,密钥生成中心KGC的服务端对主私钥ke进行保密。
其中,密钥生成中心KGC的服务端103所公开的系统参数,可以被用户设备获取的,密钥生成中心KGC的服务端所保密的主私钥ke是不可以被用户设备获取的。可以理解的是,密钥生成中心KGC的服务端向第一用户设备101或第二用户设备102发送的系统参数是所公开的系统参数,不包括保密的系统参数(例如主私钥ke)。
另外,密钥生成中心KGC的服务端103还负责为用户设备生成私钥。例如,为第一用户设备101生成对应的第一私钥,以及为第二用户设备102生成对应的第二私钥。
具体而言,密钥生成中心KGC的服务端103可以基于系统参数、主私钥ke、用户身份标识生成私钥,并通过安全渠道下发给用户设备。
假设第一私钥记为dA,第一用户身份标识记为IDA。则在生成第一私钥时,首先,按照公式t1={H1(IDA||hid,N)+ke}modN,若t1=0,则需要重新产生加密主密钥对,也即密钥生成中心KGC的服务端重新生成主私钥ke和主公钥PPub-e;若t1≠0,则按照公式t2=(t1 -1×ke)modN;接着,按照公式dA=t2×P2。
其中,||表示拼接符号,H1(IDA||hid,N)表示将拼接IDA与hid得到的拼接结果IDA||hid以及N输入到哈希函数H1()中,进行哈希运算得到的哈希结果。
其中,modN表示进行模N的运算。
需要指的是,“为第二用户设备102生成第二私钥”与“为第一用户设备生成第一私钥”的生成方式相同,假设第二私钥记为dB,以及第二用户身份标识记为IDB,则在生成第二私钥时,首先,按照公式t1={H1(IDB||hid,N)+ke}modN,若t1=0,则需要重新产生加密主密钥对,也即密钥生成中心KGC的服务端重新生成主私钥ke和主公钥PPub-e;若t1≠0,则按照公式t2=(t1 -1×ke)modN;接着,按照公式dB=t2×P2。
其中,第一用户设备101可视为加密侧设备,用于基于系统参数和第一私钥对明文数据进行数字签名和加密得到目标密文数据,以及将目标密文数据发送给第二用户设备102。
其中,第二用户设备102可视为解密侧设备,用于基于系统参数和第二私钥对目标密文数据进行解密,以获取明文数据。
图2示出了根据本申请提供的数据处理方法一个实施例的流程图。该方法的执行主体为第一用户设备。第一用户设备对明文数据进行签密操作,以获取目标密文数据。其中,签密操作包括数字签名操作和加密操作。
如图2所示,本实施例提供的数据处理方法,可以包括以下步骤:
201、获取明文数据、系统参数、第一私钥以及第二用户身份标识。
具体的,第一用户设备在接收到针对明文数据的加密请求时,获取明文数据,以及对明文数据执行SM9算法所需的系统参数、第一私钥以及第二用户身份标识。
其中,加密请求可以由第一用户设备对应的第一用户触发。例如,第一用户有数据发送需求时,第一用户可以在第一用户设备上触发加密请求,以使第一用户设备对明文数据进行加密,并将加密明文数据所得到的密文数据发送给第二用户设备,以提高第一用户设备与第二用户设备之间数据传输的安全性。
另外,加密请求也可以在触发条件满足时自动触发。触发条件根据具体的业务需求进行设定,例如触发条件为监听到当前时间到达执行加密操作的指定时间,或者监听到需要执行加密操作的指定事件等等。
在本实施例中,第一私钥是基于第一用户设备对应的第一用户身份标识生成的。其中,第一用户身份标识用于唯一标识第一用户设备对应的第一用户。第一用户身份标识例如可以是第一用户的身份证号、手机号、邮箱地址等身份标识。
在本实施例中,第二用户身份标识用于唯一标识解密侧的第二用户设备对应的第二用户,第二用户身份标识例如可以是第二用户的身份证号、手机号、邮箱地址等身份标识。
在本实施例中,第一用户设备在接收到加密请求时,可以向密钥生成中心KGC的服务端发送数据获取请求信息,以及接收密钥生成中心KGC的服务端响应数据获取请求信息返回的系统参数和第一私钥。
其中,第一用户设备可以向第二用户设备请求获取第二用户身份标识,也可以在本地获取预先保存的第二用户身份标识,对此不作限制。
202、随机选择随机数。
假设随机数记为r,其中,r∈ZN,即ke在ZN的取值范围内取值。可以理解的是,第一用户设备从ZN的取值范围内随机选择一个随机数r。
203、对系统参数进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果。
具体而言,从系统参数中提取主公钥和第二加法循环群对应的第二生成元,对主公钥和第二生成元进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果。
假设第一结果记为g,按照公式g=e(PPub-e,P2)得到进行计算,得到第一结果g。可以理解的是,由于e()是从G1×G2到GT的双线性对映射,第一结果g可以视为乘法循环群GT中的一个元素。
假设第二结果记为w,按照公式w=gr进行计算得到第二结果w。可以理解的是,w是g的r次幂的幂运算结果,w也可以视为是乘法循环群GT中的一个元素。
在一种可能的实现方式中,为了便于数据处理,在得到第二结果w之后,将第二结果w转换为用比特(bit)编码的比特串。
204、根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息。
在一种可能的实现方式中,步骤204具体是:获取拼接明文数据与第二结果得到的第一拼接结果;将第一拼接结果和阶数输入到哈希函数中进行哈希运算,得到第一哈希结果,将第一哈希结果作为明文数据的第一签名信息;根据随机数、第一签名信息和阶数判断随机数是否需要重新选择;若判断结果为随机数不需要重新选择,则根据随机数、第一签名信息、阶数和第一私钥生成明文数据的第二签名信息。
假设明文数据记为m,第一私钥记为dA,第一签名信息记为h以及第二签名信息记为S。
在执行步骤204时,需要的系统参数至少包括阶数N。具体实现时,先按照公式h=H1(m||w,N)进行计算第一签名信息h,接着,按照公式l=r-hmodN进行计算,若l=0,则返回执行步骤202;若l≠0,则按照公式S=l×dA进行计算获得第二签名信息S,由此,完成数字签名流程,得到明文数据的签名信息(h,S)。
其中,h=H1(m||w,N)表示将m||w、N作为哈希函数H1的输入函数,获取哈希函数H1的输出结果作为第一签名信息h。||表示拼接符号,m||w即拼接比特串m与比特串w得到的第一拼接结果,第一拼接结果也是比特组成的比特串。
在一种可能的实现方式中,为了便于数据处理,在得到第二签名信息S之后,将第二签名信息S转换为用比特(bit)编码的比特串。
205、根据第二用户身份标识、第二结果、签名信息、随机数以及系统参数,对明文数据进行加密获得目标密文数据。
在一种可能的实现方式中,系统参数还包括第一加法循环群对应的第一生成元、加密秘钥生成函数识别符,步骤205具体是:
获取拼接第二用户身份标识和加密秘钥生成函数识别符得到的第二拼接结果;将第二拼接结果和阶数输入到哈希函数中进行哈希运算,获取第二哈希结果,以及根据第二哈希结果、第一生成元和主公钥生成与第二用户身份标识对应的第二公钥;根据第二公钥和随机数生成明文数据的第一密文;根据第一密文、第二结果、第二用户身份标识、明文数据和第二签名信息,生成明文数据的第二密文;将第一密文和第二密文进行拼接,得到明文数据的目标密文数据。
假设第二用户的公钥记为PB,第二用户身份标识记为IDB,第一密文记为C1,第二密文记为C2。
针对第二用户的公钥PB:按照公式PB=H1(IDB||hid,N)×P1+PPub-e进行计算。其中,IDB||hid表示拼接IDB和hid得到的拼接结果;将H1(IDB||hid,N)表示将IDB||hid、N作为输入参数输入到哈希函数H1进行哈希运算,得到的哈希运算结果。其中,IDB||hid即第二拼接结果。
针对第一密文C1:按照公式C1=r×PB进行计算。其中,r为步骤202所选择的随机数。
针对第二密文C2:
作为一种可能的实现方式,若基于密钥派生函数KDF()的序列密码算法对明文数据进行加密,则先按照公式K=KDF(C1||w||IDB,klen)进行计算,若K全为0,则返回执行步骤202,重新选择随机数。若K不全为0,则按照公式C2=(m||S)⊕K进行计算。其中,⊕表示异或符号。
需要指出的是,假设密钥长度记为klen,在基于序列密码算法进行加密时,klen为密钥长度为明文数据m的比特长度与第二签名信息S的比特长度之和。具体的,假设明文数据m的比特长度记为mlen,第二签名信息S的比特长度记为Slen,klen=mlen+Slen。
作为另一种可能的实现方式,若基于密钥派生函数KDF()的分组密码算法对明文数据进行加密,则先按照公式K=KDF(C1||w||IDB,klen)进行计算,若K全为0,则返回执行步骤202,重新选择随机数。若K不全为0,则按照公式C2=Enc(K,m||S)进行计算。其中,Enc()表示分组密码算法中的加密函数,Enc(K,m||S)表示利用K对m||S进行加密。
需要指出的是,假设密钥长度记为klen,在基于分组密码算法进行加密时,klen的长度已经根据分组密码算法确定好。
需要指出的是,m||S为拼接明文数据m与第二验证信息S得到的比特串。
需要指出的是,在得到第一密文C1和第二密文C2之后,将C1与C2两个个比特串进行拼接,得到目标密文数据C=C1||C2。
206、向第二用户身份标识对应设备发送目标密文数据。
第一用户设备在得到目标密文数据之后,向第二用户设备发送目标密文数据。其中,第二用户设备为第二用户身份标识对应设备。
本申请实施例提供的数据处理方法,通过获取明文数据、系统参数、第一私钥以及第二用户身份标识;随机选择随机数;对系统参数进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果;根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息;根据第二用户身份标识、第二结果、签名信息、随机数以及系统参数,对明文数据进行加密获得目标密文数据;向第二用户身份标识对应设备发送目标密文数据。由此,提供了一种新的基于IBC的SM9算法,不需要维护数字证书,同时保证了信息的保密性和认证性。相比现有的SM9算法,简化了算法步骤,缩短了执行时间,提高了处理效率,此外,还节约了计算资源,实现了在一个算法流程中同时执行数字签名操作和加密操作。
图3示出了根据本申请提供的数据处理方法另一个实施例的流程图。该方法的执行主体为第二用户设备。第二用户设备对第一用户设备发送的目标密文数据进行解签密操作,以获取明文数据。其中,解签密操作包括数字签名验证操作和解密操作。
301、获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识。
具体的,第二用户设备在接收到针对第一用户设备发送的目标密文数据的解密请求时,获取目标密文数据,以及获取对明文数据执行SM9算法所需的系统参数、第二私钥、第一用户身份标识以及第二用户身份标识。
其中,解密请求可以由第二用户设备对应的第二用户触发。例如,第二用户在需要对第一用户设备发送的目标密文数据进行解密时,第二用户可以在第二用户设备上触发解密请求,以使第二用户设备对目标密文数据进行解密。
另外,解密请求也可以在触发条件满足时自动触发。触发条件根据具体的业务需求进行设定,例如触发条件为监听到当前时间到达执行解密操作的指定时间,或者监听到需要执行解密操作的指定事件等等。
在本实施例中,第二用户设备在接收到加密请求时,可以向密钥生成中心KGC的服务端发送数据获取请求信息,以及接收密钥生成中心KGC的服务端响应数据获取请求信息返回的系统参数和第二私钥。
其中,第二用户设备可以向第一用户设备请求获取第一用户身份标识,也可以在本地获取预先保存的第一用户身份标识,对此不作限制。
302、对第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果。
继续假设目标密文数据记为C,第一密文记为C1,第二密文记为C2,其中,C=C1||C2;假设第二私钥记为dB;以及假设第三结果记为w′。
具体实现时,可以按照公式w′=e(C1,dB)计算第三结果w′,其中,e()是从G1×G2到GT的双线性对映射。
在一些实施例中,为了进一步节约计算资源,在执行步骤302之前,还可以验证C1∈G1是否成立,若不成立,则结束。若成立,则执行步骤302。
其中,验证C1∈G1不成立,说明目标密文数据存在安全风险,结束整个流程,不再执行数据处理方法的后续步骤。结束时,还可以输出报错信息,报错信息例如为解密错误等等。
需要指出的是,在验证C1∈G1是否成立时,可以将C1转换为椭圆曲线上的点,再验证C1∈G1是否成立。
303、根据第三结果以及第二用户身份标识对目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果。
作为一种可能的实现方式,若基于密钥派生函数KDF()的序列密码算法对目标密文数据进行解密,则先按照公式K=KDF(C1||w′||IDB,klen)进行计算,若K全为0,这时,结束。若K不全为0,则按照公式m||S=C2⊕K进行计算以获取解密结果。其中,⊕表示异或符号。
在基于序列密码算法进行解密时,假设解密结果记为m||S,其中,m为明文数据,第二签名信息为S;假设密钥长度记为klen,明文数据m的比特长度记为mlen,第二签名信息S的比特长度记为Slen,其中,klen=mlen+Slen,也即密钥长度为明文数据m的比特长度与第二签名信息S的比特长度之和。
作为另一种可能的实现方式,若基于密钥派生函数KDF()的分组密码算法对目标密文数据进行解密,则先按照公式K=KDF(C1||w′||IDB,klen)进行计算,若K全为0,这时,结束。若K不全为0,则按照公式m||S=Dec(K,C2)进行计算。其中,Dec()表示分组密码算法中的解密函数,Dec(K,C2)表示利用K对C2进行解密。
在基于分组密码算法进行解密时,假设解密结果记为m||S,假设密钥长度记为klen,klen的长度已经根据分组密码算法确定好了。
其中,K全为0,结束时还可以输出报错信息,报错信息例如为解密错误等等。
304、根据系统参数确定目标密文数据对应的第一签名信息。
作为一种可能的实现方式,系统参数包括:主公钥、第二加法循环群对应的第二生成元以及阶数;步骤304具体是:获取拼接明文数据和第三结果得到的第三拼接结果;将第三拼接结果和阶数输入到哈希函数中进行哈希运算,获取第三哈希结果,将第三哈希结果作为目标密文数据对应的第一签名信息。
继续假设第一签名信息记为h,主公钥记为PPub-e,第二加法循环群对应的第二生成元记为P2,阶数记为N。
具体实现时,按照公式h=H1(m||w′,N)进行计算,其中,h=H1(m||w′,N)表示将m||w′、N作为哈希函数H1的输入函数,获取哈希函数H1的输出结果作为第一签名信息h。||表示拼接符号,m||w′即拼接比特串m与比特串w′得到的第三拼接结果,第三拼接结果也是比特组成的比特串。
305、根据第一签名信息和第二签名信息对目标密文数据进行数字签名验证。
作为一种可能的实现方式,步骤305具体是:对主公钥和第二生成元进行双线性对映射,得到第四结果;根据第一签名信息对第四结果进行幂运算,得到第五结果;获取与第一用户身份标识对应的第一公钥;对第一公钥与第二签名信息进行双线性对映射,得到第六结果;将第五结果和第六结果进行相乘,得到第七结果;若第七结果等于第三结果,则确定目标密文数据通过数字签名验证。
具体实现时,先按照公式g=e(PPub-e,P2)进行计算,得到第四结果g;
接着,按照公式t=gh进行幂运算,得到第五结果t,其中,h为第一签名信息;接着,按照公式PA=H1(IDA||hid,N)×P1+PPub-e进行计算,获取第一公钥PA;接着,按照公式u=e(PA,S)进行计算,得到第六结果u;接着,按照公式w〃=u×t进行计算,得到第七结果w〃;最后,验证w〃=w′是否成立,若成立,则确定目标密文数据通过数字签名验证;否则,确定目标密文数据未通过数字签名验证。
306、若数字签名验证通过,则确定明文数据合法。
具体的,若目标密文数据通过数字签名验证,说明目标密文数据在从第一用户设备传输到第二用户设备的过程中,未被非法者破解,解密目标密文数据所得到的明文数据合法,安全性高;反之,若目标密文数据未通过数字签名验证,说明目标密文数据在从第一用户设备传输到第二用户设备的过程中,可能被非法者破解,解密目标密文数据所得到的明文数据不合法,安全性低。
可以理解的是,第二用户设备利用合法的明文数据进行相关数据处理,而对非法的明文数据可以进行丢弃处理。
本申请实施例提供的数据处理方法,第二用户设备通过获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;对第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;根据第三结果以及第二用户身份标识对目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;根据系统参数确定目标密文数据对应的第一签名信息;根据第一签名信息和第二签名信息对目标密文数据进行数字签名验证;若数字签名验证通过,则确定明文数据合法。由此,提供了一种新的基于IBC的SM9算法,不需要维护数字证书,同时保证了信息的保密性和认证性。相比现有的SM9算法,简化了算法步骤,缩短了执行时间,提高了处理效率,此外,还节约了计算资源,以及实现了在一个算法流程中同时执行数字签名验证操作和解密操作。
图4示出了根据本申请实施例在一个实际应用中的数据处理方法的流程图。该方法的执行主体为第一用户设备。本实施例涉及的各个符号的含义参见上述实施例的介绍,在此不再赘述。
如图4示,本实施例提供的数据处理方法,可以包括以下步骤:
401、第一用户设备从密钥生成中心KGC的服务端获取系统参数,以及第一私钥;以及第一用户设备获取第二用户身份标识。
402、第一用户设备按照公式PB=H1(IDB||hid,N)×P1+PPub-e进行计算第二用户的公钥PB。
403、第一用户设备随机选择随机数r。
404、第一用户设备按照公式C1=r×PB进行计算第一密文C1。
405、第一用户设备按照公式g=e(PPub-e,P2)进行计算,得到第一结果g。
406、第一用户设备按照公式w=gr进行计算得到第二结果w,以及将w转化为比特串形式的w。
407、第一用户设备按照公式h=H1(m||w,N)进行计算第一签名信息h。
408、第一用户设备按照公式l=r-hmodN进行计算,若l=0,则返回执行步骤403;若l≠0,则执行步骤409。
409、第一用户设备按照公式S=l×dA进行计算获得第二签名信息S。
410、第一用户设备执行加密操作,以得到目标密文数据。
作为一种可能的实现方式,若基于密钥派生函数KDF()的序列密码算法对明文数据进行加密,则先按照公式K=KDF(C1||w||IDB,klen)进行计算,若K全为0,则返回执行步骤403。若K不全为0,则按照公式C2=(m||S)⊕K进行计算。
作为另一种可能的实现方式,若基于密钥派生函数KDF()的分组密码算法对明文数据进行加密,则先按照公式K=KDF(C1||w||IDB,klen)进行计算,若K全为0,则返回执行步骤403。若K不全为0,则按照公式C2=Enc(K,m||S)进行计算。
需要指出的是,第一用户设备在得到第一密文C1和第二密文C2之后,将C1与C2两个个比特串进行拼接,得到目标密文数据C=C1||C2。
411、第一用户设备向第二用户设备发送目标密文数据。
图5示出了根据本申请实施例在一个实际应用中的数据处理方法的流程图。该方法的执行主体为第二用户设备。本实施例涉及的各个符号的含义参见上述实施例的介绍,在此不再赘述。
如图5示,本实施例提供的数据处理方法,可以包括以下步骤:
501、第二用户设备从密钥生成中心KGC的服务端获取系统参数,以及第二私钥;以及第二用户设备获取第一用户身份标识以及第二用户身份标识。
502、第二用户设备从目标密文数据C取出第一密文C1,以及验证C1∈G1是否成立,若不成立,则结束。若成立,则执行步骤503。
其中,结束时,还可以输出报错信息,报错信息例如为解密错误等等。
需要指出的是,在验证C1∈G1是否成立时,可以将C1转换为椭圆曲线上的点,再验证C1∈G1是否成立。
503、第二用户设备按照公式w′=e(C1,dB)计算第三结果w′。
504、第二用户设备执行解密操作。
作为一种可能的实现方式,若基于密钥派生函数KDF()的序列密码算法对目标密文数据进行解密,则先按照公式K=KDF(C1||w′||IDB,klen)进行计算,若K全为0,这时,结束。若K不全为0,则按照公式m||S=C2⊕K进行计算以获取解密结果。
作为另一种可能的实现方式,若基于密钥派生函数KDF()的分组密码算法对目标密文数据进行解密,则先按照公式K=KDF(C1||w′||IDB,klen)进行计算,若K全为0,这时,结束。若K不全为0,则按照公式m||S=Dec(K,C2)进行计算。其中,Dec()表示分组密码算法中的解密函数,Dec(K,C2)表示利用K对C2进行解密。
505、第二用户设备按照公式g=e(PPub-e,P2)进行计算,得到第四结果g。
506、按照公式h=H1(m||w′,N)进行计算,得到第一签名信息h。
507、第二用户设备按照公式t=gh进行幂运算,得到第五结果t。
508、第二用户设备按照公式PA=H1(IDA||hid,N)×P1+PPub-e进行计算,获取第一公钥PA。
509、第二用户设备按照公式u=e(PA,S)进行计算,得到第六结果u。
510、第二用户设备按照公式w〃=u×t进行计算,得到第七结果w〃。
511、第二用户设备验证验证w〃=w′是否成立,若成立,则确定目标密文数据通过数字签名验证,并确定明文数据合法;否则,确定目标密文数据未通过数字签名验证。
图6示出了根据本申请提供的数据处理装置一个实施例的结构示意图。参见图6,该数据处理装置可以包括:
获取模块601,用于获取系统参数、第一私钥以及第二用户身份标识;
选择模块602,用于随机选择随机数;
处理模块603,用于对系统参数进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果;
处理模块603,还用于根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息;
处理模块603,还用于根据第二用户身份标识、第二结果、签名信息、随机数以及系统参数,对明文数据进行加密获得目标密文数据;
发送模块604,用于向第二用户身份标识对应设备发送目标密文数据。
在一些实施例中,系统参数包括主公钥和第二加法循环群对应的第二生成元,处理模块603对系统参数进行双线性对映射,得到第一结果具体是:
对主公钥和第二生成元进行双线性对映射,得到第一结果。
在一些实施例中,系统参数还包括乘法循环群的阶数,处理模块603根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息具体是:
获取拼接明文数据与第二结果得到的第一拼接结果;
将第一拼接结果和阶数输入到哈希函数中进行哈希运算,得到第一哈希结果,将第一哈希结果作为明文数据的第一签名信息;
根据随机数、第一签名信息和阶数判断随机数是否需要重新选择;
若判断结果为随机数不需要重新选择,则根据随机数、第一签名信息、阶数和第一私钥生成明文数据的第二签名信息。
在一些实施例中,系统参数还包括第一加法循环群对应的第一生成元、加密秘钥生成函数识别符;
处理模块603根据第二用户身份标识、第二结果、签名信息、随机数以及系统参数,对明文数据进行加密获得目标密文数据具体是:
获取拼接第二用户身份标识和加密秘钥生成函数识别符得到的第二拼接结果;
将第二拼接结果和阶数输入到哈希函数中进行哈希运算,获取第二哈希结果,以及根据第二哈希结果、第一生成元和主公钥生成与第二用户身份标识对应的第二公钥;
根据第二公钥和随机数生成明文数据的第一密文;
根据第一密文、第二结果、第二用户身份标识、明文数据和第二签名信息,生成明文数据的第二密文;
将第一密文和第二密文进行拼接,得到明文数据的目标密文数据。
图6的数据处理装置可以执行图2所示实施例的数据处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7示出了根据本申请提供的数据处理装置另一个实施例的结构示意图。参见图7,该数据处理装置可以包括:
获取模块701,用于获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;
处理模块702,用于对第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;
处理模块702,还用于根据第三结果以及第二用户身份标识对目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;
处理模块702,还用于根据系统参数确定目标密文数据对应的第一签名信息;
处理模块702,还用于根据第一签名信息和第二签名信息对目标密文数据进行数字签名验证;
处理模块702,还用于若数字签名验证通过,则确定明文数据合法。
在一些实施例中,系统参数包括:主公钥、第二加法循环群对应的第二生成元以及阶数;
处理模块702根据系统参数,确定目标密文数据对应的第一签名信息具体是:
获取拼接明文数据和第三结果得到的第三拼接结果;
将第三拼接结果和阶数输入到哈希函数中进行哈希运算,获取第三哈希结果,将第三哈希结果作为目标密文数据对应的第一签名信息。
在一些实施例中,处理模块702根据第一签名信息和第二签名信息对目标密文数据进行数字签名验证具体是:
对主公钥和第二生成元进行双线性对映射,得到第四结果;
根据第一签名信息对第四结果进行幂运算,得到第五结果;
获取与第一用户身份标识对应的第一公钥;
对第一公钥与第二签名信息进行双线性对映射,得到第六结果;
将第五结果和第六结果进行相乘,得到第七结果;
若第七结果等于第三结果,则确定目标密文数据通过数字签名验证。
图7的数据处理装置可以执行图3所示实施例的数据处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据处理装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图6或图7所示实施例的数据处理可以实现为电子设备,如图8所示,该电子设备可以包括存储组件801以及处理组件802;
存储组件一条或多条计算机指令,其中,一条或多条计算机指令供处理组件调用执行。
处理组件用于:
获取系统参数、第一私钥以及第二用户身份标识;
随机选择随机数;
对系统参数进行双线性对映射,得到第一结果,以及对第一结果进行幂运算,得到第二结果;
根据第一私钥、第二结果、随机数以及系统参数,对明文数据进行数字签名获得签名信息;
根据第二用户身份标识、第二结果、签名信息、随机数以及系统参数,对明文数据进行加密获得目标密文数据;
向第二用户身份标识对应设备发送目标密文数据;
或者,处理组件用于:
获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;
对第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;
根据第三结果以及第二用户身份标识对目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;
根据系统参数确定目标密文数据对应的第一签名信息;
根据第一签名信息和第二签名信息对目标密文数据进行数字签名验证;
若数字签名验证通过,则确定明文数据合法。
其中,处理组件802可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件801被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
另外,电子设备还可以包括显示组件,显示组件可以为电致发光(EL)元件、液晶显示器或具有类似结构的微型显示器、或者视网膜可直接显示或类似的激光扫描式显示器。
当然,电子设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
通信组件被配置为便于电子设备和其他设备之间有线或无线方式的通信等。
如在本文所使用的,“电子设备”可以是远程web服务器、服务器、计算机联网 设备、芯片组、台式计算机、笔记本式计算机、工作站,或任何其他处理设备或者装备。
其中,该电子设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时电子设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图2或图3所示实施例的数据处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
获取系统参数、第一私钥以及第二用户身份标识;
随机选择随机数;
对所述系统参数进行双线性对映射,得到第一结果,以及对所述第一结果进行幂运算,得到第二结果;
根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对明文数据进行数字签名获得签名信息;
根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据;
向所述第二用户身份标识对应设备发送所述目标密文数据。
2.根据权利要求1所述的方法,其特征在于,所述系统参数包括主公钥和第二加法循环群对应的第二生成元,所述对所述系统参数进行双线性对映射,得到第一结果包括:
对所述主公钥和所述第二生成元进行双线性对映射,得到所述第一结果。
3.根据权利要求2所述的方法,其特征在于,所述系统参数还包括乘法循环群的阶数,所述根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对所述明文数据进行数字签名获得签名信息包括:
获取拼接所述明文数据与所述第二结果得到的第一拼接结果;
将所述第一拼接结果和所述阶数输入到哈希函数中进行哈希运算,得到第一哈希结果,将所述第一哈希结果作为所述明文数据的第一签名信息;
根据所述随机数、所述第一签名信息和所述阶数判断所述随机数是否需要重新选择;
若判断结果为所述随机数不需要重新选择,则根据所述随机数、所述第一签名信息、所述阶数和所述第一私钥生成所述明文数据的第二签名信息。
4.根据权利要求3所述的方法,其特征在于,所述系统参数还包括第一加法循环群对应的第一生成元、加密秘钥生成函数识别符;
根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据包括:
获取拼接所述第二用户身份标识和所述加密秘钥生成函数识别符得到的第二拼接结果;
将所述第二拼接结果和所述阶数输入到哈希函数中进行哈希运算,获取第二哈希结果,以及根据所述第二哈希结果、所述第一生成元和所述主公钥生成与所述第二用户身份标识对应的第二公钥;
根据所述第二公钥和所述随机数生成所述明文数据的第一密文;
根据所述第一密文、所述第二结果、所述第二用户身份标识、所述明文数据和所述第二签名信息,生成所述明文数据的第二密文;
将所述第一密文和所述第二密文进行拼接,得到所述明文数据的目标密文数据。
5.一种数据处理方法,其特征在于,包括:
获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;
对所述第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;
根据所述第三结果以及所述第二用户身份标识对所述目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;
根据所述系统参数确定所述目标密文数据对应的第一签名信息;
根据所述第一签名信息和所述第二签名信息对所述目标密文数据进行数字签名验证;
若数字签名验证通过,则确定所述明文数据合法。
6.根据权利要求5所述的方法,其特征在于,所述系统参数包括:主公钥、第二加法循环群对应的第二生成元以及阶数;
根据所述系统参数,确定所述目标密文数据对应的第一签名信息包括:
获取拼接所述明文数据和所述第三结果得到的第三拼接结果;
将所述第三拼接结果和所述阶数输入到哈希函数中进行哈希运算,获取第三哈希结果,将所述第三哈希结果作为所述目标密文数据对应的第一签名信息。
7.根据权利要求6所述的方法,其特征在于,根据所述第一签名信息和所述第二签名信息对所述目标密文数据进行数字签名验证,包括:
对所述主公钥和所述第二生成元进行双线性对映射,得到第四结果;
根据所述第一签名信息对所述第四结果进行幂运算,得到第五结果;
获取与所述第一用户身份标识对应的第一公钥;
对所述第一公钥与所述第二签名信息进行双线性对映射,得到第六结果;
将所述第五结果和所述第六结果进行相乘,得到第七结果;
若所述第七结果等于所述第三结果,则确定所述目标密文数据通过数字签名验证。
8.一种数据处理装置,其特征在于,包括:
获取模块,用于获取系统参数、第一私钥以及第二用户身份标识;
选择模块,用于随机选择随机数;
处理模块,用于对所述系统参数进行双线性对映射,得到第一结果,以及对所述第一结果进行幂运算,得到第二结果;
处理模块,还用于根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对明文数据进行数字签名获得签名信息;
处理模块,还用于根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据;
发送模块,用于向所述第二用户身份标识对应设备发送所述目标密文数据。
9.一种数据处理装置,其特征在于,包括:
获取模块,用于获取系统参数、第二私钥、第一用户身份标识以及第二用户身份标识;
处理模块,用于对所述第二私钥和目标密文数据中的第一密文进行双线性对映射,得到第三结果;
处理模块,还用于根据所述第三结果以及所述第二用户身份标识对所述目标明文数据进行解密操作,获取包括明文数据和第二签名信息的解密结果;
处理模块,还用于根据所述系统参数确定所述目标密文数据对应的第一签名信息;
处理模块,还用于根据所述第一签名信息和所述第二签名信息对所述目标密文数据进行数字签名验证;
处理模块,还用于若数字签名验证通过,则确定所述明文数据合法。
10.一种电子设备,其特征在于,包括处理组件以及存储组件;
所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;
所述处理组件用于:
获取系统参数、第一私钥以及第二用户身份标识;
随机选择随机数;
对所述系统参数进行双线性对映射,得到第一结果,以及对所述第一结果进行幂运算,得到第二结果;
根据所述第一私钥、所述第二结果、所述随机数以及所述系统参数,对明文数据进行数字签名获得签名信息;
根据所述第二用户身份标识、所述第二结果、所述签名信息、所述随机数以及所述系统参数,对所述明文数据进行加密获得目标密文数据;
向所述第二用户身份标识对应设备发送所述目标密文数据。
11.一种计算机可读存储介质,其特征在于,存储有计算机程序,计算机程序被计算机执行时实现权利要求1至4或者权利要求5至7中任一项的所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437811.8A CN112822014B (zh) | 2021-04-22 | 2021-04-22 | 数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437811.8A CN112822014B (zh) | 2021-04-22 | 2021-04-22 | 数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822014A true CN112822014A (zh) | 2021-05-18 |
CN112822014B CN112822014B (zh) | 2021-08-31 |
Family
ID=75862559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110437811.8A Active CN112822014B (zh) | 2021-04-22 | 2021-04-22 | 数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822014B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259934A (zh) * | 2021-06-25 | 2021-08-13 | 贵州大学 | 一种短信验证码加密方法、解密方法及加解密系统 |
CN113259103A (zh) * | 2021-06-16 | 2021-08-13 | 北京信安世纪科技股份有限公司 | 签名方法及装置、验证方法及装置、设备及存储介质 |
CN113569259A (zh) * | 2021-07-29 | 2021-10-29 | 深圳证券信息有限公司 | 一种数据共享方法、系统、设备及计算机可读存储介质 |
CN113904768A (zh) * | 2021-11-10 | 2022-01-07 | 福建师范大学 | 基于sm9密钥封装机制的在线离线解密方法 |
CN114039771A (zh) * | 2021-11-08 | 2022-02-11 | 阿波罗智联(北京)科技有限公司 | 一种数据处理方法、装置、系统、电子设备及存储介质 |
CN114257366A (zh) * | 2021-12-20 | 2022-03-29 | 成都卫士通信息产业股份有限公司 | 信息同态处理方法、装置、设备及计算机可读存储介质 |
CN114257374A (zh) * | 2021-12-20 | 2022-03-29 | 山东大学 | 一种用于标识密码体制的可验证安全外包计算方法及系统 |
CN114363858A (zh) * | 2022-03-21 | 2022-04-15 | 苏州浪潮智能科技有限公司 | 蜂窝车联网协同通信的会话及注册方法、系统及相关组件 |
CN114531291A (zh) * | 2022-02-21 | 2022-05-24 | 深圳市铖月控股有限公司 | 遥控器数据加密方法、解密方法、遥控器及电子设备 |
CN115001711A (zh) * | 2022-06-10 | 2022-09-02 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115102688A (zh) * | 2022-08-24 | 2022-09-23 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115935429A (zh) * | 2022-12-30 | 2023-04-07 | 上海零数众合信息科技有限公司 | 一种数据处理方法、装置、介质以及电子设备 |
CN116579005A (zh) * | 2023-07-10 | 2023-08-11 | 西安银信博锐信息科技有限公司 | 一种用户数据安全存储管理方法 |
CN114785501B (zh) * | 2022-05-30 | 2024-05-17 | 建信金融科技有限责任公司 | 数据判等方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019868A1 (en) * | 2013-07-15 | 2015-01-15 | Korea University Research And Business Foundation | Public encryption method based on user id |
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN107579819A (zh) * | 2017-09-13 | 2018-01-12 | 何德彪 | 一种sm9数字签名生成方法及系统 |
CN112383397A (zh) * | 2020-09-15 | 2021-02-19 | 淮阴工学院 | 一种基于生物特征的异构签密通信方法 |
CN112564907A (zh) * | 2021-03-01 | 2021-03-26 | 北京信安世纪科技股份有限公司 | 密钥生成方法及装置、加密方法及装置、解密方法及装置 |
-
2021
- 2021-04-22 CN CN202110437811.8A patent/CN112822014B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019868A1 (en) * | 2013-07-15 | 2015-01-15 | Korea University Research And Business Foundation | Public encryption method based on user id |
CN107579819A (zh) * | 2017-09-13 | 2018-01-12 | 何德彪 | 一种sm9数字签名生成方法及系统 |
CN107566128A (zh) * | 2017-10-10 | 2018-01-09 | 武汉大学 | 一种两方分布式sm9数字签名生成方法与系统 |
CN112383397A (zh) * | 2020-09-15 | 2021-02-19 | 淮阴工学院 | 一种基于生物特征的异构签密通信方法 |
CN112564907A (zh) * | 2021-03-01 | 2021-03-26 | 北京信安世纪科技股份有限公司 | 密钥生成方法及装置、加密方法及装置、解密方法及装置 |
Non-Patent Citations (2)
Title |
---|
TIAN, CHENGUANG等: "Design and Implementation of SM9 Identity Based Cryptograph Algorithm", 《2020 ICCNEA》 * |
袁峰等: "SM9标识密码算法综述", 《信息安全研究》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259103A (zh) * | 2021-06-16 | 2021-08-13 | 北京信安世纪科技股份有限公司 | 签名方法及装置、验证方法及装置、设备及存储介质 |
CN113259103B (zh) * | 2021-06-16 | 2021-11-09 | 北京信安世纪科技股份有限公司 | 签名方法及装置、验证方法及装置、设备及存储介质 |
CN113259934A (zh) * | 2021-06-25 | 2021-08-13 | 贵州大学 | 一种短信验证码加密方法、解密方法及加解密系统 |
CN113569259A (zh) * | 2021-07-29 | 2021-10-29 | 深圳证券信息有限公司 | 一种数据共享方法、系统、设备及计算机可读存储介质 |
CN114039771A (zh) * | 2021-11-08 | 2022-02-11 | 阿波罗智联(北京)科技有限公司 | 一种数据处理方法、装置、系统、电子设备及存储介质 |
CN114039771B (zh) * | 2021-11-08 | 2023-12-29 | 阿波罗智联(北京)科技有限公司 | 一种数据处理方法、装置、系统、电子设备及存储介质 |
CN113904768A (zh) * | 2021-11-10 | 2022-01-07 | 福建师范大学 | 基于sm9密钥封装机制的在线离线解密方法 |
CN113904768B (zh) * | 2021-11-10 | 2023-05-05 | 福建师范大学 | 基于sm9密钥封装机制的在线离线解密方法 |
CN114257366A (zh) * | 2021-12-20 | 2022-03-29 | 成都卫士通信息产业股份有限公司 | 信息同态处理方法、装置、设备及计算机可读存储介质 |
CN114257366B (zh) * | 2021-12-20 | 2024-04-12 | 成都卫士通信息产业股份有限公司 | 信息同态处理方法、装置、设备及计算机可读存储介质 |
CN114257374A (zh) * | 2021-12-20 | 2022-03-29 | 山东大学 | 一种用于标识密码体制的可验证安全外包计算方法及系统 |
CN114257374B (zh) * | 2021-12-20 | 2023-08-15 | 山东大学 | 一种用于标识密码体制的可验证安全外包计算方法及系统 |
CN114531291A (zh) * | 2022-02-21 | 2022-05-24 | 深圳市铖月控股有限公司 | 遥控器数据加密方法、解密方法、遥控器及电子设备 |
CN114363858A (zh) * | 2022-03-21 | 2022-04-15 | 苏州浪潮智能科技有限公司 | 蜂窝车联网协同通信的会话及注册方法、系统及相关组件 |
CN114785501B (zh) * | 2022-05-30 | 2024-05-17 | 建信金融科技有限责任公司 | 数据判等方法、设备及存储介质 |
CN115001711A (zh) * | 2022-06-10 | 2022-09-02 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115001711B (zh) * | 2022-06-10 | 2024-01-30 | 成都卫士通信息产业股份有限公司 | 信息签名方法、装置、电子设备及计算机可读存储介质 |
CN115102688B (zh) * | 2022-08-24 | 2022-11-22 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115102688A (zh) * | 2022-08-24 | 2022-09-23 | 北京信安世纪科技股份有限公司 | 数据处理方法、多项式计算方法及电子设备 |
CN115935429B (zh) * | 2022-12-30 | 2023-08-22 | 上海零数众合信息科技有限公司 | 一种数据处理方法、装置、介质以及电子设备 |
CN115935429A (zh) * | 2022-12-30 | 2023-04-07 | 上海零数众合信息科技有限公司 | 一种数据处理方法、装置、介质以及电子设备 |
CN116579005A (zh) * | 2023-07-10 | 2023-08-11 | 西安银信博锐信息科技有限公司 | 一种用户数据安全存储管理方法 |
CN116579005B (zh) * | 2023-07-10 | 2023-09-19 | 西安银信博锐信息科技有限公司 | 一种用户数据安全存储管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112822014B (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112822014B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111740828B (zh) | 一种密钥生成方法以及装置、设备、加解密方法 | |
CN107948189B (zh) | 非对称密码身份鉴别方法、装置、计算机设备及存储介质 | |
CN108418686B (zh) | 一种多分布式的sm9解密方法与介质及密钥生成方法与介质 | |
CN109756500B (zh) | 基于多个非对称密钥池的抗量子计算https通信方法和系统 | |
CN109309569B (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
US20180013555A1 (en) | Data transmission method and apparatus | |
US11831787B2 (en) | Temporal key generation and PKI gateway | |
US9705683B2 (en) | Verifiable implicit certificates | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
CN112564907B (zh) | 密钥生成方法及装置、加密方法及装置、解密方法及装置 | |
CN105721153B (zh) | 基于认证信息的密钥交换系统及方法 | |
CN101166088A (zh) | 基于用户身份标识的加解密方法 | |
CN109861813B (zh) | 基于非对称密钥池的抗量子计算https通信方法和系统 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN108696518B (zh) | 区块链上用户通信加密方法、装置、终端设备及存储介质 | |
CN110971411B (zh) | 一种基于sotp技术对私钥乘加密的sm2同态签名方法 | |
CN109194474A (zh) | 一种数据传输方法及装置 | |
CN112104453A (zh) | 一种基于数字证书的抗量子计算数字签名系统及签名方法 | |
JPWO2019093478A1 (ja) | 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム | |
JP2020532177A (ja) | データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法 | |
CN112995215B (zh) | 解密系统、方法、装置、电子设备及存储介质 | |
CN113726517A (zh) | 一种信息共享方法及装置 | |
CN106850584B (zh) | 一种面向客户/服务器网络的匿名认证方法 | |
CN110048852B (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 |