基于非交互式身份的密钥协商派生的、具有认证加密的秘密密钥的使用的制作方法

文档序号:7989568阅读:1006来源:国知局
基于非交互式身份的密钥协商派生的、具有认证加密的秘密密钥的使用的制作方法
【专利摘要】从主控密钥创建发送者私人密钥。发送者私人密钥和关于接收者的公开信息用于产生秘密密钥。使用秘密密钥加密数据。加密使用认证数据。加密的数据被发送至接收者。从主控密钥创建接收者私人密钥。接收者私人密钥不同于发送者私人密钥。接收者私人密钥和关于发送者的公开信息用于重新创建秘密密钥。在接收者处,将秘密密钥用于解密加密的数据,认证的数据用于认证该数据。
【专利说明】基于非交互式身份的密钥协商派生的、具有认证加密的秘密密钥的使用
[0001]要求优先权
[0002]本申请要求享有2012年2月8日提交的、Brian P.Spector的、名称为“基于非交互式身份的密钥协商派生的、具有认证加密的秘密密钥的使用”、申请号为13/368,726的美国专利申请和于2011年2月12日提交的、Brian P.Spector的、名称为“基于非交互式身份的密钥协商派生的、具有认证加密的秘密密钥的使用”、临时申请号为61/442,235的美国临时专利申请的优先权,该申请通过援引的方式纳入本文。
【背景技术】
[0003]加密被用于保护和保密消息以及其它数据。通常地,第一个用户加密数据,然后传输给随后可以解密该数据的第二个用户。
[0004]对称密钥加密法在发送者和接收者处使用相同的密钥。这要求安全的密钥初始传输。为了避免该问题,已经开发出了公开密钥加密系统(public key cryptographysystem)。
[0005]公开密钥加密法使用数学上相关的密钥对(key pair)。密钥对中的一个密钥是公布的公开密钥,因此其是非保密的。密钥对的其它密钥是秘密的私人密钥。可以使用公开密钥加密数据以便仅能使用私人密钥解密加密的数据。通常地,使用公开密钥基础设施(PKI)分配公开密钥。公开密钥加密法比对称密钥加密法更加计算密集,因此经常使用公开密钥加密法来加密所谓的混合系统中的较大信息的对称密钥加密法的对称密钥。
[0006]基于ID的密钥协商是加密密钥协商协议的一种类型,其中使用身份信息,双方就加密密钥达成一致来保护他们的信息交换。基于ID的密钥协商的一个实例使用椭圆曲线和有限域上的配对。配对容许公用密钥在发送者和接收者处以两种不同的方法导出。某些情况下,基于ID的密钥协商的使用可以避免对PKI的需要。

【发明内容】

