基于区块链存储与交换加密密钥的输入方法和装置
技术领域
[0001] 本
发明涉及计算机领域技术,特别涉及一种基于区块链存储与交换加密密钥的输入方法和装置。
背景技术
[0002] 隐私是互联网时代人人都关注的焦点,其中
聊天信息成为了人们最不愿意被他人窥探的秘密。由于我们的聊天信息中经常会包含大量的个人隐私或者是重要的个人信息,例如电话、密码、家人信息等等。一旦聊天信息被他人随意看到,我们的个人隐私很有可能就被泄露,给我们带来巨大的损失。
[0003] 然而,
现有技术中,人们的聊天信息是直接展示出来的,没有任何保护措施,聊天信息内容极易被他人看到,人们的隐私没有得到很好的保护。
[0004] 现行的设计方案中,输入法的加密使用的技术方案有两大类,一类是使用对内容进行编码混淆的伪加密方法,这种方法非常容易破解。另一类是使用密钥的对称加密
算法(DES)或非对称加密算法(RSA),对称加密算法加密方与解密方使用同一个密钥,非对称加密中加密方使用私钥进行加密,解密方使用私钥对应的公钥对进行解密。
[0005] 使用密钥就涉及到了对密钥的管理,目前对密钥的管理有两种方式,一种保存在用户的客户端(手机)。第二种保存在输入法
软件开发运营方的
服务器中。
[0006] 由于现有技术方案不是将密钥保存在用户的客户端(手机)或保存于三方服务器系统中,
[0007] 密钥保存于客户端(手机)方案中客户端(手机)损坏或者丢失密钥将同样丢失。密钥保存于三方服务器系统中同样存在着三方管理不慎丢失与
泄漏风险。
发明内容
[0008] 本发明的目的是提供一种基于区块链存储与交换加密密钥的输入方法和装置,利用区块链技术保存用户密钥,结合区块链的分布式无中心化、数据不可篡改、用户对自己数据拥有绝对控制权等特性,使用户的加密密钥非常安全,解决了密钥管理不够安全问题。
[0009] 为了实现以上目的,本发明是通过以下技术方案实现的:
[0010] 一种基于区块链存储与交换加密密钥的输入方法,其特点是,包括如下步骤:
[0011] S1,将输入法与区块链钱包绑定;
[0012] S2,创建一用于输入加密的密钥对;
[0013] S3,将所述的密钥对写入到区块链的
分布式账本;
[0014] S4,获取用户在输入法的输入框中输入的待加密内容;
[0015] S5,基于所述用户在所述输入法对应的输入面板上的加密操作,并通过区块链的分布式账本的密钥对对所述待加密内容进行加密处理得到密文信息;
[0016] S6,通过区块链的分布式账本的密钥对对所述的密文信息进行解密处理,并将解密后的消息内容呈现给用户。
[0017] 可选地,所述的将输入法与区块链钱包绑定后,通过计算得到区块链钱包的钱包私钥和钱包地址。
[0018] 可选地,所述的密钥对包括加密私钥和加密公钥,则所述步骤S5中通过区块链的分布式账本的加密私钥对所述待加密内容进行加密处理。
[0019] 可选地,所述步骤S6中通过区块链的分布式账本的加密公钥对所述的密文信息进行解密处理。
[0020] 可选地,所述的步骤S5后还包括:
[0021] 创建一消息,消息发送方将该消息发送给消息接收方,所述消息的消息体为加密后的密文信息,所述消息的消息头为消息发送方的钱包地址。
[0022] 可选地,所述的步骤S6包括:
[0023] 步骤S6.1,接消息收方收到消息后基于输入法对消息进行解析;
[0024] 步骤S6.2,读取消息头的钱包地址,并于区块链中查询得到加密方钱包地址下的加密公钥;
[0025] 步骤S6.3,通过加密公钥对消息体中的密文信息进行解密,并将解密后的内容呈现给消息接收方。
[0026] 一种基于区块链存储与交换加密密钥的输入装置,其特点是,该输入装置包括:
[0027] 绑定模块,其被配置为将输入法与区块链钱包绑定;
[0028] 密钥对创建模块,其被配置为创建一用于输入加密的密钥对;
[0029] 写入模块,其被配置为将所述的密钥对写入到区块链的分布式账本;
[0030] 获取模块,其被配置为获取用户在输入法的输入框中输入的待加密内容;
[0031] 加密模块,其被配置为基于所述用户在所述输入法对应的输入面板上的加密操作,并通过区块链的分布式账本的密钥对对所述待加密内容进行加密处理得到密文信息;
[0032] 解密呈现模块,其被配置为通过区块链的分布式账本的密钥对对所述的密文信息进行解密处理,并将解密后的消息内容呈现给用户。
[0033] 可选地,所述的装置还包括:
[0034] 消息创建模块,其被配置为创建一消息;消息发送方将该消息发送给消息接收方,所述消息的消息体为加密后的密文信息,所述消息的消息头为消息发送方的钱包地址。
[0035] 可选地,所述的解密呈现模块包括:
[0036] 解析单元,其被配置为接消息收方收到消息后基于输入法对消息进行解析;
[0037] 读取单元,其被配置为读取消息头的钱包地址,并于区块链中查询得到加密方钱包地址下的加密公钥;
[0038] 解密单元,其被配置为通过加密公钥对消息体中的密文信息进行解密;
[0039] 展示单元,其被配置为在输入法的呈现区域将解密后的内容呈现给消息接收方。
[0040] 一种计算机设备,包括:
存储器和处理器;所述存储器上存储有可由处理器运行的
计算机程序;所述处理器运行所述计算机程序时,执行上述的方法。
[0041] 本发明与现有技术相比,具有以下优点:
[0042] 密钥不存在丢失与三方泄漏风险,密钥拥有者对密钥拥有绝对的管理与使用权,他人无法盗取。
[0043] 利用区块链技术保存用户密钥,结合区块链的分布式无中心化、数据不可篡改、用户对自己数据拥有绝对控制权等特性,使用户的加密密钥非常安全,解决了密钥管理不够安全问题。
附图说明
[0044] 图1为本发明一种基于区块链存储与交换加密密钥的输入方法的
流程图;
[0045] 图2~4为本发明一种基于区块链存储与交换加密密钥的输入方法的界面示意图;
[0046] 图5为本发明一种基于区块链存储与交换加密密钥的输入装置示意图;
[0047] 图6为本发明解密呈现模块的结构示意图。
具体实施方式
[0048] 以下结合附图,通过详细说明一个较佳的具体
实施例,对本发明做进一步阐述。
[0049] 图1示出了一种基于区块链存储与交换加密密钥的输入方法的流程图,如图1所示,一种基于区块链存储与交换加密密钥的输入方法,包括如下步骤:
[0050] S1,将输入法与区块链钱包绑定;
[0051] S2,创建一用于输入加密的密钥对;
[0052] S3,将所述的密钥对写入到区块链的分布式账本;
[0053] S4,获取用户在输入法的输入框中输入的待加密内容;
[0054] S5,基于所述用户在所述输入法对应的输入面板上的加密操作,并通过区块链的分布式账本的密钥对对所述待加密内容进行加密处理得到密文信息;
[0055] S6,通过区块链的分布式账本的密钥对对所述的密文信息进行解密处理,并将解密后的消息内容呈现给用户。
[0056] 本
说明书提供的实施例所述的“区块链”,具体可指一个各
节点通过共识机制达成的、具有分布式数据存储结构的P2P网络系统,该区块链内的数据分布在时间上相连的一个个“区块(block)”之内,后一区块包含前一区块的数据
摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。本领域的技术人员熟知,由于区块链系统在相应共识机制下运行,已收录至区块链分布式账本内的数据很难被任意的节点篡改,例如采用Pow共识的区块链,至少需要全网51%算
力的攻击才有可能篡改已有数据,因此区块链系统有着其他中心化
数据库系统所法比拟的保证数据安全、防攻击篡改的特性。由此可知,在本说明书所提供的实施例中,被收录至区块链的分布式账本中的上述密钥信息很难被攻击或篡改,从而利用区块链技术保存用户密钥,结合区块链的分布式无中心化、数据不可篡改、用户对自己数据拥有绝对控制权等特性,使用户的加密密钥非常安全,解决了密钥管理不够安全问题。
[0057] 在步骤S4中的待加密的内容可以为文字或多媒体。
[0058] 所述的将输入法与区块链钱包绑定后,通过计算得到区块链钱包的钱包私钥和钱包地址,上述的计算为椭圆曲线加密算法,区块链常用的钱包生成算法。如用户已有脑词(助记词)可导入钱包信息进行绑定。
[0059] 进一步地,所述的密钥对包括加密私钥和加密公钥,则所述步骤S5中通过区块链的分布式账本的加密私钥对所述待加密内容进行加密处理。
[0060] 进一步地,所述步骤S6中通过区块链的分布式账本的加密公钥对所述的密文信息进行解密处理。
[0061] 在具体实施例中,所述的步骤S5后还包括:
[0062] 创建一消息,消息发送方将该消息发送给消息接收方,所述消息的消息体为加密后的密文信息,所述消息的消息头为消息发送方的钱包地址,另外在具体应用时,消息头中也可附加上具体使用的区块链与协议信息。
[0063] 所述的步骤S6包括:
[0064] 步骤S6.1,接消息收方收到消息后基于输入法对消息进行解析;
[0065] 步骤S6.2,读取消息头的钱包地址,并于区块链中查询得到加密方钱包地址下的加密公钥;
[0066] 步骤S6.3,通过加密公钥对消息体中的密文信息进行解密,并将解密后的内容呈现给消息接收方。
[0067] 进一步地,上述地步骤S6还可以包括:监听对所述消息的复制指令,当监听到对所述消息进行复制操作时,对上述消息进行解密操作。
[0068] 消息接收方回复消息同上机制,只是消息发送方(加密方)与消息接收方(解密方)身份与行为进行调换即可。
[0069] 以下结合图2~4对输入法的加密和解密过程做详细阐述,所述的输入法面板上设有加密按钮,如消息接收方(小明)询问消息发送方(小芳):你qq密码多少,用户小芳想让对输入的qq密码(该qq密码为123456789)以密文的形式发送,此时小芳点击输入面板上的加密按钮,此时输入法将该qq密码转化为密文并于输入法的输入框中显示,小芳将此密文发送给用户小明,参见图4,最后用户小明对该密文进行复制操作,加密后的qq密码以明文的形式呈现于输入法的某一区域。
[0070] 图5示出了一种基于区块链存储与交换加密密钥的输入装置示意图,如图5所示,一种基于区块链存储与交换加密密钥的输入装置,该输入装置包括:绑定模块10,其被配置为将输入法与区块链钱包绑定;密钥对创建模块20,其被配置为创建一用于输入加密的密钥对;写入模块30,其被配置为将所述的密钥对写入到区块链的分布式账本;获取模块40,其被配置为获取用户在输入法的输入框中输入的待加密内容;加密模块50,其被配置为基于所述用户在所述输入法对应的输入面板上的加密操作,并通过区块链的分布式账本的密钥对对所述待加密内容进行加密处理得到密文信息;解密呈现模块60,其被配置为通过区块链的分布式账本的密钥对对所述的密文信息进行解密处理,并将解密后的消息内容呈现给用户。
[0071] 在具体实施例中,所述的装置还包括:消息创建模块,其被配置为创建一消息;消息发送方将该消息发送给消息接收方,所述消息的消息体为加密后的密文信息,所述消息的消息头为消息发送方的钱包地址。
[0072] 如图6所示,所述的解密呈现模块60包括:解析单元601,其被配置为接消息收方收到消息后基于输入法对消息进行解析;读取单元602,其被配置为读取消息头的钱包地址,并于区块链中查询得到加密方钱包地址下的加密公钥;解密单元603,其被配置为通过加密公钥对消息体中的密文信息进行解密;展示单元604,其被配置为在输入法的呈现区域将解密后的内容呈现给消息接收方。
[0073] 与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中基于区块链的消息传输方法的各个步骤。对消息传送的实现方法的各个步骤的详细描述请参见之前的内容,不再重复。
[0074] 以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何
修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
[0075] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出
接口、网络接口和内存。
[0076] 内存可能包括计算机可读介质中的非永久性存储器,
随机存取存储器(RAM)和/或非易失性内存等形式,如
只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0077] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
[0078] 计算机的存储介质的例子包括,但不限于
相变内存(PRAM)、静态随机存取存储器(SRAM)、
动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、
电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他
磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备
访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据
信号和载波。