用于基于区块链系统的加密密钥管理的方法和设备与流程

文档序号:21411714发布日期:2020-07-07 14:47阅读:333来源:国知局
用于基于区块链系统的加密密钥管理的方法和设备与流程

本文总体上涉及计算机技术,更具体地,涉及用于基于区块链系统的加密密钥管理的方法和设备。



背景技术:

区块链系统,也称为分布式账本系统(dls)或共识系统,可以使参与实体安全且不可篡改地存储数据。在不参考任何特定用例的情况下,区块链系统可以包括任何dls并且可以用于公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用系统,并开放参与共识处理。私有区块链网络为特定实体提供,该特定实体集中控制读写权限。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。

区块链系统维护一个或多个区块链。区块链是用于存储诸如交易的数据的数据结构,其可以防止恶意方篡改和操纵数据。

基于区块链的交易通常需要来自与交易相关的签名机构的一个或多个数字签名。可以使用加密密钥来提供数字签名。在常规的加密密钥管理系统中,用户可以使用用户选择的密码在中央中介(例如,中心化密钥管理服务)中创建账户,并且中央中介可以为用户管理加密密钥。



技术实现要素:

在一个实施例中,提供了一种计算机实现的用于管理加密密钥的方法,该方法包括:接收针对交易数据的签名的请求;分配与该请求相对应的密钥管理器;所述密钥管理器获得对所述交易数据的签名和加密密钥,其中,所述加密密钥为公钥,并且对所述交易数据的签名是基于与所述公钥相对应的私钥获得的。

在另一实施例中,提供一种用于管理加密密钥的设备,所述设备包括:一个或多个处理器;耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,当所述指令由所述一个或多个处理器执行时,以接收针对交易数据的签名的请求;分配与该请求相对应的密钥管理器;获得对所述交易数据的签名和加密密钥,其中,所述加密密钥为公钥,并且对所述交易数据的签名是基于与所述公钥对应的私钥获得的。

在另一实施例中,提供了一种其中存储有指令的非暂态计算机可读介质,当所述指令由设备的处理器执行时,使得所述设备执行用于管理加密密钥的方法,所述方法包括:接收针对交易数据的签名请求;分配与该请求相对应的密钥管理器;所述密钥管理器获得对所述交易数据的签名和加密密钥,其中,所述加密密钥为公钥,并且对所述交易数据的签名是基于与所述公钥相对应的私钥获得的。

附图说明

包含在本文中并构成本文一部分的附图示出了实施例。在下列参考了附图的说明中,除非另有所示,不同附图中的相同标号表示相同或类似的元素。

图1是根据实施例的区块链系统的示意图。

图2是根据实施例的用于管理加密密钥并获得对交易数据的签名的系统的示意图。

图3是根据实施例的用于管理加密密钥并获得对交易数据的签名的设备的示意图。

图4是根据实施例的用于管理加密密钥并获得对交易数据的签名的方法的示意图。

图5是根据实施例的用于管理加密密钥并获得对交易数据的签名的方法的流程图。

图6是根据实施例的用于响应于签名请求分配密钥管理器的方法的流程图。

图7是根据实施例的用于管理加密密钥并获得对交易数据的签名的方法的流程图。

图8是根据实施例的用于管理加密密钥并获得对交易数据的签名的设备的示意图。

具体实施方式

本文的实施例提供了用于管理加密密钥并获得对交易数据的签名的方法和设备。在这些方法中,计算机系统可以接收针对交易数据的签名的请求,分析包括在请求中的参数,并基于该分析分配唯一的密钥管理器。所分配的密钥管理器可以从签名机构获得对交易数据的签名和加密密钥。该计算机系统可以进一步重新格式化所获得的签名,使得该签名可以与任何类型的区块链系统以及该区块链系统中的任何格式的智能合约兼容。计算机系统可以将重新格式化的签名上传到区块链系统,以便可以在区块链系统中验证该签名。所述计算机系统可以进一步基于所述签名和加密密钥来更新用户账户数据库。