[0007]本发明的实施方式使用基于非交互式身份的认证密钥协商协议,例如通过使用双线性对衍生的秘密密钥和对称密钥认证加密模式以便使整个加密的文件成为唯一的指纹。
[0008]认证加密模式的初始化向量可被用作数据跟踪机制、全局唯一标识符、认证机制和用作业务流程的一般的媒介物。特别地,本发明的实施方式可以使用初始化向量输送具体的数字权限表达。举例来说,数字权限表达可以限制文件能够被打印或数字化歌曲能够被播放的次数。在另一实施方式中,初始化向量包括密钥托管受益人标识符(key escrowbeneficiary identifier)和唯一的/随机的身份参数,使用密钥托管受益人标识符和唯一的/随机的身份参数获得密钥托管受益人私人密钥(key escrow beneficiary privatekey),并使用受益人私人密钥和唯一的/随机的身份参数以编程方式创建解密密钥。
[0009]在发送者处,第一私人密钥与接收者的ID信息结合作为基于身份的非交互式密钥协商协议的编程输入以产生秘密密钥。该秘密密钥用于加密数据,例如消息。使用认证加密模式执行该加密,该模式使用不需要保密的、仅对每个加密密钥的应用是唯一的初始化向量。例如在一个实施方式中,使用唯一的初始化向量(连同秘密密钥)加密数据,然后初始化向量和加密的数据一起被发送。在接收者处,第二私人密钥与发送者的ID信息结合作为基于身份的非交互式密钥协商协议的编程输入以复制该秘密密钥。该秘密密钥与可以包括认证信息和跟踪数据的初始化向量一起被用来解密加密的数据。通过使用初始化向量设置加密内容的起始点(origin),普遍已知的数据指纹技术和在加密的数据中作为初始化向量使用的产生的数据指纹散列(data fingerprint hashes)的使用可以跟踪数据泄露,因此这可以作为对加密内容的跟踪机制。初始化向量还可以包括例如日期和时间、创建位置、过期时间或其它参数这样的参数。
[0010]使用私人密钥产生秘密密钥意味着解密加密的消息的密钥不需要分配。反而,本身不能解密消息的私人密钥与在秘密密钥加密中使用的初始化向量信息一起被分配。认证加密模式中使用的初始化向量没必要是秘密的,但当不止一次使用加密密钥时,它们必须具有唯一值。初始化向量信息以及秘密密钥的使用容许具有内置的可追究性的加密、指纹和签名方法,而无需接收者一方的公开的/私人密钥计算和管理费用。
[0011]在一实施方式中,使用初始化向量中的复合参数加密数据。初始化向量包括密钥托管受益人标识符和唯一的/随机的身份参数。初始化向量作为加密的数据的一部分被发送至解密实体,解密实体使用初始化向量的密钥托管受益人标识符部分获得密钥托管受益人私人密钥。解密实体还使用初始化向量的唯一的/随机的身份参数部分和密钥托管受益人私人密钥来重新创建秘密密钥,该秘密秘钥是加密密钥。
[0012]在一实施方式中,加密的数据是信用卡和交易数据。密钥托管受益人不需要储存加密密钥,以使该密钥托管受益人系统的任何入侵者不能够解密储存于密钥托管受益人的加密的信用卡和交易数据。进一步地,密钥托管受益人有益于增强安全性,这是因为用不同的密钥加密存储的每个信用卡和交易。
【专利附图】

