基于图像的密钥导出函数的制作方法

文档序号:9693621阅读:460来源:国知局
基于图像的密钥导出函数的制作方法
【专利说明】基于图像的密钥导出函数
相关申请的交叉引用
[0001 ] 本申请是2013年6月13日提交的美国临时申请N0.61/834,765(代理案号:79900-876181(595US01))的非临时申请且要求其优先权,其全部内容出于所有目的通过引用整体结合于此。
【背景技术】
[0002]计算机安全的长远目标是实现数据的高度安全传输。密码是用于用户认证的通用技术,其中用户可输入字母、数字或其他字符的序列。密码可与服务器计算机处的密码直接比较,或者被散列并与服务器计算机所储存的散列相比较。一旦验证了密码,就可在用户与服务器计算机之间建立加密密钥。然而,用户选择的典型密码通常是低熵的:它们具有很少的字符和普通的模式。因此,诸如基于通用图形处理器(GPGPU)的攻击之类的暴力攻击可用于破解密码。在一些情况下,可限定最小密码长度和复杂性要求以迫使用户选择复杂的密码。然而,增加密码的复杂性增加用户记住密码的难度,可导致脆弱性的其他来源(例如,用户在笔记本上写下密码或将它保存在电子文档中)。
[0003]本发明的各个实施例单独地或共同地解决这些问题以及其他问题。

【发明内容】