本文中公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和设备可以为用户管理加密密钥并获得对交易数据的签名。这允许用户执行交易并使用用户选择的密码访问该用户的账户,而无需维护加密密钥,从而为用户提供便利并促进交易。在一些实施例中,可以在区块链系统中而不是通过中央实体来验证所获得的对交易数据的签名。这允许交易的去中心化,从而增强了交易的安全性。在一些实施例中,所述方法和设备根据区块链系统的类型和区块链系统中的智能合约的格式来重新格式化所获得的对交易数据的签名。这允许在任何类型的区块链系统中或在该区块链系统中的任何格式的智能合约中执行签名验证,从而增强了交易的灵活性。在一些实施例中,所述方法和设备可以通过采用幂等控制协议(idempotentcontrolprotocol)来向交易分配唯一的密钥管理器。这防止了多个密钥管理器对签名请求进行不必要的处理,从而进一步提高了交易的安全性和效率。

区块链是以交易不可篡改并随后可被验证的方式存储数据(例如,交易)的数据结构。区块链包括一个或多个区块。每个区块通过包括紧邻其之前的前一区块的加密哈希值(cryptographichash)链接到该前一区块。每个区块还可以包括时间戳、自身的加密哈希值以及一个或多个交易。通常已经被区块链系统中的节点验证的交易可以被哈希并编入诸如默克尔(merkle)树的数据结构中。在merkle树中,叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值可以在该分支的根处级联(concatenate)。此处理沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。可通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。

区块链系统包括管理、更新和维护一个或多个区块链的计算节点的网络。所述网络可以是公有区块链网络、私有区块链网络或联盟区块链网络。在公有区块链网络中,共识处理由共识网络的节点控制。例如,许多实体,诸如数百、数千或甚至数百万个实体可以在公有区块链网络中操作,并且每个实体操作公有区块链网络中的至少一个节点。因此,公有区块链网络可被认为是关于参与的实体的公有网络。有时,大多数实体(节点)必须对每个区块签名才能使该区块被验证并被添加到区块链网络的区块链中。公有区块链网络的示例包括利用被称为区块链的分布式账本的特定点对点(peer-to-peer)支付网络。

通常,公有区块链网络可以支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链,并且所有节点都与全局区块链达成共识。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络中实施共识协议。共识协议的示例包括工作量证明(pow)(例如,在一些加密货币网络中实现)、权益证明(pos)和权威证明(poa)。

通常,可以为特定实体提供私有区块链网络,该特定实体集中控制读写权限。该实体控制哪些节点能参与到该区块链网络中。因此,私有区块链网络通常被称为权限网络,其限制允许谁参与网络,以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制准入)。

通常,联盟区块链网络在参与的实体之间是私有的。在联盟区块链网络中,共识处理由一组被授权的节点控制,一个或多个节点由相应实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。因此,关于参与的实体,联盟区块链网络可以被认为是私有网络。在一些示例中,每个区块必须经每个实体(节点)签名才能有效并被添加到区块链中。在一些示例中,每个区块必须经至少实体(节点)的子集(例如,至少7个实体)签名才能有效并被添加到区块链中。

图1示出了根据实施例的区块链系统100的示意图。参考图1,区块链系统100可以包括被配置为在区块链120上操作的多个节点(例如节点102-110)。节点102-110可以形成网络112,例如点对点(p2p)网络。节点102-110中的每个可以是被配置为存储区块链120的副本的计算设备(例如,计算机或计算机系统),或者可以是在计算设备上运行的软件(诸如进程或应用)。节点102-110中的每一个可以具有唯一标识。节点102-110可以通过有线或无线通信彼此通信。这种通信可以采用可靠的协议,例如传输控制协议/网际协议(tcp/ip)。

区块链120可以包括为例如图1中的区块b1-b5的数据区块形式的记录的增长列表。区块b1-b5中的每个可以包括时间戳、前一区块的加密哈希值,以及当前区块的数据,该数据可以是诸如货币交易的交易。例如,如图1所示,区块b5可以包括时间戳、区块b4的加密哈希值和区块b5的交易数据。此外,例如,可以对前一区块执行哈希操作以生成前一区块的加密哈希值。哈希操作可以通过诸如sha-256的哈希算法将各种长度的输入转换为固定长度的加密输出。

节点102-110可以被配置为对区块链120执行操作。例如,当节点(例如,节点102)想要将新数据存储到区块链120上时,该节点可以生成要被添加到区块链120的新区块,并将该新区块广播到网络112中的例如节点104-110的其他节点。基于新区块的合法性,例如,其签名和交易的有效性,其他节点可以确定接受该新区块,使得节点102和其他节点可以将该新区块添加到它们各自的区块链120的副本中。重复该处理,可以将越来越多的数据区块添加到区块链120。

