CN109274502B - 公钥加密及密钥签名的创建方法、设备及可读存储介质 - Google Patents
公钥加密及密钥签名的创建方法、设备及可读存储介质 Download PDFInfo
- Publication number
- CN109274502B CN109274502B CN201811300417.4A CN201811300417A CN109274502B CN 109274502 B CN109274502 B CN 109274502B CN 201811300417 A CN201811300417 A CN 201811300417A CN 109274502 B CN109274502 B CN 109274502B
- Authority
- CN
- China
- Prior art keywords
- hash
- public key
- key
- signature
- encryption
- 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
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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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)
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种用于区块链的公钥加密及密钥签名的创建方法,包括:步骤S101,构建函数,从而满足在公钥下加密数据,拥有转换器的一方创建消息,只有使用公钥的收件人才能解密,只能使用不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;步骤S102,选择与实现区块链的公钥加密创建不同的秘密值,为所有转换器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名。还公开了相应的设备及可读存储介质,本公开的技术方案只使用对称加密和哈希函数安全地交换密钥,从而以基本和有效的方式创建真实性、完整性和不可否认性的密码证明,无法逆向工程。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种公钥加密及密钥签名的创建方法、设备及可读存储介质。
背景技术
Shor算法非常重要,它代表使用量子计算机的情况下,可以用来破解已被广泛使用的公开密钥加密方法,即RSA加密算法,RSA算法的基础在于假设我们不能很有效地分解一个已知的整数,Shor算法展示了因子分解这个问题在量子计算机上可以得到很有效的解决,从而一个足够大的量子计算机可以破解RSA。目前,Shor算法已经极大地推进了量子计算机的发展,也促进了物理上实现量子计算机的现实化。该算法并不能保证每次运算都能得到正确的结果,但是可以通过增加实验的次数增加实验成功的概率,属于一种随机算法。
公钥密码***的安全性主要取决于构造算法所依赖的数学问题,它要求加密函数具有单向性,即求逆的困难性,因而密码分析者要从公开密钥中得到秘密密钥对于目前的计算能力来说是不可行的。
公钥密码学是一个在代理的公钥下加密数据的方法,其结果只能使用几乎不可能从公钥计算获得的相应秘密密钥来解密。我们传统上认为这是通过巧妙的数学函数来计算的,这些数学函数自然符合这个规范,然而量子计算变化莫测,我们实际上并不确切知道函数所能实现的到底是什么,这一点需要注意。随着量子计算时代的到来,世界保持自身安全的方式已经成为一个重要的问题,大量研究集中在不易受量子计算机攻击的签名以及非对称密码***。然而,这些并不能直接解决问题,因为这些显然不能提供明确的可替代方案。此外,大部分工作致力于基于格子的密码学,这被认为是最有希望的非对称密码解决方案,然而其并没有使用基础密码学,未免使方案复杂程度增加。
一般认为,标准的加密哈希方法是或可以做到不易受攻击的,并且具有足够强的对称密码***,例如AES。合理的方案更愿意遵循基础密码学原理基础上增加简单和可以实现的技术补充。
发明内容
鉴于上述技术问题,本公开内容提出了一种公钥加密及密钥签名创建方法、设备及可读存储介质,只使用对称加密和哈希函数安全地交换密钥,从而以基本和非常有效的方式创建真实性、完整性和不可否认性的密码证明,允许创建使用公钥进行加密并通过秘密密钥解密的设备,或者创建和验证使用密钥创建的签名的设备,这些简单的加密设备不能被成功地逆向工程。
本发明的构思在于:本发明所提供的解决方案避免了加密过程中采用的非对称加密方法被量子计算机破解的风险,采用了一个转换器,转换器内有加密计算程序enc、解密计算程序dec、秘密值mk以及其它所需的必要程序,所有需要传递信息的转换器内均有该秘密值mk,保持一致,并且该值不为其它方所知,通过这种方式避免了对称加密方法中密钥传输的安全问题。这种转换器不仅可以应用于区块链加密,还可以用于其它的加密应用场合。为采用公钥加密方式,本发明还提供了一种方法,对上述转换器功能进行扩展,增加另一个只有转换器知道且不同转换器内保持一致的秘密值ms,提出扩展的加密计算程序enc和解密计算程序dec,实现对公钥的验证和其它相关加密应用。
在本公开内容的一个方面,提供了一种用于区块链的公钥加密及密钥签名的创建方法,包括:
步骤S101,构建函数,从而满足在公钥下加密数据,拥有转换器的一方创建消息,只有所使用公钥对应的收件人才能解密,只能使用不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;
步骤S102,选择与实现区块链的公钥加密创建不同的秘密值,为所有转换器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名。
在一些实施方式中,所述函数作为完整的软件包提供给用户,拒绝攻击者绕开分解所述函数的机会,并且将所述公钥的一部分保留所述完整的软件包中的秘密值,从而所述公钥无法自重建。
在一些实施方式中,使用转换器进行多种安全密钥协商方法,所述安全密钥协商方法使用自生成熵方法或依靠用户生成熵的方法,所述依靠用户生成熵的方法包括对熵进行哈希运算防止中间方的攻击。
在一些实施方式中,对于最后开发的一个协议,自生成熵方法以及依靠用户生成熵的方法均包括:对熵进行哈希运算防止中间方的攻击。
在一些实施方式中,所述步骤S101包括:对于试图同意密钥的用户A和B,他们各自拥有转换器,传递开始时由A向B发出协商信号,B实时随机生成秘密数NB后对NB进行哈希运算得到hash(NB),并传送给A;A生成X并且使用转换器进行加密计算V=enc(hash(mk,hash(NB)),hash(X));A将V值传送给B,B将V值以及NB值输入到转换器,转换器进行解密计算dec(hash(mk,hash(NB)),V),计算结果应当等于hash(X),A和B通过在公共授信通道上同意hash(hash(X))以最终确认该密钥哈希hash(X),其中mk是所有转换器都知晓的主密钥,其他人并不能知晓该主密钥,enc和dec为转换器中用于对称密钥的加密和解密函数。
在一些实施方式中,包括所述最终确认在内的所有通信都可以在Dolev-Yao网络上完成。
在一些实施方式中,所述转换器具有计算A和B所需的复合函数的功能。
在一些实施方式中,B将hash(NB)重新作为一次性或多次使用的公钥,如果B在同类型交换中将hash(NB)作为一次或多次使用的公钥,无需对函数作出改变,就可以获得秘密密钥NB。
在一些实施方式中,所述步骤S102包括:为了签名X,输入X和私钥sk并输出enc(hash(ms,hash(sk)),X);通过公钥pk进行验证,所述验证的步骤包括:输入Y和公钥pk,输出dec(hash(ms,pk),Y)。验证代理检查所述签名X的格式是否正确和/或所述签名X等于通过其它方式获知的签名X;ms为另一个所有转换器都知晓的密钥,其他人并不能知晓该主密钥,且ms必须有别于主密钥mk,enc和dec为转换器中用于对称密钥的加密和解密函数。
在一些实施方式中,所述验证的步骤还用于破解加密。
在一些实施方式中,对于对称加密采用易于计算的函数f,使得dec(k,·)与enc(f(k),·)相同,除非f是固定不变或者包含大量k的情况下,否则使用哈希运算可以消除该攻击角度。
在本公开内容的另一方面,还提供了一种用于区块链的公钥加密及密钥签名的创建设备,包括处理器,其中所述处理器可以用于:
构建函数,从而满足在公钥下加密数据,拥有转换器的一方创建消息,只有所使用公钥对应的收件人才能解密,只能使用不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;
选择与实现区块链的公钥加密创建不同的秘密值,为所有转换器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名。
在一些实施方式中,所述函数作为完整的软件包提供给用户,拒绝攻击者绕开分解所述函数的机会,并且将所述公钥的一部分保留所述完整的软件包中的秘密值,从而所述公钥无法自重建。
在一些实施方式中,使用转换器进行多种安全密钥协商方法,所述安全密钥协商方法使用自生成熵方法或依靠用户生成熵的方法,所述依靠用户生成熵的方法包括对熵进行哈希运算防止中间方的攻击。
在一些实施方式中,对于最后开发的一个协议,自生成熵方法以及依靠用户生成熵的方法均包括:对熵进行哈希运算防止中间方的攻击。
在一些实施方式中,所述函数包括:对于试图同意密钥的用户A和B,由A向B发出协商信号,B实时随机生成秘密数NB后对NB进行哈希运算得到hash(NB),并传送给A;A生成X并且使用转换器进行加密计算V=enc(hash(mk,hash(NB)),hash(X));A将V值传送给B,B将V值以及NB值输入到转换器,转换器进行解密计算dec(hash(mk,hash(NB)),V),计算结果应当等于hash(X),A和B通过在公共授信通道上同意hash(hash(X))以最终确认该密钥哈希hash(X),其中mk是所有转换器都知晓的主密钥,其他人并不能知晓该主密钥,enc和dec为转换器中用于对称密钥的加密和解密函数。
在一些实施方式中,包括所述最终确认在内的所有通信均在
Dolev-Yao网络上完成。
在一些实施方式中,所述转换器具有计算A和B所需的复合函数的功能。
在一些实施方式中,B将hash(NB)重新作为一次性或多次使用的公钥,如果B在同类型交换中将hash(NB)作为一次或多次使用的公钥,无需对函数作出改变,就可以获得秘密密钥NB。
在一些实施方式中,为了签名X,输入X和私钥sk并输出enc(hash(ms,hash(sk)),X);通过公钥pk进行验证,所述验证的步骤包括:输入Y和pk,输出dec(hash(ms,pk),Y)。验证代理检查所述签名X的格式是否正确和/或所述签名X等于通过其它方式获知的签名X;ms为另一个所有转换器都知晓的密钥,其他人并不能知晓该主密钥,且ms必须有别于主密钥mk,enc和dec为转换器中用于对称密钥的加密和解密函数。
在一些实施方式中,所述验证的步骤还用于破解加密。
在一些实施方式中,对于对称加密采用易于计算的函数f,使得dec(k,·)与enc(f(k),·)相同,除非f是固定不变或者包含大量k的情况下,否则使用哈希运算可以消除该攻击角度。
在本公开内容的再一方面,还提供了一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现如上文所述的用于区块链的公钥加密及密钥签名的创建方法。
与现有技术相比,本公开内容的有益效果为:
只使用对称加密和哈希函数安全的交换密钥,从而以基本和非常有效的方式创建真实性、完整性和不可否认性的密码证明,允许创建使用公钥进行加密并通过秘密密钥解密的设备,或者创建和验证使用密钥创建的签名的设备,这些简单的加密设备不能被成功地逆向工程。
附图说明
在所附权利要求书中具体阐述了本发明的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解。附图仅用于示出实施方式的目的,而并不应当认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的元素,在附图中:
图1示出了依据本公开内容示例性实施方式的用于区块链的公钥加密及密钥签名的创建方法流程图;以及
图2示出了依据本公开内容示例性实施方式的用于区块链的公钥加密及密钥签名的创建设备结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开内容的示例性实施方式。虽然附图中显示了本公开内容的示例性实施方式,然而应当理解,可以以各种形式实现本公开内容而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开内容,并且能够将本公开内容的范围完整地传达给本领域技术人员。在以下详细描述中没有任何内容旨在表明任何特定组件、特征或步骤对于本发明是必不可少的。本领域技术人员将会理解,在不脱离本公开内容的范围内各种特征或步骤可以彼此替代或结合。
本实施例所提供的解决方案避免了加密过程中采用的非对称加密方法被量子计算机破解的风险,实施中采用了一个转换器,转换器内有加密计算程序enc、解密计算程序dec、秘密值mk以及其它所需的必要程序,所有需要传递信息的转换器内均有该秘密值mk,保持一致,并且该值不为其它方所知,通过这种方式避免了对称加密方法中密钥传输的安全问题。这种转换器不仅可以应用于区块链加密,还可以用于其它的加密应用场合。为采用公钥加密方式,本发明还提供了一种方法,对上述转换器功能进行扩展,增加另一个只有转换器知道且不同转换器内保持一致的秘密值ms,提出扩展的加密计算程序enc和解密计算程序dec,实现对公钥的验证和其它相关加密应用。
图1示出了依据本公开内容示例性实施方式的用于区块链的公钥加密及密钥签名创建方法的流程图。如图1所示,一种用于区块链的公钥加密及密钥签名的创建方法,其包括:
步骤S101,构建函数,从而满足在公钥下加密数据,拥有转换器的一方创建消息,只有所使用公钥对应的收件人才能解密,只能使用不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;
步骤S102,选择与实现区块链的公钥加密创建不同的秘密值,为所有转换器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名。
在该实施方式中,如果我们能够将函数分解,那么攻击者就有机会绕开这些函数,因此所述函数作为完整的软件包提供给用户,拒绝攻击者绕开分解所述函数的机会,并且将所述公钥的一部分保留所述完整的软件包中的秘密值,从而所述公钥无法自重建。
在该实施方式中,使用转换器进行多种安全密钥协商方法,所述安全密钥协商方法使用自生成熵方法或依靠用户生成熵的方法,所述依靠用户生成熵的方法包括对熵进行哈希运算防止中间方的攻击。
在该实施方式中,对于最后开发的一个协议,自生成熵方法以及依靠用户生成熵的方法均包括:对熵进行哈希运算防止中间方的攻击。
在该实施方式中,所述步骤S101包括:对于试图同意密钥的用户A和B,他们各自拥有转换器,传递开始时由A向B发出协商信号,B实时随机生成秘密数NB后对NB进行哈希运算得到hash(NB),并传送给A;A生成X并且使用转换器进行加密计算V=enc(hash(mk,hash(NB)),hash(X));A将V值传送给B,B将V值以及NB值输入到转换器,转换器进行解密计算dec(hash(mk,hash(NB)),V),计算结果应当等于hash(X),A和B通过在公共授信通道上同意hash(hash(X))以最终确认该密钥哈希hash(X),其中mk是所有转换器都知晓的主密钥,其他人并不能知晓该主密钥,enc和dec为转换器中用于对称密钥的加密和解密函数。
在该实施方式中,包括所述最终确认之内的所有通信都可以在Dolev-Yao网络上完成。
在该实施方式中,所述转换器具有计算A和B所需的复合函数的功能。
在该实施方式中,B将hash(NB)重新作为一次性或多次使用的公钥,如果B在同类型交换中将hash(NB)作为一次或多次使用的公钥,无需对函数作出改变,就可以获得秘密密钥NB。
在该实施方式中,所述步骤S102包括:为了签名X,输入X和私钥sk并输出enc(hash(ms,hash(sk)),X);通过公钥pk进行验证,所述验证的步骤包括:输入Y和pk,输出dec(hash(ms,pk),Y)。验证代理检查所述签名X的格式是否正确和/或所述签名X等于通过其它方式获知的签名X;ms为另一个所有转换器都知晓的密钥,其他人并不能知晓该主密钥,且ms必须有别于主密钥mk,enc和dec为转换器中用于对称密钥的加密和解密函数。
在该实施方式中,所述验证的步骤还用于破解加密。
在该实施方式中,对于对称加密采用易于计算的函数f,使得dec(k,·)与enc(f(k),·)相同,除非f是固定不变或者包含大量k的情况下,否则使用哈希运算可以消除该攻击角度。
假设存在一个通用可访问的时间戳数据库,如区块链,构建的公钥加密设备具有如下属性:
第一,相同的设备或由角色表征的少量类型的设备是广泛分布的,并且由所有受信方和潜在的攻击者共同拥有,设备与其所有者可安全地交互,并且一些情况下通过不安全的网络彼此交互;
第二,设备根据公开可用的现有技术方法计算或传送多个数值,但是仅被允许持有对外部多方以及设备自身用户都是不可用的秘密值,该秘密值在所有实例中同等创建或者在计算过程中被创建;
第三,设备不使用公钥或者其他存在潜在的量子漏洞的加密技术,设备做作的计算是少量且经济性较高的;
第四,设备使其用户交换或者开发其他各方都无法知晓的密钥;
本实施例中,设定Alice和Bob是试图确认密钥的两个用户,分别拥有转换器A和B,可通过以下协议生成密钥哈希hash(X),Alice和Bob可以通过在公共授信通道上确认hash(hash(X))。包括该最终确认之内的所有通信都可以在Dolev-Yao网络上完成。
mk是所有转换器都知晓的主密钥,其他人并不能知晓该主密钥。那么该协议流程可以采用如下代码表征:
Alice->Bob:开始;
Bob实时随机生成NB;
Bob->Alice:对NB进行哈希运算得到hash(NB);
Alice生成X并且使用A进行加密计算V=enc(hash(mk,hash(NB)),hash(X));
Alice->Bob:发送V;
Bob将V值以及NB值赋予给B,B进行解密计算dec(hash(mk,hash(NB)),V),其结果应当等于hash(X)。
这里enc和dec为转换器内进行的运算,可以用一些合适的对称密钥的加密和解密函数。转换器必须具有两个功能,即计算Alice所需的加密解密复合函数和计算Bob所需的加密解密复合函数。
本实施例中,NB为一个秘密值,只有Bob知道并用来计算得到最后的密钥哈希hash(X),计算时需要Alice所发送的值以及Bob转换器的相应计算函数。
如果Bob在未来的同类型交换中重新使用NB,则不会有太多的改变,但是Bob也就不再拥有协议之初以哈希hash(NB)形式发送的一次性NB与最终接收的消息之间具有的直接因果关系。在任何情况下,Bob所给予的保证都很少,因为任何情况下任何人都可以向其发送一版具有额外开销的哈希hash(NB)最终消息。本实施例所确定的协议确保除了使用A和使用B的用户之外没有人能够获知协议末尾的哈希hash(X),并且鉴于缺乏转换器的身份识别信息,就更加无法获知更多的信息。Alice和Bob只能通过公共授信通道的哈希hash(X)比较识别对方,因此,Bob有可能将哈希hash(NB)重新作为一次性或多次使用的公钥。知道这个哈希值的任何人都可以成功地向Bob发送上述协议中的消息,由于Bob知晓NB的内容,其转换器将可以准确解码,因此NB是公钥哈希hash(NB)的秘密密钥。这是一个理想的配对,因为由公钥推导密钥的难度正是密码哈希函数的原像阻力。
以上协议不是严格意义上的公钥加密,因为X用于“加密”的输入,hash(X)由“解密”而来,而哈希计算的原因在于防止中间方的解密破坏。不进行哈希运算,Alice会在无意识的情况将X发送给Eve,然后Eve可以将X发送给Bob,而Alice和Bob都无法察觉到这一点。此外,如果Alice知道哈希Hash(NB)是由Bob而不是Eve产生的,那么以上情况就变得不可能了,因为在这样的MITM攻击中,Eve需要创建自己的哈希Hash(NB),从而能够使用自身的转换器的解密功能,在这种情况下,可以从“加密”中去掉“X”的哈希运算,那么Alice就可以知晓只有Bob能够解密其信息。
每个节点已经注册有一个形式为pkA=hash(skA)的经过认证授权的公钥,这些认证授权已经为其签署了适当的密钥证书。给定X和pk,转换器将为加密模式下的用户计算enc(hash(mk,pk),X)。对于给定Y和sk,转换器计算解密模式下的dec(hash(mk,hash(sk)),Y),正是期望的公钥加密的效果。任何拥有转换器的人都可以创建一条消息,只有使用公钥的收件人才能解密。这样转换器实现了非对称加密的消息收发功能。
解密很难操纵密钥上的转换,因为过程几乎不可能反转,并通过构建达到非法的解密目的,正如我们已经将公钥加密的规范分解为多个组成部分。当然,这种结构设计的公钥密码术具有两个缺点,第一,不提供原始证据;第二,只要可以猜出明文,就能对其进行检查,然而,这是可以通过签名克服第一个缺点,并且通过散布防止第二个缺点,即在加密之前足够随机地选择多个位作为填充。
密码学家多采用公钥加密算法进行签名,如果Alice用其密钥加密某些东西,那么任何人都可以通过使用Alice的公钥进行解密来验证,然而该操作由于没有实施共识机制函数而变得没有意义。也不适用于解密sk,然后在pk下的加密执行此操作,除非底层对称加密具有使用同一个密钥进行解密后的加密是身份函数的属性。然而,该实施例可以扩展转换器功能进行签名的创建:为了签名X,输入X和sk并输出enc(hash(ms,hash(sk)),X);通过pk进行验证的步骤包括:输入Y和pk,输出dec(hash(ms,pk),Y)。验证代理可以检查格式是否正确和/或等于通过其它方式获知的某个X,ms为另一个所有转换器都知晓的密钥,其他人并不能知晓该主密钥,且ms必须有别于主密钥mk,enc和dec为转换器中用于对称密钥的加密和解密函数。如秘密值ms与mk相等,该验证行为将很容易被破解。
上面的协议能够解决公钥加密的问题,对于是否需要避免逆向工程的需求没有涉及。在这个假设下,加密模式下看到的不安全主要潜在在对于给定的加密enc(hash(mk,pk),·),有一种使用所提供的具有多个特征的转换器在不知道sk的情况下仍然可以对其解密的方法。如果enc(k,enc(k,x))=x或者获得可以从中推导出X的要素,那么该协议就变得没有价值了,因此选择对称加密时需要谨慎,否则在密钥构造和结果中使用哈希假设结果几乎不可能达到加密密钥的任何特定目的。对于某些对称加密,采用易于计算的函数f,使得dec(k,·)与enc(f(k),·)相同,除非f是固定不变或者包含大量k的情况下,否则使用哈希运算消除该加密方法的攻击角度。这对于其他一些密钥构造来说并不适用。同等的使用哈希运算,并且采用不同的mk和ms数值,不必担心转换器的加密和签名模式之间相互干扰,即使攻击者在任一模式下自由地输入任何正确长度的字符串代替pk的哈希输出,也不必担心模式之间的干扰。而对于任何特定的对称加密方法,考虑其在架构中工作方式相关的独立特性,然而同样也不会影响模式之间的切换。
图2示出了依据本公开内容示例性实施方式的一种用于区块链的公钥加密及密钥签名的创建设备的结构示意图。如图2所示,该用于区块链的公钥加密及密钥签名的创建设备包括处理器201,其中处理器201可以用于区块链的公钥加密及密钥签名的创建方法,其包括:
步骤S101,构建函数,从而满足在公钥下加密数据,拥有转换器的一方创建消息,只有所使用公钥对应的收件人才能解密,只能使用不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;
步骤S102,选择与实现区块链的公钥加密创建不同的秘密值,为所有转换器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名。
在该实施方式中,如果我们能够将函数分解,那么攻击者就有机会绕开这些函数,因此所述函数作为完整的软件包提供给用户,拒绝攻击者绕开分解所述函数的机会,并且将所述公钥的一部分保留所述完整的软件包中的秘密值,从而所述公钥无法自重建。
在该实施方式中,使用转换器进行多种安全密钥协商方法,所述安全密钥协商方法使用自生成熵方法或依靠用户生成熵的方法,所述依靠用户生成熵的方法包括对熵进行哈希运算防止中间方的攻击。
在该实施方式中,对于最后开发的一个协议,自生成熵方法以及依靠用户生成熵的方法均包括:对熵进行哈希运算防止中间方的攻击。
在该实施方式中,所述步骤S101包括:对于试图同意密钥的用户A和B,由A向B发出协商信号,B实时随机生成秘密数NB后对NB进行哈希运算得到hash(NB),并传送给A;A生成X并且使用转换器进行加密计算V=enc(hash(mk,hash(NB)),hash(X));A将V值传送给B,B将V值以及NB值输入到转换器,转换器进行解密计算dec(hash(mk,hash(NB)),V),计算结果应当等于hash(X),A和B通过在公共授信通道上同意hash(hash(X))以最终确认该密钥哈希hash(X),其中mk是所有转换器都知晓的主密钥,其他人并不能知晓该主密钥,enc和dec为转换器中用于对称密钥的加密和解密函数。
在该实施方式中,包括该最终确认在内的所有通信都可以在
Dolev-Yao网络上完成。
在该实施方式中,所述转换器具有计算A和B所需的复合函数的功能。
在该实施方式中,B将hash(NB)重新作为一次性或多次使用的公钥,如果B在同类型交换中将hash(NB)作为一次或多次使用的公钥,无需对函数作出改变,就可以获得秘密密钥NB。
在该实施方式中,所述步骤S102包括:在所有节点都已经注册有经过认证授权的公钥sk时,转换器可以进行公钥加密和验证。为了签名X,输入X和私钥sk并输出enc(hash(ms,hash(sk)),X);通过公钥pk进行验证,所述验证的步骤包括:输入Y和公钥pk,输出dec(hash(ms,pk),Y),验证代理检查所述签名X的格式是否正确和/或所述签名X等于通过其它方式获知的签名X;ms为另一个所有转换器都知晓的密钥,其他人并不能知晓该主密钥,且ms必须有别于主密钥mk,enc和dec为转换器中用于对称密钥的加密和解密函数。
在该实施方式中,所述验证的步骤还用于破解加密。
在该实施方式中,对于对称加密采用易于计算的函数f,使得dec(k,·)与enc(f(k),·)相同,除非f是固定不变或者包含大量k的情况下,否则使用哈希运算可以消除该对称加密算法的攻击角度。
在本公开内容的再一方面,还提供了一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现如上文所述的用于区块链的公钥加密及密钥签名的创建方法。对于用于区块链的公钥加密及密钥签名的创建的技术方案,在上文已经进行了详细描述,在此不再赘述。在一些实施方式中,机器可读存储介质是数字处理设备的有形组件。在另一些实施方式中,机器可读存储介质可选地是可从数字处理设备移除的。在一些实施方式中,举非限制性示例而言,机器可读存储介质可以包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、闪速存储器、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、固态存储器、磁碟、光盘、云计算***或服务等。
应当理解,本公开内容的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
在本文所提供的说明书中,说明了大量具体细节。然而,应当理解,本公开内容的实施方式可以在没有这些具体细节的情况下实践。在一些实施方式中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
虽然本文已经示出和描述了本发明的示例性实施方式,但对于本领域技术人员显而易见的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,在实践本发明的过程中可以采用对本文所描述的本发明实施方式的各种替代方案。以下权利要求旨在限定本发明的范围,并因此覆盖这些权利要求范围内的方法和结构及其等同项。
Claims (21)
1.一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于包括:
步骤S101,构建函数,从而满足在公钥下加密数据,拥有换能器的一方创建消息,只有使用公钥的收件人才能解密,只能使用几乎不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;
步骤S102,选择与实现区块链的公钥加密创建不同的秘密值,为所有换能器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名,
其特征在于所述步骤S102包括:为了签名X,输入X和sk并输出enc(hash(ms,hash(sk)),X);通过pk进行验证,所述验证的步骤包括:输入Y和pk,输出dec(hash(ms,pk),Y),验证代理检查所述签名X的格式是否正确和/或所述签名X等于通过其它方式获知的签名X,其中pk=hash(sk);ms为另一个所有转换器共享的密钥,其他人并不能知晓ms,且ms与mk不相等。
2.根据权利要求1所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:所述函数作为完整的软件包提供给用户,拒绝攻击者绕开分解所述函数的机会,并且将所述公钥的一部分保留所述完整的软件包中的秘密值,从而所述公钥无法自重建。
3.根据权利要求1所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:使用换能器进行多种安全密钥协商方法,所述安全密钥协商方法使用自生成熵方法或依靠用户生成熵的方法,所述依靠用户生成熵的方法包括对熵进行哈希运算防止中间方的攻击。
4.根据权利要求3所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:对于最后开发的一个协议,自生成熵方法以及依靠用户生成熵的方法均包括:对熵进行哈希运算防止中间方的攻击。
5.根据权利要求1所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于所述步骤S101包括:对于试图同意密钥的用户A和B,由A向B发出协商信号,B实时随机生成秘密数NB后对NB进行哈希运算得到hash(N B ),所述秘密数NB只有B知道并且需要释放最后的密钥hash(X);A生成X并且使用X计算V=enc(hash(mk,hash (NB)),hash(X));A将V值传送给B,B将V值以及NB值赋予C,并计算dec(hash(mk, hash(NB)),V),其中哈希运算由C计算完成,来自于直接输入的NB,将计算结果发送给B,计算结果应当等于hash(X),A和B通过在公共授信通道上同意hash(hash(X))以最终确认该密钥哈希hash(X),获得秘密密钥NB,其中mk是所有换能器都知晓的主密钥,其他人并不能知晓该主密钥,enc和dec为用于对称密钥的加密和解密函数。
6.根据权利要求5所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:除了所述最终确认之外的所有通信均在Dolev-Yao网络上完成。
7.根据权利要求1所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:所述换能器具有计算A和B所需的复合函数的功能。
8.根据权利要求5所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:B将hash(NB)重新作为一次性或多次使用的公钥,如果B在同类型交换中将hash(NB)作为一次或多次使用的公钥,无需对函数作出改变,就可以获得秘密密钥NB。
9.根据权利要求1所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:所述验证的步骤还用于破解加密。
10.根据权利要求1或5任一所述的一种用于区块链的公钥加密及密钥签名的创建方法,其特征在于:对于对称加密以及易于计算的函数f,dec(k,·)与enc(f(k),·)相同,除非f是身份识别函数或者包含大量k的情况下,否则使用哈希运算消除中间方的攻击。
11.一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:包括处理器,其中所述处理器可以用于:
构建函数,从而满足在公钥下加密数据,拥有换能器的一方创建消息,只有使用公钥的收件人才能解密,只能使用几乎不能从公钥计算获得的相应秘密密钥来解密,从而实现区块链的公钥加密创建;
选择与实现区块链的公钥加密创建不同的秘密值,为所有换能器共享,其他方无法获知,通过哈希运算以及验证步骤,验证代理检查签名格式是否正确和/或是否签名等于通过其它方式获知的另一签名,
其特征在于:为了签名X,输入X和sk并输出enc(hash(ms,hash(sk)),X);通过pk进行验证,所述验证的步骤包括:输入Y和pk,输出dec(hash(ms,pk),Y),验证代理检查所述签名X的格式是否正确和/或所述签名X等于通过其它方式获知的签名X,其中pk=hash(sk);ms为另一个所有转换器共享的密钥,其他人并不能知晓ms,且ms与mk不相等。
12.根据权利要求11所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:所述函数作为完整的软件包提供给用户,拒绝攻击者绕开分解所述函数的机会,并且将所述公钥的一部分保留所述完整的软件包中的秘密值,从而所述公钥无法自重建。
13.根据权利要求11所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:使用换能器进行多种安全密钥协商方法,所述安全密钥协商方法使用自生成熵方法或依靠用户生成熵的方法,所述依靠用户生成熵的方法包括对熵进行哈希运算防止中间方的攻击。
14.根据权利要求13所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:对于最后开发的一个协议,自生成熵方法以及依靠用户生成熵的方法均包括:对熵进行哈希运算防止中间方的攻击。
15.根据权利要求11所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:所述函数包括:对于试图同意密钥的用户A和B,由A向B发出协商信号,B实时随机生成秘密数NB后对NB进行哈希运算得到hash(N B ),所述秘密数NB只有B知道并且需要释放最后的密钥hash(X);A生成X并且使用X计算V=enc(hash(mk,hash (NB)),hash(X));A将V值传送给B,B将V值以及NB值赋予C,并计算dec(hash(mk, hash(NB)),V),其中哈希运算由C计算完成,来自于直接输入的NB,将计算结果发送给B,计算结果应当等于hash(X),A和B通过在公共授信通道上同意hash(hash(X))以最终确认该密钥哈希hash(X),获得秘密密钥NB,其中mk是所有换能器都知晓的主密钥,其他人并不能知晓该主密钥,enc和dec为用于对称密钥的加密和解密函数。
16.根据权利要求15所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:除了该最终确认之外的所有通信均在Dolev-Yao网络上完成。
17.根据权利要求11所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:所述换能器具有计算A和B所需的复合函数的功能。
18.根据权利要求15所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于: B将hash(NB)重新作为一次性或多次使用的公钥,如果B在同类型交换中将hash(NB)作为一次或多次使用的公钥,无需对函数作出改变,就可以获得秘密密钥NB。
19.根据权利要求11所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:所述验证的步骤还用于破解加密。
20.根据权利要求11或15任一所述的一种用于区块链的公钥加密及密钥签名的创建设备,其特征在于:对于对称加密以及易于计算的函数f,dec(k,·)与enc(f(k),·)相同,除非f是身份识别函数或者包含大量k的情况下,否则使用哈希运算消除中间方的攻击。
21.一种机器可读存储介质,其上存储有计算机程序,其中所述计算机程序在由处理器执行时实现如权利要求1-10任一所述的用于区块链的公钥加密及密钥签名的创建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811300417.4A CN109274502B (zh) | 2018-11-02 | 2018-11-02 | 公钥加密及密钥签名的创建方法、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811300417.4A CN109274502B (zh) | 2018-11-02 | 2018-11-02 | 公钥加密及密钥签名的创建方法、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109274502A CN109274502A (zh) | 2019-01-25 |
CN109274502B true CN109274502B (zh) | 2021-11-23 |
Family
ID=65191963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811300417.4A Active CN109274502B (zh) | 2018-11-02 | 2018-11-02 | 公钥加密及密钥签名的创建方法、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274502B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109672518B (zh) * | 2019-03-02 | 2022-04-12 | 西安安盟智能科技股份有限公司 | 抗量子攻击的区块链的节点数据处理 |
CN109981677B (zh) * | 2019-04-08 | 2021-02-12 | 北京深思数盾科技股份有限公司 | 一种授信管理方法及装置 |
CN111030821B (zh) * | 2019-08-27 | 2022-07-12 | 杭州云象网络技术有限公司 | 一种基于双线性映射技术的联盟链的加密方法 |
CN110598435B (zh) * | 2019-09-17 | 2021-11-19 | 上海保险交易所股份有限公司 | 通过区块链管理保险代理人履历的方法、装置和可读介质 |
CN111193750A (zh) * | 2020-01-06 | 2020-05-22 | 李蕴光 | 基于区块链的邮箱加密方法、解密方法和处理方法 |
CN111478907B (zh) * | 2020-04-08 | 2022-03-04 | 杭州复杂美科技有限公司 | 平行链隐私交易的防攻击方法、设备和存储介质 |
CN112765684B (zh) * | 2021-04-12 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 区块链节点终端管理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098157A (zh) * | 2009-12-10 | 2011-06-15 | 塔塔咨询服务有限公司 | 一种基于无证书公共密钥基础结构用于加强客户/服务器通讯协议安全性的***和方法 |
CN107171806A (zh) * | 2017-05-18 | 2017-09-15 | 北京航空航天大学 | 基于区块链的移动终端网络密钥协商方法 |
CN107493273A (zh) * | 2017-08-02 | 2017-12-19 | 深圳市易成自动驾驶技术有限公司 | 身份认证方法、***及计算机可读存储介质 |
CN107819583A (zh) * | 2016-09-13 | 2018-03-20 | 渡边浩志 | 密钥的防滥用技术 |
US10102526B1 (en) * | 2017-03-31 | 2018-10-16 | Vijay K. Madisetti | Method and system for blockchain-based combined identity, ownership, integrity and custody management |
CN108667598A (zh) * | 2018-04-28 | 2018-10-16 | 克洛斯比尔有限公司 | 用于实现安全密钥交换的设备和方法及安全密钥交换方法 |
-
2018
- 2018-11-02 CN CN201811300417.4A patent/CN109274502B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098157A (zh) * | 2009-12-10 | 2011-06-15 | 塔塔咨询服务有限公司 | 一种基于无证书公共密钥基础结构用于加强客户/服务器通讯协议安全性的***和方法 |
CN107819583A (zh) * | 2016-09-13 | 2018-03-20 | 渡边浩志 | 密钥的防滥用技术 |
US10102526B1 (en) * | 2017-03-31 | 2018-10-16 | Vijay K. Madisetti | Method and system for blockchain-based combined identity, ownership, integrity and custody management |
CN107171806A (zh) * | 2017-05-18 | 2017-09-15 | 北京航空航天大学 | 基于区块链的移动终端网络密钥协商方法 |
CN107493273A (zh) * | 2017-08-02 | 2017-12-19 | 深圳市易成自动驾驶技术有限公司 | 身份认证方法、***及计算机可读存储介质 |
CN108667598A (zh) * | 2018-04-28 | 2018-10-16 | 克洛斯比尔有限公司 | 用于实现安全密钥交换的设备和方法及安全密钥交换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109274502A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274502B (zh) | 公钥加密及密钥签名的创建方法、设备及可读存储介质 | |
US8670563B2 (en) | System and method for designing secure client-server communication protocols based on certificateless public key infrastructure | |
CN107947913B (zh) | 一种基于身份的匿名认证方法与*** | |
JP4944886B2 (ja) | 展性攻撃に対して改良された安全性を有する技術(これに限定されない)を含む非ワンタイムパッド暗号で暗号化した署名鍵を用いた、暗号認証、及び/又は共有暗号鍵の設定 | |
EP3642997A1 (en) | Secure communications providing forward secrecy | |
US9130744B1 (en) | Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary | |
Ma et al. | Distributed access control with adaptive privacy preserving property for wireless sensor networks | |
KR101516114B1 (ko) | 인증서 기반 프록시 재암호화 방법 및 이를 위한 시스템 | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
JP2022500920A (ja) | コンピュータにより実施される、共通シークレットを共有するシステム及び方法 | |
CN101277186B (zh) | 利用非对称密钥算法实现外部认证的方法 | |
CN113242129B (zh) | 一种基于格加密的端到端数据机密性和完整性保护方法 | |
Baee et al. | The Security of “2FLIP” Authentication Scheme for VANETs: Attacks and Rectifications | |
Gobi et al. | A comparative study on the performance and the security of RSA and ECC algorithm | |
Phan et al. | Cryptanalysis of the n-party encrypted diffie-hellman key exchange using different passwords | |
KR102304831B1 (ko) | 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법 | |
CN110572257B (zh) | 基于身份的数据来源鉴别方法和*** | |
Surya et al. | Single sign on mechanism using attribute based encryption in distributed computer networks | |
WO2010076899A1 (ja) | 放送型暗号システム、送信者装置、ユーザ装置、カプセル化/脱カプセル化方法 | |
CN116781243B (zh) | 一种基于同态加密的不经意传输方法、介质及电子设备 | |
JP7377495B2 (ja) | 暗号システム及び方法 | |
Citharthan et al. | Role of cryptography and its challenges in integrating secured IoT products | |
Yau et al. | On the Security of a Non-Interactive Authenticated Key Agreement over Mobile Communication Networks | |
Tripathi et al. | Identity based Signcryption and security attacks and prevention-A Survey | |
CN117201000A (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 |