[0004]本发明的各实施例涉及生成并使用基于图像导出的密钥的方法。在不同的实施例中,基于图像导出的密钥可用于帮助用户认证和数据加密。
[0005]—个实施例公开了一种方法,包括:确定基于图像导出的密钥,其中从用户选择的认证图像的选择中生成所述基于图像导出的密钥;使用所述基于图像导出的密钥对数据加密;以及传输经加密的数据。
[0006]本发明的一个实施例公开了服务器计算机。所述服务器计算机包括处理器和非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质包含可由处理器执行的代码以用于实施包括下列步骤的方法:确定基于图像导出的密钥,其中从用户选择的认证图像的选择中生成所述基于图像导出的密钥;使用所述基于图像导出的密钥加密数据;以及传输经加密的数据。
【附图说明】
[0007]图1示出可与本发明的各实施例一起使用的系统。
[0008]图2示出根据一些实施例的客户机计算机的示例。
[0009]图3示出根据一些实施例的服务器计算机的示例。
[0010]图4示出根据一些实施例登记与用户相关联的基于图像导出的密钥的方法。
[0011]图5示出可与本发明的一些实施例一起使用的可选的登记方法。
[0012]图6示出根据一些实施例示出可从服务器计算机接收并由客户机计算机显示的九幅图像的网格的示例。
[0013]图7示出根据一些实施例的基于图像的密钥导出函数(IBKDF)的框图。
[0014]图8示出根据一些实施例的使用基于图像导出的密钥将经加密的数据从服务器计算机发送到客户机计算机的方法。
[0015]图9示出根据一些实施例将经加密的数据从客户机计算机发送到服务器计算机的类似方法。
[0016]图10示出根据一些实施例的使用基于图像导出的密钥来认证用户的方法。
[0017]图11示出根据本发明的实施例的用来进行支付交易的系统。
[0018]图12示出根据一些实施例的卡片形式的支付设备的示例。
[0019]图13示出根据一些实施例的计算机装置的框图。
【具体实施方式】
[0020]本发明的各实施例涉及生成并使用基于图像导出的密钥的方法。在不同的实施例中,基于图像导出的密钥可用于帮助用户认证和数据加密。
[0021]在一些实施例中,用户可从呈现给用户的多个图像中选择图像的子集。用户选择的认证图像可被用于利用基于图像的密钥导出函数来生成基于图像导出的密钥。客户机计算机可使用基于图像导出的密钥对发送到服务器的数据加密,或者对从服务器接收的数据解密。另外,服务器计算机可使用基于图像导出的密钥对发送到用户的数据加密,或者对从用户接收的数据解密。此外,可使用基于图像导出的密钥以通过将该密钥与为该用户储存的先前密钥相比较来认证该用户。
[0022]在进一步描述本发明的各实施例之前,一些术语的描述可以有助于理解本发明的各实施例。
[0023]“图像”可包括视觉数据的电子表示,诸如图片、图标、图形或其他表示。例如,可使用图像来显示二维网格的像素。可以以任意适当的格式储存图像,诸如JPEG、GIF、BMP和PNG电子文件格式。“认证图像”可包括可用于用户认证的任何图像。例如,服务器计算机可保存用户可选择的多个认证图像。
[0024]“加密密钥”可以包括可操作来将数据(例如,明文)加密为密文中的数据元素或其他信息片。“解密密钥”可以包括可操作来将密文解密为原始数据(例如,明文)的数据元素或其他信息片。在一些实施例中,加密密钥和解密密钥可以是同一密钥(例如,在对称密钥系统中)。在这种情况下,加密密钥可被用于对密文解密。在其他实施例中,加密和解密密钥可以是不同的(例如,在非对称密钥系统中)。
[0025]“密钥导出函数”可包括用来确定一个或多个加密或解密密钥的任意函数。典型地,密钥导出函数可取输入值作为输入并使用该输入值生成密钥。在一些情况中,密钥导出函数还可使用混淆值(salt value)、迭代计数、负载系数和/或任意其他的适当参数。可以以任何适当的方式来实现密钥导出函数,诸如使用密码散列函数。密钥导出函数的一个示例是“基于密码的密钥导出函数2” (PBKDF2,如在RFC 2898中指定)。
[0026]“基于图像的密钥导出函数”(IBKDF)可包括任何密钥导出函数,其中从多个图像生成输入值。可以以任何适当的方法来确定用作输入的图像,诸如通过用户所选择的子集。这些图像的任何适当的方面可用作输入。例如,在一些情况中,与图像相关联的图像标识符或图像元数据可用作对IBKDF的输入。在一些情况中,可对图像应用散列或其他函数,并且结果值可用作对IBKDF的输入。在一些情况中,数据包括可用作对IBKDF的输入的图像本身。
[0027]“基于图像导出的密钥”可包括使用基于图像的密钥导出函数所生成的任意密钥。基于图像导出的密钥可具有任何适当的类型(例如,对称的或非对称的)和长度。
[0028]本发明的各实施例提供以比基于密码的方法更加安全的方式与用户建立保护通信的优点。不管在认证、加密和解密中使用的技术的密码强度如何,这种技术可终究依赖用户提供证明他们身份的信息。如果用户所提供的信息过于简单,则可容易受到暴力攻击的破坏。在用于用户认证的基于密码的方法中,用户必须选择包含字母、数字或其他字符的密码且每当用户要被认证的时候必须再现该密码。然而,选择并记住高熵密码(该密码包含大量复杂性,诸如变化的大写字母以及符号和其他特殊字符的使用)对于用户通常是困难的。相比之下,由于介质的性质,图像比字符可包含显著更多的熵。由于与长的且高度复杂的序列的字符相比,人类可更加容易地记住短序列的图像,所以与字母数字密码相比,用户可更加容易地使用高熵的图像子集以用于认证。因此,本发明的各实施例实现了高熵密钥的生成并用于安全通信,而不会是用户的负担。这改进了安全性并阻碍暴力或基于彩虹表的攻击。
[0029]另外,本发明的各实施例提供建立安全通信而不需要单独的认证过程的优点。在安全传输数据的一个方法中,可首先执行认证过程,并且如果认证成功,则可在使用客户机计算机的用户与服务器计算机之间建立会话加密密钥。通常,这样的过程将包含(1)客户机计算机向服务器计算机发送认证信息(例如,密码),(2)服务器计算机验证密码,(3)客户机计算机和服务计算机建立会话密钥,(4)服务器向用户发送使用会话密钥加密的数据,以及
(5)用户使用会话密钥对经加密的数据解密。本发明的各实施例可通过服务器和用户中的每一个将认证与数据传输这两者压缩到单一步骤中来改进此过程。特别地,根据一些实施例,服务器计算机可向客户机计算机发送数据,该数据使用先前由用户所确定的基于图像导出的密钥来加密。客户机计算机然后可使用用户所指定的认证图像的子集重新生成基于图像导出的密钥。重新生成的导出密钥可用来对数据解密。因此,尽管序列的认证和数据传输的过程可能需要在服务器与客户机计算机之间交换若干消息,但本实施例允许使用单个消息来安全传输数据。这在网络访问不可靠或高等待时间的情况中会尤其有利。
[0030]另外,本发明的各实施例提供实现移动设备和具有受限输入能力的其他设备上较大安全性的优点。例如,使用移动电话上的电容性键盘输入长的且复杂的密码对于用户会是耗时的且易于出错。相比之下,本发明的各实施例允许用户通过从图片的网格中选择图像来选择认证图像的子集。由于每个图像比单个字符具有更高的熵,所以可使得显示给用户的图像更大,因此比显示在电容性键盘上的单独键更加易于用手指、触笔、或其他输入设备来选择。因此,本发明的各实施例可改进用户体验,优于基于密码的认证。
[0031]以上示例仅突出强调了根据本发明的各实施例的使用基于图像导出的密钥的几个优势。
系统
[0032]图1示出根据本发明的实施例的系统100。系统100包括可与客户机计算机102交互的用户101。客户机计算机102可使用通信网络103连接到服务器计算机104。通信网络103可以是任何适当的计算机网络,诸如有线或无线网络。服务器计算机104可连接到用户数据库106和图像数据库105,该用户数据库106可储存与用户101和/或其他用户相关的多种数据,该图像数据库105可储存与图像相关的多种数据,诸如图像文件、图像元数据和图像标识符。
[0033]此外,为了容易解释,尽管在一些实施例中使用术语“客户机计算机”和“服务器计算机”来描述两个计算设备之间的通信流,应该认识到各实施例不限于客户机-服务器关系。例如,在一些实施例中,也可使用本文中描述的技术来帮助两个或多个计算设备之间的对等(peer-to-peer)通信。因此,在一些实施例中,客户机计算机102和服务器计算机104可具有相同或相似的能力和/或功能,且可用相同或相似的组件来实现。此外,一个计算设备在一些情况下可充当客户机计算机,而在另一些情况下可充当服务器计算机,这取决于计算设备如何与另一个计算设备交互。
[0034]图2示出根据本发明的一个实施例的客户机计算机102的示例。客户机计算机102可包括任何适当的计算设备,诸如台式或笔记本电脑、平板和智能电话或其他移动设备。客户
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1