在一实施例中,区块链系统100可以根据一个或多个智能合约操作。每个智能合约可以是以计算机代码形式的计算机协议,其被纳入到区块链120中,以促进、验证或强制合约的协商或执行。例如,区块链系统100的用户可以使用诸如c++、java、solidity、python等编程语言将商定的条款编程为智能合约,并且当满足条款时,可以由区块链系统100自动执行智能合约,例如执行交易。又例如,智能合约可以包括多个子例程或函数,每个子例程或函数可以是执行指定任务的一系列程序指令。智能合约可以是在完全或部分没有人工交互的情况下执行的操作代码。

图2是示出根据实施例的用于管理加密密钥并获得对交易数据的签名的密钥管理系统200的示意图。参考图2,密钥管理系统200可以包括密钥管理设备210、会员账户数据库220、用户接口系统230和签名机构250。密钥管理系统200可以与区块链系统100通信(图1)。在一些实施例中,密钥管理系统200可以作为区块链系统100的节点操作。在其他实施例中,密钥管理系统200可以不作为区块链系统100的节点操作。

在一些实施例中,用户接口系统230可以被实现为用户240的交易系统,并且密钥管理设备210可以是管理包括用户240的多个用户的加密密钥的第三方代理。在这些实施例中,用户接口系统230还可包括获得并记录用户240的交易数据的记账系统。会员账户数据库220可以在密钥管理设备210中实现。

在其他实施例中,用户接口系统230可以是管理包括用户240的多个用户的交易数据的第三方交易数据系统。用户240可以使用用户选择的密码在用户接口系统230中创建账户。密钥管理设备210可以在用户接口系统230中实现,或者可以独立于用户接口系统230。会员账户数据库220可以在密钥管理设备210或用户接口系统230中实现。

用户240可以是任何实体,例如但不限于涉及交易的个人、公司、公司代表、金融机构、研究机构或政府实体。用户接口系统230可以获得、聚合和维护用户240的交易数据。

签名机构250可以是被授权在交易数据上提供完整签名或部分签名的一方。签名机构250可以是任何实体,例如但不限于涉及交易的个人、公司、公司代表、金融机构、研究机构或政府实体。签名机构250可以与用户240有关或无关。签名机构250可以包括彼此独立的多个签名机构。

在一个实施例中,用户240可以执行交易,并且交易数据需要由签名机构250签名。用户接口系统230可以聚合交易数据,并将交易数据和对签名的请求发送给密钥管理设备210。在一些实施例中,签名请求可以包括与用户240有关的参数。所述参数可以包括但不限于密钥管理设备210中的用户240的账户信息、用户240的银行账户的信息、用户240的加密密钥管理系统的信息以及用户240与密钥管理服务的关联等。在一个实施例中,密钥管理服务可以是为例如用户240的多个用户管理加密密钥的第三方代理。

在一个实施例中,在从用户接口系统230接收到签名请求时,密钥管理设备210可以分析包括在签名请求中的参数。密钥管理设备210可以进一步确定用户240是密钥管理设备210的现有用户还是新用户。如果用户240是新用户,则密钥管理设备210可以通过为用户240开设会员账户来更新会员账户数据库220。在一个实施例中,密钥管理设备210可以使用用户240提供的身份证明(identification)和密码来为用户240开设会员账户。另一方面,如果用户240是密钥管理设备210的现有用户,则密钥管理设备210可以从会员账户数据库220中提取关于用户240的信息。

在一个实施例中,密钥管理设备210可以包括能够处理签名请求的多个密钥管理器(未示出)。例如,每个密钥管理器可以包括子例程或函数,子例程或函数可以是执行特定任务的一系列程序指令。基于对包括在签名请求中的参数的分析,密钥管理设备210可以分配用于处理签名请求的适当的密钥管理器。在一些实施例中,分配的密钥管理器可以是能够从签名机构250获得签名和加密密钥的密钥管理器。在其他实施例中,分配的密钥管理器可以是能够生成模拟加密密钥(mockcryptographickey)并使用所生成的模拟加密密钥对交易数据进行签名的密钥管理器。在一个实施例中,密钥管理设备210不是签名机构,并且生成模拟加密密钥及提供模拟签名是出于测试密钥管理设备210的目的。加密密钥可以包括单个密钥(例如,公钥)或多个密钥(例如,私钥和公钥)。