【附图说明】
[0013]图1A和IB是显示了秘密密钥和初始化向量的使用的图表;
[0014]图2是显示了使用包括密钥托管受益人标识符和唯一的/随机的身份参数的初始化向量的密钥托管系统的图表;
[0015]图3A是显示了在初始化向量自身内使用复合参数的图表;
[0016]图3B是显示了由私人密钥和唯一的/随机的身份参数创建和/或再次创建加密密钥的图表。
【具体实施方式】
[0017]图1A显示了秘密密钥的示例性使用。在该实例中,发送者102、即Mary使用密钥服务器104注册以得到发送者私人密钥108。通过接收者110、即Alice的身份信息112,以编程的方式利用发送者私人密钥108来产生秘密密钥114。
[0018]这种情况下,接收者身份信息112是电子邮箱地址“aliceOalice.com”。发送者通过秘密密钥114a加密数据116a以产生加密的数据118。
[0019]在一实施方式中,在加密中使用初始化向量120以便使加密的数据118带有初始化向量120的指纹。初始化向量120可以用于认证加密模式,例如AES-GCM。然后,初始化向量120和加密的数据118 —起被发送至接收者110,Mary。
[0020]在一实施方式中,认证标签和初始化向量一起被发送。认证标签可以被用于认证消息和初始化向量。初始化向量120可以包括数字权限管理表达、时间戳、创建位置、信息源或原始信息、或数据过期信息。时间戳可以表明加密的数据的创建时间或源文件的创建时间。因为初始化向量必须保持不变以便解密加密的数据中的密文,初始化向量帮助创建相对于数字权限表达、时间戳、创建位置、信息源或原始信息或数据过期信息的不可否认的数据(non-repudiated datum)。
[0021]在一实施方式中,初始化向量用于作为加密的种子以便对于不同的初始化向量来说加密的数据118是不同的。以这种方式,从而加密的数据118被初始化向量印上指纹。因此初始化向量可以用于跟踪任何“数据泄露”。
[0022]接收者110从密钥服务器104得到接收者私人密钥122。使用接收者私人密钥122和发送者身份信息124—起来复制秘密密钥114。这种情况下,发送者身份信息124是电子邮箱地址 “maryOmary.com”。
[0023]接收者110的复制的秘密密钥114b与发送者102的秘密密钥114a相同。密钥服务器从主控密钥(master key)创建发送者私人密钥108和接收者私人密钥122,以便当这些密钥与另一方的身份结合时,每一方可以创建秘密密钥。例如,可以使用双线性对(bilinear pairing)。秘密密钥不以任何形式或不通过任何通信协议在双方之间传输。
[0024]然后,使用复制的秘密密钥114b和初始化向量120解密加密数据118以便复制解密的数据116b。
[0025]密钥服务器104适于为发送者创建发送者私人密钥108和为接收者创建接收者私人密钥122。发送者私人密钥108不同于接收者私人密钥122。发送者私人密钥108连同接收者ID信息112足以产生秘密密钥114a。接收者私人密钥122连同发送者ID信息124足以复制秘密密钥114b。
[0026]当秘密密钥114a连同初始化向量120—起用于加密数据时,产生加密的数据118。加密的数据118可以被印上指纹,该指纹可以在初始化向量120内携带。当接收者使用复制的秘密密钥114b解密加密的数据118时,可以使用初始化向量120认证该数据。密钥服务器104可以使用储存于机器可读介质上的代码。
[0027]发送者102和接收者110处的机器可读存储介质可以包含使得发送者102和接收者104处的机器执行加密和解密的代码。在发送者102处,代码可以使得机器获得发送者私人密钥108 ;结合发送者私人密钥108和接收者身份(ID)信息112产生秘密密钥114a ;使用携带加密的数据118的控制参数的初始化向量120通过秘密密钥114a加密数据;以及将加密的数据118和初始化向量120发送至接收者110。这样,接收者104使用发送者控制参数信息124和接收者私人密钥122能够复制秘密密钥114b,接收者104使用初始化向量能够解密加密的数据118以核实初始化向量120内携带的指纹数据118。
[0028]图1B显示了使用秘密密钥和初始化向量的方法的替换示图。
[0029]图2是显示了使用包括密钥托管受益人标识符和唯一的/随机的身份参数的初始化向量的密钥托管系统的图表。
[0030]图3A是显示了如上文所述地在初始化向量自身内使用复合参数的图表。图3B是显示了由私人密钥和唯一的/随机的身份参数的创建和/或再次创建加密密钥的图表。
[0031]以下部分描述一个使用秘密密钥和初始化向量的非限制性的实例的细节。尽管下面描述的方法是互联网零售商和电子商务交易场景,使用领域的范围还适合于独立的信用卡机器。
[0032]所描述的是一数据保护方案,其使用基于非交互式身份的密钥协议、例如使用Saka1、Ohgishi和Kasahara描述的基于非交互式身份的密钥协议系统,并结合了认证加密,例如David McGrew和John Viega的研究论文以及他们的AES-GCM算法描述的认证加S系统。
[0033]数据保护方案提供通常与用于描述有效的和稳健的密码系统的缩写为PAIN相关的益处;保密性、认证、不可否认性和完整性(Privacy, Authentication, Non-repudiationand Integrity)。仅通过代表数据保护方案的受益人分配单一的私人密钥可以实现这方面,而无需通常与公开的/私人密钥密码系统相关的复杂性,并且具有秘密密钥加密的便利性。
[0034]该系统内有四个实体:1)私人密钥托管服务(服务)206,2)加密实体202,3)解密实体208以及4)系统受益人,密钥托管受益人204。应当注意的是加密和解密实体可以是相同的实体,也可以是服务的受益人。
[0035]在一实例中,其中,该系统用于为了在使用互联网的购买交易流程中使用信用卡时保护信用卡数据,可以如此地描述该场景:
[0036]如图2所示,加密实体202访问密钥托管受益人204、例如该系统中的零售商的商业网站,该加密实体202可以是带有能够以编程方式通过脚本或本机语言能力执行认证加密模式的浏览器的机器。零售商具有与私人密钥托管服务206的安全连接,当用户访问零售商网站的结账页面时,私人密钥托管服务206执行以下功能。
[0037]私人密钥托管服务206将接收代表加密实体202的、来自密钥托管受益人204的加密请求,以向加密实体202提供对称加密密钥,该对称加密密钥可以用于AES加密算法的认证加密模式,例如AES-GCM。
[0038]此外,私人密钥托管服务206将提供例如Saka1、0hgishi和Kasahara描述的用于认证密钥协商方案中的身份参数。使用身份参数以编程方式创建对称密钥,且受益人的私人密钥作为另一个参数。私人密钥托管服务206操作使用主控密钥的加密密钥管理服务,通过该主控密钥,该系统的所有受益人得到该主控密钥派生的私人密钥。
[0039]该方法中,身份参数本身起到两个目的:1)用来作为认证加密模式、例如AES-GCM中的初始化向量,还用来作为2)非秘密参数,该非秘密参数能够使得受益人的私人密钥的持有人——在该方法中即解密实体208——根据需要重新创建加密实体202在加密的数据上所使用的秘密密钥。
[0040]在稍后的日期或时间,解密实体208独立于加密实体202的行为地、以非交互式的方式使用该秘密密钥。
[0041]一旦私人密钥托管服务206接收到请求,私人密钥托管服务206记录请求源,并将该请求源作为组成非秘密初始化向量的参数的一半。这用来识别服务的真实受益人(密钥托管服务受益人204)。
[0042]应当注意的是该方法的实例的利用了认证加密模式的机理的某些优势,原因在于这些模式需要初始化向量连同密钥,以及认证标签。初始化向量具有对于密钥的每一个应用来说该初始化向量必须是唯一的这样的要求,否则该密钥本身可能被在传输时进行窃取的恶意实体重新创建。然而,初始化向量无需是秘密的,事实上可以是非秘密的。这使得它能够起到该双重目的。另一个有益要素是认证加密模式免除了单独的散列算法的需要,这是因为通过使用认证标签使散列能力内建。
[0043]初始化向量的另一半是随机产生的字符串,当该字符串与密钥托管受益人204的私人密钥结合时,例如Saka1、Ohgishi和Kasahara所描述的非交互式认证密钥协商协议使用该字符串来产生秘密密钥。在基于非交互式认证身份的密钥协商协议的典型应用中,这会起到身份参数的作用。
[0044]加密实体将接收到组成整个初始化向量的该两个参数,连同唯一的AES加密密钥,该加密密钥在该随机的字符串以编程的方式被用作例如Saka1、0hgishi和Kasahara所描述的非交互式的认证密钥协商协议中的输入时被创建。
[0045]私人密钥托管服务206的主要功能是产生议题,保持、保护,以及安全地分配私人密钥服务受益人204的私人密钥,以及产生和安全地分配加密实体202所使用的加密密钥。
[0046]一旦加密实体202—在这种情况下为访问互联网零售商的网站的浏览器一接收到初始化向量和加密密钥,在数据被传输给商家之前,浏览器可以使用认证加密模式、例如AES-GCM以编程的方式加密进入零售商的系统的数据。一旦完成这个,AES加密密钥和任何交易信息被破坏。所传输的仅仅是加密的信用卡和交易信息。
[0047]这样做的益处在于,解密实体208可以是与互联网零售商分开的单独的系统。这种情况下,解密实体208将是信用卡支付处理系统。通过使得解密过程发生在支付处理器中,商人的持卡人数据的责任的范围显著降低或者完全消失。这提高了现今使用的系统和方法上的买方(加密实体202)的信用卡详细信息和交易详细信息的安全性。此外,在现今使用的系统和方法上,提高了通过个人交易储存信用卡和交易详细信息的商人的数据库(密钥托管受益人数据库210)的安全性,这是因为使用不同的加密密钥唯一地加密每个个人交易。
[0048]当支付处理服务(解密实体208)接收来自互联网上的零售商(密钥托管服务受益人204)的交易时,支付处理服务(解密实体208)使用携带在加密的信用卡和交易信息(称为密文)的整个主体中的初始化向量所存储的身份参数作为以下所必须的身份参数:I)查找、定位和使用密钥托管受益人204的正确的私人密钥,其本身在私人密钥托管服务206和解密实体208中都使用;以及2)在例如Saka1、Ohgishi和Kasahara这样的基于身份的、非交互式认证的密钥协商方案中使用的的程序化的身份参数。
[0049]工作流程实例:
[0050]1.使用初始化向量内的密钥托管受益人标识符来获得正确的私人密钥。
[0051 ] 2.使用初始化向量内的随机的字符串作为将要在非交互认证的密钥协商协议中以编程方式使用的身份参数。
[0052]3.产生秘密密钥,在该方法中为AES解密密钥。如步骤2中概述的,并且与例如Sakai, Ohgishi和Kasahara这样的基于身份的非交互式认证密钥协商协议中表达的方法—致。
[0053]4.使用AES的认证模式、例如AES-GCM来校验加密的密文的信息完整性。假设认证标签有效,那么加密的密文可以被解密。
[0054]5.使用提供的初始化向量和创建的AES加密密钥解密信用卡和交易信息。
[0055]使用该系统,不要求密钥托管受益人安装和使用涉及到保护敏感的持卡人数据时的任何密码系统。
[0056]进一步地,作为系统本身,其显示了对于现今商用的密码系统的特别的创新。安置存储加密的卡持有人和交易数据的密钥托管服务受益人数据库210的该系统没有访问解密密钥的权限或没有产生解密密钥来解密数据的能力,而且在密钥托管服务受益人数据库210内使用唯一的对称加密密钥来加密每个信用卡和交易数据记录。
[0057]附件A详细描述了另外的实施方式。
[0058]为了说明和描述的目的,已经提供了本发明的优选实施方式的上述描述。其目的不在于穷尽,或者不打算将本发明限制于公开的精确形式。为了最好地描述本发明的原理和它的实际应用而选择和描述了许多实施方式,从而使得本领域的其他技术人员能够通过不同的实施方式和适合预期的特定用途的不同的变形来理解本发明。本发明的范围旨在由权利要求和他们的等同方案限定。
[0059]附件 A
[0060]下面描述用于电子商务交易支付处理的非限制的示例性工作流程:
[0061]安全支付处理
[0062]第I部分-数据输入/加密
[0063]1.一个需求密钥服务具有带有填充接口的JavaScript对象符号(JSON)。
[0064]2.商人的网页具有脚本标签,其调用用于AES密钥的密钥服务来加密卡数据和作为用于Javascript AES-GCM程序的IV的一次性随机产生的字符串。
[0065]
【权利要求】
1.一种加密方法,其特征在于,包括: 在发送者处,使用发送者私人密钥产生秘密密钥; 建立至少一个填入用于对称加密的初始化向量的参数; 通过秘密密钥加密数据,使用填入了至少一个发送者建立的参数的初始化向量进行加密; 将带有初始化向量的加密的数据发送至接收者; 在接收者处,使用接收者私人密钥重新创建秘密密钥; 在接收者处,使用秘密密钥和初始化向量解密加密的数据,并进一步使用填入到初始化向量的至少一个参数作为另一过程中的控制参数。
2.根据权利要求1所述的方法,其特征在于,初始化向量中的至少一个参数包括时间戳。
3.根据权利要求1所述的方法,其特征在于,初始化向量中的至少一个参数包括源或原始数据(位置)。
4.一种适合为发送者创建发送者私人密钥和为接收者创建接收者私人密钥的服务器,其特征在于,发送者私人密钥连同接收者身份参数信息足以产生秘密密钥,接收者私人密钥连同发送者的控制参数信息足以复制秘密密钥;以及 其中,当使用秘密密钥和初始化向量加密数据时产生加密的数据,即加密的数据和关于或作为初始化向量内的加密的信息的传输的控制参数,当在接收者处使用复制的秘密密钥解密加密的数据时,能够使用初始化向量中的参数进一步作用于该数据来驱动单独的过程。
5.根据权利要求4所述的服务器,其特征在于,将初始化向量、参数以及加密的数据一起从发送者发送至接收者。
6.根据权利要求4所述的服务器,其特征在于,初始化向量和参数包括时间戳。
7.根据权利要求4所述的服务器,其特征在于,初始化向量包括源或原始数据(位置)。
8.根据权利要求4所述的服务器,其特征在于,初始化向量包括数字化数据的控制参数。
9.一种机器可读存储介质,其特征在于,其包含代码,该代码使得机器执行以下步骤: 获得发送者私人密钥; 使用发送者私人密钥产生秘密密钥; 使用初始化向量通过秘密密钥加密数据,该初始化向量包括用于其它过程的控制参数;以及 发送加密的数据和初始化向量至接收者,以便接收者使用复制的秘密密钥和初始化向量能够解密加密的数据以及能够将初始化向量中的控制参数用于其它过程。
10.根据权利要求9所述的机器可读介质,其特征在于,初始化向量中的控制参数包括时间戳。
11.根据权利要求9所述的机器可读介质,其特征在于,初始化向量中的控制参数包括源或原始数据(位置)。
12.一种机器可读介质,其特征在于,其包括代码,该代码用于:接收带有初始化向量的加密的数据,该初始化向量包括密钥托管受益人标识符和唯一的/随机的身份参数; 使用密钥托管受益人标识符获得密钥托管受益人私人密钥;使用密钥托管受益人私人密钥和唯一的/随机的身份参数以编程方式复制解密密钥; 使用解密密钥和初始化向量解密加密的数据。
13.—种加密方法,其特征在于,包含: 使用初始化向量加密数据,该初始化向量包括密钥托管受益人标识符和唯一的/随机的身份参数,其中该初始化向量作为加密的数据的一部分被发送至解密实体,该解密实体使用初始化向量的密钥托管受益人标识符部份获得密钥托管受益人私人密钥,以及使用初始化向量的唯一的/随机的身份参数部份和密钥托管受益人私人密钥来重新创建加密密钥。
14.一种加密方法,其特征在于,包含: 使用私人密钥和至少一个身份参数创建加密密钥; 将加密密钥和至少一个身份参数发送至用户;在用户处,使用加密密钥和至少一个身份参数加密数据; 将加密的数据和至少一个身份参数从用户发送至密钥托管受益人; 将加密的数据和至少一个身份参数从密钥托管受益人发送至解密位置; 在解密位置,使用至少一个身份参数识别受益人来获得私人密钥的副本,使用私人密钥和至少一个身份参数重新创建加密密钥; 在解密位置,使用加密密钥解密`加密的数据。
15.根据权利要求14所述的加密方法,其特征在于,至少一个身份参数是用于数据加密和解密的初始化向量的一部分。
16.根据权利要求14所述的加密方法,其特征在于,至少一个身份参数包括密钥托管受益人标识符和作为控制参数来衍生加密密钥的另一个唯一的或随机的身份参数。
17.根据权利要求16所述的加密方法,其特征在于,随机产生唯一的标识符。
18.根据权利要求16所述的加密方法,其特征在于,密钥托管受益人标识符用于查找私人密钥。
19.根据权利要求15所述的加密方法,其特征在于,数据是信用卡号码。
【文档编号】H04L9/32GK103636161SQ201280018136
【公开日】2014年3月12日 申请日期:2012年2月10日 优先权日:2011年2月12日
【发明者】布莱恩·P·斯佩克特 申请人:瑟蒂弗克司有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1