CN110417556A - 区块链中的加密及签章验证方法 - Google Patents
区块链中的加密及签章验证方法 Download PDFInfo
- Publication number
- CN110417556A CN110417556A CN201910591183.1A CN201910591183A CN110417556A CN 110417556 A CN110417556 A CN 110417556A CN 201910591183 A CN201910591183 A CN 201910591183A CN 110417556 A CN110417556 A CN 110417556A
- Authority
- CN
- China
- Prior art keywords
- transaction data
- block
- algorithm
- encryption
- ciphertext
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0478—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/3236—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 using cryptographic hash functions
-
- 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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Bioethics (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Databases & Information Systems (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种区块链中的加密及签章验证方法。该方法包括:信息所有者设定加密策略,将加密策略和公钥输入到加密算法中生成相应密文,通过ECDSA生成自己的签章,将签章、密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中;用户根据自己的属性及私钥生成专属私钥,用专属私钥去解密某个区块上的密文,若所述用户的属性符合所述某个区块上的加密策略要求,则解密成功并获取交易数据;用户用某个区块中的签章以及哈希数组去验证交易数据的真实性,根据验证结果判断交易数据为真或假。本发明的方法可以在控制访问权限的基础上对交易数据进行双重加密,可以在不暴露交易数据的前提下使解密数据的真实性得到验证。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链中的加密及签章验证方法。
背景技术
区块链可以在节点之间提供分布式的信任机制,其上的任何数据都是可以被信任且不可改变的。因为这些优点,区块链可被用于在陌生或半可信的节点之间进行可信的信息交换。
目前区块链已被广泛应用于交易市场,而现有应用于区块链中的加解密等算法仍存在很多缺陷。首先,区块链的透明度导致了一些不希望被分享的信息暴露给了没有权限的节点,目前的公有区块链中上链的交易数据是完全暴露给所有用户的,这是为了使用户可以验证这些交易数据的真实性。其次,信息的信息所有者对请求者没有访问权限的控制,任何人都可以解密。
发明内容
本发明的实施例提供了一种区块链中的加密及签章验证方法,以克服现有技术的缺点。
为了实现上述目的,本发明采取了如下技术方案。
一种区块链中的加密及签章验证方法,包括:
信息所有者根据交易数据确定想要面向的用户,并设定加密策略,将加密策略和公钥输入到加密算法中生成相应密文,所述信息所有者通过椭圆曲线数字签名算法ECDSA生成自己的签章,将所述签章、密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中;
当用户选择某个区块上的一条交易数据进行解密时,根据自己的属性及私钥生成专属私钥,用所述专属私钥去解密所述某个区块上的密文,若所述用户的属性符合所述某个区块上的加密策略要求,则解密成功并获取交易数据;
所述用户用所述某个区块中的签章以及哈希数组去验证所述交易数据的真实性,根据验证结果判断所述交易数据为真或假。
优选地,所述的将加密策略和公钥输入到加密算法中生成相应密文,包括:
所述信息所有者通过ECDSA中的Key generation算法生成自己的私钥SSK和公钥SPK,由一种随机生成器生成一组随机序列m,将m用哈希函数转换成AES算法的密钥k,利用所述AES算法的密钥k根据交易数据D、加密策略、全局参数、公钥SPK生成密文C,同时用DABE算法将m加密为密文Cm。
优选地,所述的信息所有者通过椭圆曲线数字签名算法ECDSA生成自己的签章,包括:
所述信息所有者将交易数据通过哈希函数转换为哈希数组h1,h2,…,hn,将所述哈希数组组合为整合数组H’=(h1,h2,…,hn),对所述整合数组H’进行哈希变换得到数组H”;
所述信息所有者将所述数组H”和所述SSK作为ECDSA中的Generatesignature算法的输入,所述Generate signature算法输出所述信息所有者的签章Sn。
优选地,所述的将所述签章、密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中,包括:
将所述签章Sn、密文C、密文Cm、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中。
优选地,所述的当用户选择某个区块上的一条交易数据进行解密时,根据自己的属性及私钥生成专属私钥,用所述专属私钥去解密所述某个区块上的密文,若所述用户的属性符合所述某个区块上的加密策略要求,则解密成功并获取交易数据,包括:
当用户选择某个区块上的一条交易数据进行解密时,根据用户的属性a、私钥SK以及全局参数通过基于属性的分布式加密DABE***中的Keygeneration算法生成与用户的属性相关的专有私钥SKa;
将所述某个区块上的密文C、所述专有私钥Ska、全局参数作为DABE***中的Decryption算法的输入,当所述用户的属性满足所述某个区块上的加密策略要求时,由DABE算法解密某个区块上的Cm得到m’,再将m’经哈希函数还原为密钥k’,进而用AES算法解密密文C得到解密后的交易数据D。
优选地,所述的用户用所述某个区块中的签章以及哈希数组去验证所述交易数据的真实性,根据验证结果判断所述交易数据为真或假,包括:
将从所述某个区块上解密得到的第i笔交易数据Di进行哈希变换得到哈希数组hi,将hi组合到所述某个区块上的原有整合数组H’中,并再次进行哈希变换得到数组H”;
将所述交易数据Di、数据对应的序列号i、数组H”、所有交易的哈希数组(h1,h2,…,hn)、公钥SPK以及签章Sn作为ECDSA中的Verify signature算法的输入,再根据哈希数组和签章的匹配情况,输出所述签章Sn的验证结果为真或为假。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例提供的区块链中的加密及签章验证方法可以在控制访问权限的基础上对交易数据进行双重加密,可以在不暴露交易数据的前提下使解密数据的真实性得到验证。在可以控制用户的访问权限的前提下,提升***的安全性能,保证了在交易数据不暴露给所有用户的前提下,让用户可以验证解密得到的数据是否真实有效。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一个“AND”门和“OR”门的树的示意图;
图2为本发明实施例提供的一种将交易的密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块Block的示意图;
图3为本发明实施例提供的一种用专属私钥去解密相应密文,用Block中的签章以及哈希数组去验证该笔交易数据的真实性,返回验证结果真或假的示意图;
图4、5和6为本发明实施例提供的方法中的加解密和签章生成与验证部分的示意图;
图7为本发明实施例提供的一种交易的加密、解密及验证的全流程示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
本发明基于区块链中现有的加密算法提出一种隐私保护***,旨在实现无需公开具体交易数据即可验证其真伪。除此之外,该***还可以通过设置加密策略对每笔数据的可访问用户进行控制。尽管区块链上的交易数据已经进行了加密以控制访问权限,客户仍然可以验证链上的所有交易数据。通过隐私保护和访问权限控制,每个节点可以只与指定接收者共享所有信息,并保证所有资料可被公共验证且不能任意篡改。
1、策略和属性
一个加密者可以指定一个树访问结构,其中内部节点由“AND”和“OR”门组成,叶子由不同的各方组成。任何一组满足树的集都可以重构秘密。在访问树结构中,私钥由一组描述性属性来标记,而密文由一个树访问结构生成,树的每个内部节点都是一个阈值门,叶子与属性相关联。例如,可以使用2/2和1/2阈值门来分别表示一个“AND”门和“OR”门的树,见附图1。这样当且仅当密钥中的属性分配给树的节点满足了树的要求时,用户才能用密钥成功解密密文。
例如,A公司对其私有信息进行加密,指定只有具备特定属性的公司才能访问,具体来说,公司A可以设定以下加密策略来获取加密信息:((“超市”OR“银行”OR“餐厅”)AND(“已上市”OR“半年内成立”)AND(“中国”OR“日本”OR“新加坡”))。这样就意味着公司A只允许符合上述条件的公司查看该信息。不同于秘密共享机制(即指定一组参与方必须参与合作才能重构一个秘密),不同方之间是明令禁止合作共享的。例如,如果公司B是中国刚上市的互联网公司,而公司C是日本成立两年的未上市银行,则不允许两者共享对方的属性来进行协作解密。
2、ABE加密***:
下面对基于属性加密(Attribute-Based Encryption,ABE)***的介绍以基于属性的密文-策略加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)为例,并只关注单调的访问结构。其加解密过程为:首先由一个随机算法产生一个主钥,并由主该钥进而生成公钥,其中主钥可以简单理解为公共参数;随后每个参与者都可以用主钥和自己的属性在授权的权威机构获取属于自己的私钥;同时加密者用公钥加密信息并设定一个访问结构嵌入密文中;其他参与者携私钥解密,当他的属性满足访问结构时,就可以成功得到解密后的信息。该***由以下几个算法组成:
Set up()一种随机算法,它只接受隐式安全参数的输入,并输出公钥PK和一个主钥MK;
Key Generation(MK,a)此算法将主钥MK和一组描述性的属性a作为输入,并输出私钥SK;
Encryption(A,PK,M)一种随机算法,它接受一个访问结构A、公钥PK以及一段待加密信息M作为输入,然后输出密文C;
Decryption(C,SK,PK)该算法以密文C、私钥SK和公钥PK为输入,如果属性集满足访问结构,则算法将返回正确的消息M。
3、DABE加密***:
基于属性的分布式加密(Decentralizing Attributes-Based Encryption,DABE)***是在ABE的基础上加以改进的,此***中,任何一方都可以成为一个权威机构,除了创建一组初始公共引用参数外,不需要任何全局协调。每一方都可以作为ABE中的权威机构创建一个公钥并根据不同用户的属性为他们颁发私钥。而不同权威机构之间甚至无需互相了解,用户可以根据从所选择的权威机构处得到的基于属性的布尔公式加密数据。这种***在整个加密解密过程中都不需要任何中央授权机构,因此也避免了由于依赖中央权威机构而导致的性能瓶颈,使***更具有可扩展性。同时还避免将绝对的信任放在一个要求必须在***的整个生命周期内保持活跃且未受破坏的单独实体上,这点无论是在效率还是安全上都是十分重要的改进。因为即使是一个未受损害的中央权威机构有时也会因为一些良性的原因而停止服务,然而一个不断依赖它的参与的***会因此而被迫保持阻塞状态直到授权中心恢复为止。在DABE***中,各权威机构之间完全独立运作,一些权威机构的失败或损坏不会影响其他权威机构的正常运作。
DABE***的加解密过程类似于ABE***,首先初始化一组公共引用参数,随后每个节点独立建立授权并生成一对密钥。用户可以选择在某个节点获取专属私钥,进而去解密在此节点下加密的密文。该***包括五个算法:
Global Setup()一种随机算法,它以安全参数为输入,并输出一个全局参数GP;
Authority Setup(GP)该算法以全局参数GP为输入,并发布其公钥PK和私钥SK;
Key Generation(SK,a,GP)该算法取私钥SK,一组属性a和全局参数GP为输入,它输出一个与属性相关的专有私钥SKa;
Encryption(A,PK,M,GP)一种随机算法,输入一个访问结构A、一个公钥PK、一段信息M以及全局参数GP,它将输出相应密文C;
Decryption(C,SKa,GP)该算法将密文C,专属私钥SKa和全局参数GP作为输入。同样地,当属性可以与加密策略成功匹配时,算法也会输出正确的解密信息M。
4、AES加密算法:
高级加密标准(Advanced Encryption Standard,AES)是目前世界上使用最普遍、最广泛的一种对称分组加密算法,这种算法具有独特的加解密数据结构,在国内外硬件和软件中都得到了广泛的应用。AES能够处理三种不同的密钥大小,分别为128bit,192bit和256bit。对称加密算法也就是加密和解密过程用的是同一个密钥,这种加密方式的优点是加解密效率高,适用于频繁发送数据的场景。缺点则是传输不方便。
AES的加密过程主要包括以下两个步骤:
首先是密钥扩展。接受密钥,并执行密钥扩展例程来生成一个密钥调度。将输入的密钥(16byte、24byte或32byte)进行扩展,根据密钥长度的不同,得到扩展后的密钥进行加密的轮数也不相同。然后进行明文加密,每一轮加密循环又包括四个子步骤,其中最后一轮除外。
明文加密的四个步骤如下:
替换字节:每轮的第一阶段都从子字节转换开始,它依赖于一个非线性的替换函数,用查找表的方式将每个字节替换为对应的另一个字节;
行位移转换:在矩阵的每一行中循环地将状态字节向左移动;
列混合转换:为了将矩阵中各个列做充分混合,这个步骤使用线性转换来混合每列的四个字节。矩阵变换的每一状态列都乘以一个常矩阵。在最后一次加密循环中不再进行列混合,而是以另一个加回合密钥过程取代;
加回合密钥:矩阵中的每个字节都会与本次的回合密钥(Round Key,RK)做逻辑异或运算,每个子密钥由主钥通过使用密钥生成策略生成。此过程以创建密钥和密文之间的关系为基础,能够在加密数据期间提供更多的安全性。
5、数字签章算法:
椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)是区块链中用于验证交易数据是否真实有效的一种数字签名算法,它由以下三个子算法组成:
Key generation()一种随机算法,只接收隐式安全参数,并输出私钥SSK和公钥SPK;
Generate signature(Tn,SSK)此算法将Block上的一笔交易Tn和私钥SSK作为输入,输出签章Sn;
Verify signature(Dn,Tn,SPK,Sn)该算法以解密得到的数据Dn、交易数据Tn、公钥SPK以及签章Sn作为输入。它的输出为验证的结果为真或假。
ECDSA算法的过程可简述如下:
1)信息所有者:
信息所有者,即签名者U,选择椭圆曲线域参数并生成密钥对(SPK,SSK),并选择一个哈希函数。随后签名者使用参数和私钥对一个消息进行签名。
2)用户:
用户,即验证者V,需要经过授权得到签名者U建立的相应哈希函数和椭圆曲线域参数。解密后验证者获取消息和签名对其进行验证,结果返回消息为真或假。
本发明实施例提供的区块链中的加密及签章验证方法包括如下的几个处理过程:
1)一个信息所有者对一笔交易数据进行加密上链的过程:
首先信息所有者根据其加密数据确定想要面向的用户,并规定加密策略。然后将一条策略和公钥输入到加密算法中生成相应密文,最后将该笔交易的密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块Block中。见附图2。
2)一个用户想要获取并验证链上的某条交易数据时,需要经历以下过程:
用户根据展示在Block上的信息,选择一条交易数据进行解密。首先将自己的属性及私钥输入到生成密钥算法中,生成一个携带属性的专属私钥,并用专属私钥去解密相应密文,若属性符合加密策略要求,则解密成功并获取交易数据。随后用Block中的签章以及哈希数组去验证该笔交易数据的真实性,最后返回验证结果真或假。见附图3。
本发明实施例的区块链中的加密及签章验证方法中的加解密和签章生成与验证部分的示意图如图4、5和6所示,图7为交易的加密、解密及验证的全流程示意图。
首先,加密算法的优化以AES算法及DABE算法为基础,将两种算法相结合。这个过程相当于对数据进行了双重加密,在加密时,首先由一种随机生成器生成一组随机序列m,将m用哈希函数转换成AES算法的密钥k,由AES算法将数据D加密为密文C,同时用DABE算法将m加密为密文Cm。而在解密过程中,需要先由DABE算法解密Cm得到m’,再将m’再次转换为哈希数k’,进而用AES算法解密密文C得到最终的解密数据D。
加解密的具体步骤为:
步骤1:Global Setup()一种随机算法,输入安全参数并输出全局参数GP;
步骤2:Authority Setup(GP)该算法以全局参数GP为输入,并发布其公钥PK和私钥SK;
步骤3:Key generation(a,SK,GP)一种随机算法,它接收一组属性a、私钥SK以及全局参数GP,并输出与属性相关的专有私钥SKa;
步骤4:Encryption(m,A,GP,PK,D)一种随机算法,它接收信息m、加密策略A、全局参数GP、公钥PK和待加密的数据D,它将输出相应密文C;
步骤5:Decryption(GP,SKa,C)该算法接收全局参数GP,个人私钥SKa和密文C,当属性满足加密策略时输出解密后的数据。
签章验证算法则基于ECDSA算法对其进行优化。首先对于签章生成过程,先将Block中每一笔交易数据通过哈希函数转换为哈希数组h1,h2,…,hn,将这些数组组合为一个整合数组H’=(h1,h2,…,hn),再次进行哈希变换得到数组H”。将私钥和哈希数组H”做为算法ECDSA的输入,并生成签章S。而在签章验证过程中,首先解密得到第i笔交易数据Di,将数据进行哈希变换得到相应的哈希数组hi,将hi组合到Block中的原有整合数组H’中,并再次进行哈希变换得到数组H”。用公钥、签章以及H”进行签章的验证,最终返回TRUE或FALSE。这样优化后的算法,可以实现无需在Block上展示具体交易数据的前提下,用户仅根据包装后的哈希数组和数字签名即可验证交易数据的真实性。
签章生成与验证的具体步骤为:
步骤1:Key generation()一种随机算法,只接收隐式安全参数并输出私钥SSK和公钥SPK;
步骤2:Generate signature((D1,D2,…,Dn),SSK)该算法将Block中所有的交易数据(D1,D2,…,Dn),和私钥SSK作为输入,输出一个签章S;
步骤3:Verify signature(Di,i,(h1,h2,…,hn),SPK,S)该算法以解密得到的数据Di、数据对应的序列号i、所有交易的哈希数组(h1,h2,…,hn)、公钥SPK以及签章S作为输入,最终输出验证结果真或假。
综上所述,本发明实施例提供的区块链中的加密及签章验证方法可以在控制访问权限的基础上对交易数据进行双重加密,可以在不暴露交易数据的前提下使解密数据的真实性得到验证。在可以控制用户的访问权限的前提下,提升***的安全性能,保证了在交易数据不暴露给所有用户的前提下,让用户可以验证解密得到的数据是否真实有效。
应用本发明实施例的方法,加解密和签章生成与验证各个过程所消耗的时间都在预期范围内。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (6)
1.一种区块链中的加密及签章验证方法,其特征在于,包括:
信息所有者根据交易数据确定想要面向的用户,并设定加密策略,将加密策略和公钥输入到加密算法中生成相应密文,所述信息所有者通过椭圆曲线数字签名算法ECDSA生成自己的签章,将所述签章、密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中;
当用户选择某个区块上的一条交易数据进行解密时,根据自己的属性及私钥生成专属私钥,用所述专属私钥去解密所述某个区块上的密文,若所述用户的属性符合所述某个区块上的加密策略要求,则解密成功并获取交易数据;
所述用户用所述某个区块中的签章以及哈希数组去验证所述交易数据的真实性,根据验证结果判断所述交易数据为真或假。
2.根据权利要求1所述的方法,其特征在于,所述的将加密策略和公钥输入到加密算法中生成相应密文,包括:
所述信息所有者通过ECDSA中的Key generation算法生成自己的私钥SSK和公钥SPK,由一种随机生成器生成一组随机序列m,将m用哈希函数转换成AES算法的密钥k,利用所述AES算法的密钥k根据交易数据D、加密策略、全局参数、公钥SPK生成密文C,同时用DABE算法将m加密为密文Cm。
3.根据权利要求2所述的方法,其特征在于,所述的信息所有者通过椭圆曲线数字签名算法ECDSA生成自己的签章,包括:
所述信息所有者将交易数据通过哈希函数转换为哈希数组h1,h2,…,hn,将所述哈希数组组合为整合数组H’=(h1,h2,…,hn),对所述整合数组H’进行哈希变换得到数组H”;
所述信息所有者将所述数组H”和所述SSK作为ECDSA中的Generate signature算法的输入,所述Generate signature算法输出所述信息所有者的签章Sn。
4.根据权利要求3所述的方法,其特征在于,所述的将所述签章、密文、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中,包括:
将所述签章Sn、密文C、密文Cm、加密策略以及交易数据经哈希变换得到的哈希数组一起展示在区块链中的区块中。
5.根据权利要求4所述的方法,其特征在于,所述的当用户选择某个区块上的一条交易数据进行解密时,根据自己的属性及私钥生成专属私钥,用所述专属私钥去解密所述某个区块上的密文,若所述用户的属性符合所述某个区块上的加密策略要求,则解密成功并获取交易数据,包括:
当用户选择某个区块上的一条交易数据进行解密时,根据用户的属性a、私钥SK以及全局参数通过基于属性的分布式加密DABE***中的Key generation算法生成与用户的属性相关的专有私钥SKa;
将所述某个区块上的密文C、所述专有私钥Ska、全局参数作为DABE***中的Decryption算法的输入,当所述用户的属性满足所述某个区块上的加密策略要求时,由DABE算法解密某个区块上的Cm得到m’,再将m’经哈希函数还原为密钥k’,进而用AES算法解密密文C得到解密后的交易数据D。
6.根据权利要求5所述的方法,其特征在于,所述的用户用所述某个区块中的签章以及哈希数组去验证所述交易数据的真实性,根据验证结果判断所述交易数据为真或假,包括:
将从所述某个区块上解密得到的第i笔交易数据Di进行哈希变换得到哈希数组hi,将hi组合到所述某个区块上的原有整合数组H’中,并再次进行哈希变换得到数组H”;
将所述交易数据Di、数据对应的序列号i、数组H”、所有交易的哈希数组(h1,h2,…,hn)、公钥SPK以及签章Sn作为ECDSA中的Verify signature算法的输入,再根据哈希数组和签章的匹配情况,输出所述签章Sn的验证结果为真或为假。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910591183.1A CN110417556A (zh) | 2019-07-02 | 2019-07-02 | 区块链中的加密及签章验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910591183.1A CN110417556A (zh) | 2019-07-02 | 2019-07-02 | 区块链中的加密及签章验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110417556A true CN110417556A (zh) | 2019-11-05 |
Family
ID=68360115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910591183.1A Pending CN110417556A (zh) | 2019-07-02 | 2019-07-02 | 区块链中的加密及签章验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110417556A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447174A (zh) * | 2020-02-19 | 2020-07-24 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链的数据加密方法 |
CN111523131A (zh) * | 2020-04-16 | 2020-08-11 | 丝链(常州)控股有限公司 | 一种安全性高的加密数据存储方法 |
CN111859444A (zh) * | 2020-06-12 | 2020-10-30 | 中国科学院信息工程研究所 | 一种基于属性加密的区块链数据监管方法及*** |
CN112039880A (zh) * | 2020-08-30 | 2020-12-04 | 河南大学 | 基于区块链分布式外包的双重策略访问控制方法 |
CN112487446A (zh) * | 2020-11-26 | 2021-03-12 | 南京纯白矩阵科技有限公司 | 一种区块链加密算法热插拔的方法 |
CN112907247A (zh) * | 2021-03-18 | 2021-06-04 | 上海能链众合科技有限公司 | 一种区块链授权计算控制方法 |
CN113268542A (zh) * | 2021-05-10 | 2021-08-17 | 西安交通大学 | 一种基于多方授权的区块链重写方法及*** |
CN116865972A (zh) * | 2023-06-15 | 2023-10-10 | 长沙学院 | 一种基于陷门哈希运算的区块链数据处理方法 |
CN117113429A (zh) * | 2023-08-14 | 2023-11-24 | 中国船舶集团有限公司第七〇九研究所 | 一种分布式的虚假态势数据辨伪方法及分布式*** |
CN118013559A (zh) * | 2024-04-09 | 2024-05-10 | 南京邮电大学 | 基于区块链数据用户角色模型的***数据加密安全*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170093817A1 (en) * | 2015-09-30 | 2017-03-30 | Raytheon Bbn Technologies Corp. | Cryptographically secure cross-domain information sharing |
CN109711184A (zh) * | 2018-12-28 | 2019-05-03 | 国网电子商务有限公司 | 一种基于属性加密的区块链数据访问控制方法及装置 |
CN109951498A (zh) * | 2019-04-18 | 2019-06-28 | 中央财经大学 | 一种基于密文策略属性加密的区块链访问控制方法及装置 |
-
2019
- 2019-07-02 CN CN201910591183.1A patent/CN110417556A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170093817A1 (en) * | 2015-09-30 | 2017-03-30 | Raytheon Bbn Technologies Corp. | Cryptographically secure cross-domain information sharing |
CN109711184A (zh) * | 2018-12-28 | 2019-05-03 | 国网电子商务有限公司 | 一种基于属性加密的区块链数据访问控制方法及装置 |
CN109951498A (zh) * | 2019-04-18 | 2019-06-28 | 中央财经大学 | 一种基于密文策略属性加密的区块链访问控制方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447174A (zh) * | 2020-02-19 | 2020-07-24 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链的数据加密方法 |
CN111523131A (zh) * | 2020-04-16 | 2020-08-11 | 丝链(常州)控股有限公司 | 一种安全性高的加密数据存储方法 |
CN111859444A (zh) * | 2020-06-12 | 2020-10-30 | 中国科学院信息工程研究所 | 一种基于属性加密的区块链数据监管方法及*** |
CN112039880A (zh) * | 2020-08-30 | 2020-12-04 | 河南大学 | 基于区块链分布式外包的双重策略访问控制方法 |
CN112487446A (zh) * | 2020-11-26 | 2021-03-12 | 南京纯白矩阵科技有限公司 | 一种区块链加密算法热插拔的方法 |
CN112907247B (zh) * | 2021-03-18 | 2024-01-26 | 上海零数众合信息科技有限公司 | 一种区块链授权计算控制方法 |
CN112907247A (zh) * | 2021-03-18 | 2021-06-04 | 上海能链众合科技有限公司 | 一种区块链授权计算控制方法 |
CN113268542A (zh) * | 2021-05-10 | 2021-08-17 | 西安交通大学 | 一种基于多方授权的区块链重写方法及*** |
CN116865972A (zh) * | 2023-06-15 | 2023-10-10 | 长沙学院 | 一种基于陷门哈希运算的区块链数据处理方法 |
CN116865972B (zh) * | 2023-06-15 | 2024-01-30 | 长沙学院 | 一种基于陷门哈希运算的区块链数据处理方法 |
CN117113429A (zh) * | 2023-08-14 | 2023-11-24 | 中国船舶集团有限公司第七〇九研究所 | 一种分布式的虚假态势数据辨伪方法及分布式*** |
CN117113429B (zh) * | 2023-08-14 | 2024-05-14 | 中国船舶集团有限公司第七〇九研究所 | 一种分布式的虚假态势数据辨伪方法及分布式*** |
CN118013559A (zh) * | 2024-04-09 | 2024-05-10 | 南京邮电大学 | 基于区块链数据用户角色模型的***数据加密安全*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417556A (zh) | 区块链中的加密及签章验证方法 | |
US11621833B2 (en) | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system | |
CN103281190B (zh) | 安全工作组管理和通信的***和方法 | |
JP4639084B2 (ja) | セキュア認証の暗号方法および暗号装置 | |
CN109145612B (zh) | 基于区块链实现防数据篡改、用户共谋的云数据共享方法 | |
EP2228942B1 (en) | Securing communications sent by a first user to a second user | |
CN101032117B (zh) | 基于多项式的认证方法、***和用于示证者设备的方法 | |
EP4046325B1 (en) | Digital signature generation using a cold wallet | |
CN101958796B (zh) | 一种支持匿名认证的密钥装置及其生成方法和解锁方法 | |
US20050152542A1 (en) | Public key encryption for groups | |
CN109409884A (zh) | 一种基于sm9算法的区块链隐私保护方案和*** | |
CN110011781A (zh) | 一种用于交易金额加密且支持零知识证明的同态加密方法 | |
CN111431897B (zh) | 用于云协助物联网的带追踪的多属性机构属性基加密方法 | |
CN114219483B (zh) | 基于lwe-cpabe的区块链数据共享方法、设备和存储介质 | |
Abdalla et al. | A scalable password-based group key exchange protocol in the standard model | |
CN110414981A (zh) | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 | |
Damgård et al. | Stronger security and constructions of multi-designated verifier signatures | |
Ryabko et al. | Basics of contemporary cryptography for IT practitioners | |
CN112382376A (zh) | 基于区块链的医疗器械管理追溯*** | |
Shen et al. | Group public key encryption supporting equality test without bilinear pairings | |
Gao et al. | Quantum election protocol based on quantum public key cryptosystem | |
Bossuat et al. | Unlinkable and invisible γ-sanitizable signatures | |
CN117081803B (zh) | 基于区块链的物联网密文访问控制方法 | |
Ahubele et al. | Secured electronic voting system using RSA Key encapsulation mechanism | |
Deng et al. | Designated‐Verifier Anonymous Credential for Identity Management in Decentralized Systems |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20210702 |
|
AD01 | Patent right deemed abandoned |