在一个实施例中,密钥管理设备210可以通过采用幂等控制协议将向用户的交易数据分配唯一的密钥管理器。在该实施例中,当密钥管理设备210对伴随交易数据的签名请求进行分析时,密钥管理设备210可以总是向该交易数据或针对该用户分配相同的密钥管理器。这防止了多个密钥管理器对交易数据的处理以及受到欺骗而获得无效签名,从而提高了交易的安全性和效率。

在一个实施例中,分配的密钥管理器可以发起与签名机构250的联系以获得签名和加密密钥。在获得签名之后,密钥管理设备210可以重新格式化签名,使得签名可以适应于用户偏好的区块链系统类型或区块链系统中特定格式的智能合约。在一些实施例中,密钥管理设备210基于会员账户数据库220中的用户240的记录来确定区块链系统的类型或智能合约的格式。在其他实施例中,区块链系统的类型或智能合约的格式被包括在从用户接口系统230发送的签名请求中。重新格式化签名允许用户240在验证区块链系统上的签名时方便地选择区块链系统的类型或智能合约的格式,从而为用户提供便利并增强交易的灵活性。

在一个实施例中,密钥管理设备210可以将重新格式化的签名和加密密钥发送到用户接口系统230。在一些实施例中,密钥管理设备210可以生成具有重新格式化的签名、原始签名和加密密钥的有效载荷数据,并将该有效载荷数据发送给用户接口系统230。

在一个实施例中,在接收到签名和加密密钥(或有效载荷数据)后,用户接口系统230可以在区块链系统100中创建账户并将签名(或有效载荷数据)上传到区块链系统100,使得签名可以在区块链系统中被验证。在一个实施例中,除了签名之外,交易数据的准确性也可以在区块链系统100中被验证。在一个实施例中,可以基于区块链系统100中的智能合约执行对签名的验证。

在一个实施例中,基于提供包括私钥和公钥的密钥对的加密算法可以执行对签名的验证。私钥可以与特定方相关联并且可以对数据进加密以形成签名。公钥可以被提供给区块链系统中的另一方以对该加密的数据进行解密,以验证交易是否确实被该特定方授权。解密也可以被称为签名验证。在一个实施例中,区块链系统100可以支持多种加密算法,例如rsa(rivest-shamir-adleman)算法、椭圆曲线数字签名算法(ellipticcurvedigitalsignaturealgorithm,ecdsa)、sm2算法等。

在一个实施例中,上传到区块链系统100的签名可以由区块链系统100中的其他方验证,并且可以将由用户接口系统230获得的加密密钥(例如,公钥)提供给其他方以用于验证。通过在区块链系统中而不是由中央实体验证获得的签名,实现了交易数据处理的去中心化,从而提高了交易的安全性和效率。

在一个实施例中,密钥管理设备210可以通过将所获得的签名和加密密钥记录在会员账户数据库220中来更新会员账户数据库220中用户240的账户。密钥管理设备210还可以记录发送到用户接口系统230的重新格式化签名的格式。以这种方式,密钥管理设备210可以为用户240创建和维护知识库。

在一个实施例中,区块链系统100可以通过广播或通过向用户接口系统230发送消息来通知验证结果。用户接口系统230可以进一步向用户240通知签名请求的处理结果。在一个实施例中,用户接口系统230还可以向用户240通知用户接口系统230中的用户账户的信息,例如,在处理交易数据之后,用户240的账户中的任意剩余余额。这允许用户240仅使用密码来方便地管理账户,而无需维护针对交易数据的加密密钥。

在一个实施例中,密钥管理设备210可以包括存储在计算机系统中的指令。该计算机系统可以执行指令以执行密钥管理设备210的功能。用户接口系统230可以或可以不在该计算机系统中实现。在一个实施例中,分配密钥管理设备210的密钥管理器可以包括指定与该密钥管理器相对应的指令的地址。

在一个实施例中,密钥管理设备210可以是独立的硬件,其包括可以与任何用户接口系统兼容的集成电路和存储设备。例如,密钥管理设备210可以与任何其他用户接口系统对接。

图3是根据实施例的用于管理加密密钥并获得对交易数据的签名的设备300的示意图。设备300可以采用任何形式,包括但不限于台式计算机、膝上型计算机、服务器计算机、平板电脑、智能手机或智能手表,或任何其他形式。设备300可以包括处理器310、存储器320、用户接口330以及通过总线350彼此通信的通信接口340。

处理器310可以包括一个或多个专用处理单元、专用集成电路(asic)、现场可编程门阵列(fpga)或各种其他类型的处理器或处理单元。处理器310与存储器320耦接,并且可以执行存储在存储器320中的指令。

通信接口340可以促进设备300与用户接口系统和签名机构(例如图2所示用户接口系统210和签名机构250)之间的通信。在一个实施例中,通信接口340可以从用户接口系统接收签名请求和交易数据。通信接口340还可以向签名机构发送对签名的请求,从签名机构接收加密密钥和签名,并且将所获得的签名和加密密钥发送给用户接口系统。

在一个实施例中,通信接口340可以支持一个或多个通信标准,诸如包括tcp/ip和tls/ssl协议、综合业务数字网(isdn)标准等的互联网标准或协议。在一个实施例中,通信接口340可以包括以下中的一个或多个:局域网(lan)卡、电缆调制解调器、卫星调制解调器、数据总线、电缆、无线通信通道、无线电通信通道、蜂窝通信通道、基于互联网协议(ip)的通信设备或用于有线和/或无线通信的其他通讯设备。在一实施例中,通信接口340可以基于公有云基础设施、私有云基础设施和混合公有/私有云基础设施。

存储器320可以包括存储会员账户数据322的存储器。存储器320还可以存储处理器可执行的指令和数据。计算机可执行的指令和数据可以包括密钥管理器分配器324和多个密钥管理器326。当密钥管理器分配器324由处理器310执行时,允许设备300提取和分析包括在从用户接口系统接收的签名请求中的参数,并基于该分析分配适当的密钥管理器。在一个实施例中,分配适当的密钥管理器可以包括指定该密钥管理器的地址。当所分配的密钥管理器由处理器310执行时,允许设备300发起与签名机构的联系以获得加密密钥和交易数据的签名。

存储器320可以是任何类型的易失性或非易失性存储器设备或其组合,例如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪存、磁盘或光盘。

用户接口330可以包括显示器和向处理器310发送用户命令的输入设备等。显示器可以显示交易数据、上传进度和区块链系统的状态等。显示器可以包括但不限于用于向用户显示信息的阴极射线管(crt)、液晶显示器(lcd)、发光二极管(led)、气体等离子体、触摸屏或其他图像投影设备。输入设备可以是用于从用户向处理器310提供数据和控制信号的任何类型的计算机硬件设备。输入设备可以包括但不限于键盘、鼠标、扫描仪、数码相机、操纵杆、轨迹球、光标方向键、触摸屏监控器或音频/视频命令器等。

在一个实施例中,设备300可以包括用户接口系统,诸如图2的用户接口系统230,使得处理器310和用户接口330是用户接口系统的一部分。

图4是示出了根据实施例的用于管理加密密钥并获得对交易数据的签名的方法400的示意图。参照图2至图4,用户240可以在用户接口系统230中创建账户(步骤412)。例如,用户240可以通过提供用户选择的密码来创建账户。在另一实施例中,用户接口系统230可以是用户240的交易数据系统,并且不需要用户240在用户接口系统230中创建账户。用户接口系统230可以获得用户240的交易数据、为用户240聚合交易数据以及维护交易数据。用户接口系统230可以进一步向密钥管理设备210发送针对加密密钥和对交易数据的签名的请求(步骤414)。在一个实施例中,该请求可以包括与用户240有关的交易数据和参数。参数可以包括但不限于密钥管理设备210中的用户240的账户信息、用户240的银行账户的信息、用户240的加密密钥管理系统的信息以及用户240与密钥管理服务的关联等。在接收该到请求之后,密钥管理设备210可以发送接受该请求的确认(步骤416)。

密钥管理设备210可以进一步提取并分析包括在请求中的参数,并分配适当的密钥管理器(步骤418)。在一个实施例中,密钥管理设备210可以通过采用幂等控制协议来为交易数据分配唯一的密钥管理器,使得当密钥管理设备210分析参数时,密钥管理设备210可以总是将相同的密钥管理器分配给该交易数据。所分配的密钥管理器可以将针对加密密钥和签名的请求转发到签名机构250(步骤420)。签名机构250可以生成针对交易数据的签名,并将所请求的加密密钥和签名返回给密钥管理设备210(步骤422)。

在接收到加密密钥和签名之后,密钥管理设备210可以广播该加密密钥和该签名(步骤422)。在一个实施例中,在广播加密密钥和签名之前,密钥管理设备210可以重新格式化签名以适应于特定类型的区块链系统或区块链系统中的特定格式的智能合约。

在一个实施例中,用户接口系统230可以接收广播的加密密钥和签名(步骤424)。用户接口系统230可以在区块链系统100中创建账户并且将签名上传到区块链系统100以进行验证(步骤426)。在一个实施例中,用户接口系统230还可以将具有签名的交易数据(经签名的交易数据)上传到区块链系统,以验证准确性。在一个实施例中,用户接口系统230可以接收由原始签名和重新格式化的签名形成的有效载荷数据,并将该有效载荷数据上传到区块链系统以进行验证。区块链系统100可以将对创建账户和所述上传的确认发送到用户接口系统230(步骤428)。用户接口系统230可以将对创建账户和所述上传的确认发送给用户240(步骤430)。

在上述方法400中,密钥管理设备210管理加密密钥并获得用户240的交易数据的签名。此外,用户接口系统230处理获得的签名和加密密钥,并通知用户240。这允许用户240仅使用密码来执行交易和访问用户的账户,而无需维护加密密钥,从而实现方便且有效的交易。密钥管理设备210可以向给定的交易数据分配唯一的密钥管理器。这防止了多个密钥管理器对交易数据的处理以及欺骗性地获得签名,从而提高了交易的安全性和效率。密钥管理设备210可以重新格式化所获得的签名,以使得可以在任何类型的区块链系统中验证签名,而不管其原始格式如何,从而增强了交易的灵活性。此外,交易的去中心化是通过在区块链系统中而不是通过任何中央中介来验证所获得的签名来实现的,从而进一步提高了交易的安全性和效率。

图5是根据一个实施例的用于管理加密密钥并获得对交易数据的签名的方法500的流程图。方法500可以由诸如密钥管理设备210(图2)的密钥管理设备执行。密钥管理设备可以包括可以处理签名请求的多个密钥管理器。密钥管理设备还可以包括记录密钥管理设备的用户的信息的会员账户数据库。

参照图5,密钥管理设备可以接收用户的交易数据的输入和针对该交易数据的签名的请求(步骤502)。在一个实施例中,密钥管理设备可以使用幂等控制协议来处理签名请求,以确保将交易数据分配给唯一的密钥管理器并由其进行处理(步骤504)。在一个实施例中,密钥管理设备可以包括将一组参数映射到特定密钥管理器的幂等控制表。利用该表,密钥管理设备可以分析包括在签名请求中的参数和会员账户数据库中的用户信息(步骤506)。基于该分析,密钥管理设备可以针对交易数据分配所述唯一密钥管理器(例如,signoperator)(步骤508)。

在一个实施例中,所分配的唯一密钥管理器可以为相应的签名机构聚合签名请求参数(例如,signoperator.buildrequest())(步骤510),以从该签名机构获得签名。可以将该参数聚合为该签名机构要求的格式。然后执行签名请求(例如,signoperator.sign())并将其发送到相应的签名机构(步骤512)。

在一个实施例中,密钥管理设备可以确定签名请求是否被成功处理(步骤514)。如果密钥管理设备确定签名请求被成功处理(步骤516),则密钥管理设备可以进一步更新会员账户数据库、登记超时任务、以及处理签名之后的操作(例如signoperator.aftersign())(步骤518)。在一个实施例中,当签名机构在预定时间段内未返回所请求的签名时,发生超时任务。在这种情况下,可能需要手动干预。在一个实施例中,签名之后的操作可以包括:对获得的签名进行重新格式化,以及利用原始签名和重新格式化的签名来生成有效载荷数据。

在一个实施例中,通过输出所获得的签名和加密密钥,将处理结果返回给用户(步骤520)。例如,加密密钥可以是公钥,并且可以通过应用与该公钥相对应的私有来获得签名。另一方面,如果密钥管理设备确定签名请求没有被成功处理(步骤522),则密钥管理设备可以更新会员账户数据库(步骤524),并且将签名请求处理失败的消息发送给用户(步骤520)。

通过采用幂等控制协议,当交易数据由密钥管理设备处理时,交易数据可以总是分配给相同的密钥管理器。这防止了多个密钥管理器不必要地处理签名请求,从而进一步防止了获得无效签名,从而提高了交易的安全性和效率。

图6是根据实施例的用于响应于签名请求分配密钥管理器的方法600的流程图。方法600可以由诸如密钥管理设备210(图2)的密钥管理设备执行。参照图6,密钥管理设备可以接收包括针对交易数据的签名请求的输入数据(步骤602)。在一个实施例中,该签名请求可以从用户接口设备(例如,与用户相对应的用户接口设备230(图2))发送。在接收到签名请求时,密钥管理设备可以分析包括在签名请求中的参数并且确定该参数是否与内部测试账户匹配(步骤604)。在一个实施例中,内部测试账户被设置用于测试密钥管理设备的功能性。如果密钥管理设备确定参数与内部测试账户匹配,则密钥管理设备确定该请求需要本地处理(步骤606),并分配类型1密钥管理器(步骤608)。在一个实施例中,类型1密钥管理器是模拟密钥管理器,其可以在本地生成加密密钥并在交易上提供模拟签名。

另一方面,在步骤604,如果密钥管理设备确定所述参数与内部测试账户不匹配,则密钥管理设备可以进一步确定所述参数是否包括用户的银行账户信息(步骤610)。在一些实施例中,用户的银行账户信息可以被包括在输入数据中。在其他实施例中,如果用户在密钥管理设备中具有会员账户,则密钥管理设备可以从其数据库中提取银行账户信息。如果密钥管理设备识别出用户的银行账户信息,则密钥管理设备确定需要使用用户的usb密钥(“ukey”将签名请求发送到外部签名机构(步骤612)并分配类型2密钥管理器(步骤614)。在一个实施例中,密钥管理设备可以基于用户的角色类型和用户的银行id信息来分配类型2密钥管理器。在一个实施例中,与类型2密钥管理器相对应的签名机构可以是通过网络与诸如企业的用户连接的网络银行。ukey可以通过usb(通用串行总线)直接连接到计算机,并且ukey可以发挥密码验证功能。类型2密钥管理器可以使用用户的ukey通过网络从网络银行获得签名和加密密钥(例如,公钥)。在一个实施例中,利用网络银行服务的企业可以是中型或大型企业。

另一方面,在步骤610,如果密钥管理设备识别用户的银行账户信息失败,则密钥管理设备可以进一步确定用户是否是具有自己的加密密钥管理系统的独立企业(步骤616)。在一个实施例中,独立企业可以是在其系统中维护其加密密钥的大型核心企业或金融机构。如果密钥管理设备确定用户是独立企业,则密钥管理设备可以理解需要通过应用编程接口(api)连接器向外部发送签名请求(步骤618),并分配类型3密钥管理器。(步骤620)。在一个实施例中,类型3密钥管理器可以通过api连接器发起与独立企业的连接,并获得签名和加密密钥(例如,公钥)。

另一方面,在步骤616,如果密钥管理设备确定用户不是独立企业,则密钥管理设备可以理解用户可以利用密钥管理服务(步骤622)并分配类型4密钥管理器(步骤624)。在一个实施例中,类型4密钥管理器可以代表用户从密钥管理服务请求加密密钥。例如,类型4密钥管理器可以请求一对私钥/公钥,并生成针对交易数据的签名。

在一个实施例中,密钥管理设备可以格式化从不同签名机构获得的签名,以使签名可以具有相同的格式,而不论它们来自不同源的原始格式。这样,密钥管理设备可以获得并提供签名,该签名具有与任何类型的区块链系统或区块链系统中的任何格式的智能合约兼容的格式,从而提高了交易的灵活性和效率。

图7是根据实施例的用于管理加密密钥并获得对交易数据的签名的方法700的流程图。例如,方法700可以由诸如图2所示的密钥管理设备210之类的密钥管理设备执行。参照图7,密钥管理设备可以接收针对交易数据的签名的请求(步骤702)。在一些实施例中,所述签名请求可以包括交易数据和与交易用户有关的参数。

密钥管理设备可以提取并分析包括在签名请求中的参数(步骤704)。基于该分析,密钥管理设备可以针对交易数据识别并分配唯一的密钥管理器(步骤706)。在一个实施例中,密钥管理设备可以基于方法600(图6)来分配密钥管理器。所分配的密钥管理器可以发起与相应签名机构的联系,并从该签名机构获得签名和加密密钥(步骤708)。在接收到签名和加密密钥之后,密钥管理设备可以广播所获得的签名和加密密钥(步骤710),使得发送签名请求的用户接口系统可以接收广播的签名和加密密钥。密钥管理设备可以进一步基于所获得的签名和加密密钥来更新会员账户数据库中的用户信息(步骤712)。

在一个实施例中,所分配的密钥管理器对于交易或所分析的参数可以是唯一的,使得当密钥管理设备对参数进行分析时,密钥管理设备可以始终针对该交易数据分配相同的密钥管理器。在一个实施例中,可以通过方法500(图5)来确保该唯一的分配。通过唯一地分配密钥管理器,可以防止多个密钥管理器对签名请求进行不必要的处理。

图8是根据实施例的用于管理加密密钥并获得交易数据的签名的装置800的示意图。例如,装置800可以是软件处理的实现,并且可以对应于方法700(图7)。参照图8,装置800可以包括接收模块810、分配模块820、请求模块830、广播模块840和更新模块850。

接收模块810接收针对交易数据的签名请求。分配模块820分析签名请求中的参数,并基于该分析针对交易数据分配密钥管理器。在分配的密钥管理器中实现的请求模块830从相应的签名机构请求签名和加密密钥。广播模块840在接收到签名和加密密钥之后,广播所获得的签名和加密密钥。更新模块850基于所获得的签名和加密密钥来更新数据库中的用户信息。

上述模块中的每一个可以实现为软件或硬件、或软件和硬件的组合。例如,可以使用执行存储在存储器中的指令的处理器来实施上述模块中的每一个。而且,例如,每个上述模块可以使用一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件来实施以执行所描述的方法。进一步地,例如,上述模块中的每一个可以通过使用计算机芯片或实体来实施,或者通过使用具有特定功能的产品来实施。在一个实施例中,装置800可以是计算机,并且计算机可以是个人计算机、膝上型计算机、蜂窝电话、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件接收和发送设备、游戏台、平板电脑、可穿戴设备或这些设备的任何组合。

对于装置800中每个模块的功能和角色的实施过程,可以参考上述方法中的相应步骤。为简单起见,这里省略了细节。

在实施例中,还提供了一种计算机程序产品。该计算机程序产品可以包括非暂态计算机可读存储介质,其上具有计算机可读程序指令,用于使处理器执行上述方法。

计算机可读存储介质可以是有形设备,其可以存储供指令执行设备使用的指令。计算机可读存储介质可以是但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述任何适当的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、记忆棒、软盘、例如在其上记录有指令的凹槽中的穿孔卡或凸起结构的机械编码设备,以及前述的任何合适的组合。

用于执行上述方法的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言和传统的过程编程语言。计算机可读程序指令可以完全在计算设备上作为独立软件包执行,或者部分在第一计算设备上执行、部分在远离第一计算设备的第二计算设备上执行。在后一种情况下,第二远程计算设备可以通过包括局域网(lan)或广域网(wan)的任何类型的网络连接到第一计算设备。

所述计算机可读程序指令可以被提供给通用或专用计算机的处理器或其他可编程数据处理装置以产生机器,使得这些指令经由计算机的处理器或其他可编程数据处理装置执行时,创建用于实现上述方法的装置。

附图中的流程图和框图示出了根据本文的各种实施例的设备、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的框可以表示软件程序、代码的段或部分,其包括用于实现特定功能的一个或多个可执行指令。还应注意,在一些可选实施例中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图的每个框以及框图和流程图中的框的组合可以由执行特定功能或动作的专用基于硬件的系统或者专用硬件和计算机指令的组合来实现。

应当理解,为了清楚起见,在单个实施例的上下文中描述的说明书的某些特征也可以在单个实施例中组合提供。相反,为了简洁起见,在单个实施例的上下文中描述的本文的各种特征也可以单独提供或者以任何合适的子组合提供,或者在本文的任何其他描述的实施例中合适地提供。除非另有说明,否则在各种实施例的上下文中描述的某些特征不是那些实施例的必要特征。

尽管已经结合本文的具体实施例描述了本文,但显然许多替代、修改和变化对于本领域技术人员来说是显现的。因此,以下权利要求包含落入权利要求的范围内的所有这些替代、修改和变体。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1