加密装置及加密方法

文档序号:7884984阅读:171来源:国知局
专利名称:加密装置及加密方法
技术领域
本发明大体涉及用于对经由非置信的或非安全的通信网络传递的值(例如个人标识号(PIN))进行加密的方法和装置。
背景技术
在许多电子鉴权系统中,在用户访问服务(例如网上银行、在线购物、自动柜员机、股票交易、账单支付、电子资金、电信服务或者进入房间或车辆)以前,需要用户提供授权证明。授权证明可以呈密码形式或PIN的形式,在允许用户访问以前,用户必须输入或以其它方式提供密码或者PIN。建议用户将他们的PIN保密并且定期更改PIN,以降低恶意的第三方发现PIN的可能性。延长PIN改变之间的时间间隔可以增大PIN被探测到以及由此被用来未经授权地访问服务、房间或车辆的可能性。一种经由通信网络改变PIN的方法涉及建立安全通道,例如使用安全外壳(SSH)协议建立安全通道,其中未被加密的数据可以经由网络通过加密通道传送至服务器。然而,该方法可能是相当大量使用处理器的,并且在建立通道时涉及通信资源和开销。此外,虽然安全通道可以防止“中间人”获得PIN,但是PIN仍可能受到由“中间人”型攻击造成的篡改和/或干扰影响,该“中间人”型攻击是服务器无法检测到的。以需要减少的处理需求以及较不易受到“中间人”型攻击影响的方式传递值(例如PIN)将是令人期望的。包含上面对背景技术的介绍来解释本发明的背景。该介绍不应被视为承认所引用的文档或其它材料中的任一种在本说明书的权利要求中的任一项权利要求的优先权日是公开的、公知的、或者是公知常识的一部分。

发明内容
根据一个方面,本发明提供一种对被输入到用户装置内的值进行加密的方法,所述用户装置存储鉴权密钥、码生成算法和值验证码生成算法,所述方法包括:所述用户装置使用所述码生成算法处理所述鉴权密钥来产生鉴权码;所述用户装置使用所述值验证码生成算法处理所述值来产生值验证码;以及所述用户装置使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息,所述消息用于经由通信网络传递至鉴权系统去供所述鉴权系统处理,以确定和验证所述值并且鉴权所述用户装置和/或用户。与建立安全通道和经由安全通道传递相比,本方法可以使用减少的处理器处理量或者通信资源需求而允许被加密的值的传递。不是在被加密的数据包内传递未加密的数据,而是在本发明的实施例中数据可以被加密,在该例子中数据是值。预期所减少的处理器处理量降低功耗,因此使本方法特别适合于与低功率用户装置一起使用。此外,与使用加密信道经由网络传递未加密业务的安全通道不同,本发明的实施例可以构建对值进行加密的消息,该消息可以经由不可靠或不安全的通信信道传递。本发明的实施例可以解决“中间人”型攻击的问题。例如,如果攻击者拦截消息,不仅值会对攻击者隐藏,而且攻击者还将不能用可验证的值替代向鉴权系统的传输。实际上,即使攻击者知道消息的与所加密的值相关联的特定位或元素,也因为值验证码是从被消息加密的值中产生的,所以如果攻击者试图替代不同的加密值(如通过篡改所拦截的消息)并且将这个值传递至鉴权系统,攻击者将不能为被替代的值产生有效的值验证码。本发明的实施例可以构建消息,消息传递包括值(例如仅用户知道的PIN),如情况可能是例如用户选择新的PIN或替换的PIN。另外,由于消息是通过处理对用户装置而言唯一的鉴权密钥来构建的,所以消息还可以包含能够在鉴权过程中使用的用于对用户装置和/或用户进行鉴权的信息。换句话说,本发明的方法实施例可以构建消息,从消息中,所述鉴权系统可以得到或确定所述值和鉴权信息。用户装置可以包括智能卡、移动电话、手持式计算机、笔记本计算机、平板电脑、台式电脑、个人数字助理(PDA)或者任何其它合适的装置。值可以包括例如密码、PIN、信用卡号、其它数字、字符串、字符、数组、数据结构或任何其它数据。当值是PIN时,PIN可以包括替换的或新的PIN (“新PIN”),替换的或新的PIN用于传递至鉴权系统去取代现有的PIN (“旧PIN”)。用户可以选择新的PIN并将新的PIN输入到用户装置中。如果攻击者拦截消息,那么新的PIN会对攻击者隐藏。另外,如果攻击者试图将替代的替换PIN传送至鉴权系统,那么攻击者将不能在不获得鉴权密钥的情况下有效地加密替代的替换PIN。另外,如果攻击者将不同的消息传送送至鉴权系统,那么消息将包含无效的值验证码,因此在鉴权系统中,新的PIN不会被验证和更新。在此方面,即使万一攻击者猜中有效值验证码,攻击者也不能在不知道鉴权密钥的情况下推断出鉴权系统中记录的新的PIN。优选地,所述鉴权密钥是密钥,例如与鉴权系统共享的对称密钥。鉴权密钥可以包括例如种子、代码或数据序列(如256位二进制码)。鉴权密钥可以是固定密钥或静态密钥,或者其可以包括可一次性使用的密钥,可一次性使用的密钥关于鉴权码生成算法的每个迭代而被更新,或者可能在预设的时间段期满以后被更新。用户装置可以经由适合的通信信道将消息传递至鉴权系统,或者用户装置可以构建该消息作为用于经由别的方式(如通过用户将该消息输入不同装置(如适用于将所构建的消息经由通信网络传递至鉴权系统的通信终端)中)传递至鉴权系统的输出。在用户装置将消息传递至鉴权系统的实施例中,用户装置可以包括有线通信接口和/或无线通信接口,有线通信接口和/或无线通信接口用于将所构建的消息经由适合的数据通信网络直接传递至鉴权系统或者将所构建的消息经由适合的数据通信网络经由与鉴权系统数据通信的网络节点间接地传递至鉴权系统。在用户装置将消息输出给用户去供用户输入到装置(如通信终端)内以传递至鉴权系统的实施例中,用户装置不需要包括有线通信接口和/或无线通信接口,但是作为替代可以包括用于将消息输出给用户的用户接口,例如显示器。适合的用户接口可以包括例如显示器(如LED或者LCD显示器)或音频输出接口。在又一实施例中,用户装置可以包括有线通信接口和/或无线通信接口,有线通信接口和/或无线通信接口用于将所构建的消息传递至中间通信装置(如第二用户装置),以将消息输出至用户去供用户然后输入到鉴权系统中或者供用户以别的方式将所构建的消息传递至鉴权系统。作为示例,用户装置可以包括电子数据通信接口,该电子数据通信接口用于在与第二用户设备(如移动电话、手持式计算机、笔记本计算机、平板电脑、台式电脑、个人数字助理(PDA)等)的电子数据通信(如短消息服务消息(SMS)、电子邮件消息、即时消息服务等等)中将所构建的消息传递至第二用户装置(如移动电话)。关于上面涉及的有线通信接口,适合的有线通信接口可以包括例如USB接口、IEEE802.3接口、串行外围接口总线(SPI)接口、接触式智能卡接口等。其它适合的有线通信接口将是技术人员所熟知的。适合的无线通信接口可以包括例如磁条接口、光接口、IEEE802.11无线接口、Bluetooth 接口、ZigBee 接口、无线USB、非接触式智能卡接口等。其它适合的无线通信接口将是技术人员所熟知的。优选地,使用所述码生成算法处理所述鉴权密钥来产生所述鉴权码包括编码过程,该编码过程通过向鉴权密钥施加适合的散列函数或者可能向涉及鉴权密钥和其它数据的逻辑函数的结果施加适合的散列函数,将鉴权码转换成η数字符鉴权码。适合的散列函数可以包括例如MD5、SHA-U SHA-224、SHA-256、SHA-384或SHA-512。如将理解的,散列函数对输入(在此实例中输入是鉴权密钥或者是涉及鉴权密钥或其它数据的逻辑运算的结果)进行转换并提供固定长度的散列值输出。当码生成算法施加将涉及鉴权密钥和其它数据的逻辑运算的结果作为输入的散列函数时,适合的逻辑运算可以包括例如XOR逻辑运算。然而,可以使用其它逻辑运算是可能的。其它数据可以通过附加诸如同步计数器值和/或标识码(如旧PIN)和/或用户装置的模式信息之类的数据值来形成。同步计数器值可以是与鉴权系统上的对应计数器同步的计数值,以在鉴权过程以后产生或更新用户装置和鉴权系统上新的鉴权密钥。在与涉及鉴权密钥的逻辑运算一起的其它数据中包括标识码,可以协助确保正确的用户在使用用户装置。在一个实施例中,用户需要将旧的PIN输入或录入到用户装置内,以激活用户装置执行该方法。优选地,使用所述值验证码生成算法处理所述值来产生值验证码包括编码过程,该编码过程通过向所述值施加适合的散列函数或者可能向涉及所述值和由用户装置的用户输入或录入的其它数据(如旧PIN)的逻辑运算的结果施加适合的散列函数,将所述值转换成m个数字符的值验证码。因此,旧的PIN可以在鉴权码生成算法和值验证码生成算法中使用。用于产生值验证码的逻辑运算还可以涉及鉴权密钥或实际上包括不同的密钥。因此,在值验证码生成过程中涉及旧PIN和/或鉴权密钥的实施例可以产生值验证码,该值验证码可以由鉴权系统处理来验证值和鉴权用户装置(经由鉴权密钥)和/或用户(经由旧PIN)。于是因此,值验证码可以起到两种作用,即验证值和鉴权用户装置和/或用户。使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息可以包括执行至少包括所述鉴权码和所述值的逻辑或算术运算。然而,在一些实施例中,逻辑或算术运算可以附加地涉及值验证码。逻辑或算术运算可以包括:将值和值验证码连接来形成包括值和值验证码的连接结果,以及然后使用模算术将鉴权码添加至所连接的结果上。在该实例中,将鉴权码添加到所连接的结果上构建了对值和值验证码进行加密的消息。
优选地,鉴权码、值和值验证码每个分别都被形成为来自由X个的可能数字符组成的数字符组中的数字符的序列。在该方面,当术语“数字符(digit)”在本说明书中使用时,术语“数字符”应被理解为表示数字、字符、符号等。可以理解,数字符可以使用多个二进制位来表示。例如,数字“9”可以用二进制表示为“1001”。在该示例中,数字符是从由“O”至IJ “9”的十个数字符组成的组中选择的数字“9”。由X个可能的数字符组成的数字符组可以包括来自ASCII字符集(换句话说,由128个不同数字符组成的数字符组)、扩展的ASCII字符集(换句话说,由255个不同数字符组成的数字符组)或者ASCII字符子集的数字符,在此实例中,每个数字符可以表示为8位二进制序列或二字符二进制编码的十进制序列。在每个各自的数字符序列包括来自由X个可能的数字符组成的数字符组中的数字符并且使用模算术来构建消息的实施例中,模算术可以使用模X算术。使用模X算术可以确保对每个被加密的值构建唯一可逆(即可解密的)消息。换句话说,被加密的值可以是唯一可解密的,以恢复或重新构建由消息加密的值。因此,使用相同鉴权码通过构建消息加密的两个不同值会导致不同的唯一且可逆的构建消息。在实施例中,所构建的消息是N数字符消息,因此具有N个数字符的“长度”。鉴权码可以具有与所构建的消息的长度相同的长度或者可以具有比所构建的消息的长度短的长度。因此,例如鉴权码可以包括η数字符码,这里η=Ν。优选地,所述值具有比所述鉴权码的长度短的长度,并且所述值验证码具有与所述鉴权码的长度和所述值的长度之间的差异对应的长度,使得值和值验证码的结合长度对应于鉴权码的长度。以此方式,通过选择适合的算术或逻辑运算,所构建的消息可以具有与鉴权码的长度相对应的长度,并且所构建的消息的每个数字符可以加密值或值验证码的各个数字符。例如,假设鉴权码具有η个数字符的长度,那么所构建的消息也可以具有η个数字符的长度,其中η个数字符包括加密值的i个数字符以及加密值验证码的m个数字符,并且其中n=i+m。在该示例中,由于消息的长度对应于值和值验证码的结合长度并且因此具有相同数量的数字符,所以鉴权码中的每个数字符可以与所连接的序列的各个数字符一起在单独的算术运算(如加或减)中涉及,以构建隐藏值和值验证码的消息。可选地,消息可以通过执行包括鉴权码以及所连接的值和值验证码的逻辑运算(如XOR逻辑运算)来构建。在另一替代选项中,使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息可以涉及:仅使用所述鉴权码和所述值执行逻辑或算术运算来对所述值进行加密,并且然后将所述值验证码附加到所加密的值上来完成消息的构建。在该替代选项中,可以不加密值验证码。在该实例中,执行逻辑或算术运算可以包括算术运算,该算术运算包括例如仅涉及鉴权码和值的模算术运算。如前所述的,鉴权码和值可以包括来自包含X个数字符的数字符组中的一系列数字符,并且模算术可以使用模X算术。在该实施例中,优选地,鉴权码和值具有相同的长度,使得鉴权码中的每个数字符可以例如使用模算术被单独地添加到值的各个数字符上,由此构建对值进行加密的消息。在该实例中,对值进行加密的消息将包括对值进行加密的部分和包括值验证码的未加密部分。构建消息的其它方法也是可能的。例如不是将鉴权码添加到所连接的序列上或添加到值上,而是构建消息可以涉及从鉴权码中减去所连接的序列或值,或者反之亦然。在加或减的替代选项中,消息可以被构建为逻辑运算的结果,逻辑运算例如涉及鉴权码、值和值验证码的二进制XOR运算(异或),或者涉及鉴权码和值的二进制XOR运算,或者它们的二进制或其它表示。例如,可以连接值和值验证码的二进制表示,并且然后可以将生成的连接序列与鉴权码的二进制表示一起进行XOR,以便构建消息。在另一示例中,可以使用二进制XOR将值的二进制表示与鉴权码的二进制表示相结合来以提供逻辑结果,并且然后将值验证码附加到该结果上。可以理解,构建消息的其它方法(例如使用不同的逻辑或算术运算)也是可能的。当鉴权系统收到消息时,鉴权系统通过处理与用户装置为了构建消息而使用的鉴权密钥和码生成算法相同的鉴权密钥和码生成算法,产生预期的鉴权码。然后,通过施加用户装置为了构建消息而执行的逻辑和/或算术运算的逆逻辑和/或算术运算,鉴权系统确定或得到包含在消息中的值和值验证码。然后,鉴权系统使用相同的值验证码生成算法处理所确定的或所得到的值来产生预期的值验证码,将预期的值验证码与从消息中确定或得到的值验证码相比较。如果所得到的值验证码与预期的值验证码相匹配,则这样验证了该值并且表示用来对值进行加密的鉴权码是正确的,从而鉴权了用户装置和/或用户。在一些实施例中,标识用户装置和/或用户的信息也可以在消息中或者独立于消息被传递至鉴权系统,。例如,当鉴权系统鉴权多个用户装置时,标识信息可以用来确定用户装置可能使用哪个鉴权密钥来产生鉴权码。所述方法还可以包括在将所构建的消息传递至鉴权系统以前向用户装置和/或用户鉴权鉴权系统。以此方式,用户能够在将消息传递至鉴权服务器以前验证鉴权系统的可靠性。所述方法可以包括例如:用户装置接收在鉴权系统中基于服务器鉴权密钥使用响应生成算法产生的鉴权响应,该响应是响应于接收来自用户和/或用户装置的鉴权请求而产生的;用户装置基于服务器鉴权密钥使用相同的响应生成算法产生预期的鉴权响应;用户装置将预期的鉴权响应与鉴权响应相比较;以及如果预期的鉴权响应与所接收的鉴权响应相关联,则提示用户输入用于加密的值。服务器鉴权密钥可以与用于对值进行加密的鉴权密钥相同,或者其可以是不同的密钥。类似地,响应生成算法可以与码生成算法相同,或者其可以是不同的算法。根据另一方面,本发明提供一种验证经由通信网络传递至鉴权系统的值的方法,所述鉴权系统存储码生成算法、值验证码生成算法和与用户装置相关联的鉴权密钥,所述方法包括:所述鉴权系统接收由用户装置构建的消息;所述鉴权系统使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码;所述鉴权系统使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;所述鉴权系统使用所述值验证码生成算法处理所接收的值来产生预期的值验证码;所述鉴权系统将所述预期的值验证码与所接收的值验证码相比较;以及如果所述预期的值验证码与所接收的值验证码相关联,那么验证了所接收的值和鉴权了所述用户装置和/或用户。该方法可以允许鉴权系统通过处理单个消息验证所接收的值和鉴权用户装置和/或用户。鉴权系统可以存储与不同的用户装置相关联的多个鉴权密钥。传送至鉴权系统的进一步的信息(如标签)可以用于确定哪个鉴权密钥应该与用户装置和/或用户相关联。作为示例,标签可以包括信用卡号、账号、用户名等。使用所述值验证码生成算法处理所接收的值来产生所述预期的值验证码可以进一步包括处理所述鉴权密钥或不同的密钥。在该实例中,只有用户装置使用正确的密钥,预期的值验证码才会与所接收的值验证码相关联。因此,值验证码将起到两种用途,即验证值和鉴权用户装置和/或用户。在此方面,预期的值验证码和所接收的值验证码之间的“关联”可以指这两个值是相同的或者它们具有预期的关系。处理所述消息可以包括使用所述预期的鉴权码执行逻辑或算术运算。例如,执行逻辑或算术运算可以包括使用模算术从消息的至少一部分中减去预期的鉴权码。可以从整个消息中减去鉴权码,或者当值验证码已经被附加到被加密的PIN上时,可以在减去鉴权码以前将值验证码从消息上脱附。所述预期的鉴权码和所述消息可以包含从包括X个可能的数字符的数字符组中选择的数字符,并且模算术可以使用模X。在实施例中,所述预期的鉴权码的每个数字符可以使用模算术从所述消息的各个数字符中单独地减去。为了确保正确的用户在操作用户装置,使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码可以进一步包括处理与所述用户装置相关联的并且存储在所述鉴权系统中的PIN。在用户装置端,为了产生正确的鉴权码,用户将需要输入正确的PIN。类似地,使用所述值验证码生成算法处理所接收的值来产生预期的值验证码可以进一步包括处理与所述用户装置相关联的并且存储在所述鉴权系统中的PIN。在码生成算法和值验证码生成算法中可以使用相同的PIN。如上文所述,所述值可以是与所述用户装置相关联的用于在所述鉴权系统中存储的替换的或新的PIN。此外,为了用户装置能够在传递消息以前鉴权鉴权系统,所述方法可以包括:在接收所述消息之前,所述鉴权系统接收与所述用户装置相关联的鉴权请求;所述鉴权系统基于所述鉴权密钥使用响应生成算法产生鉴权响应;以及所述鉴权系统将所述鉴权响应传递至请求者。所述请求者可以包括用户装置或另一装置,例如连网的计算机。根据本发明实施例的另一方面,本发明提供一种经由通信网络将被输入到用户装置中的值传递至鉴权系统的方法,所述用户装置存储第一鉴权密钥、第一码生成算法和第一值鉴权码生成算法,以及所述鉴权系统存储第二鉴权密钥、第二码生成算法和第二值验证码生成算法,所述方法包括:所述用户装置使用所述第一码生成算法处理所述第一鉴权密钥来产生鉴权码;所述用户装置使用所述第一值验证码生成算法处理所述值来产生值验证码;所述用户装置使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息;将所述消息传递至所述鉴权系统;所述鉴权系统接收所述消息;
所述鉴权系统使用所述第二码生成算法处理所述第二鉴权密钥来产生预期的鉴权码;所述鉴权系统使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;所述鉴权系统使用所述第二值验证码生成算法处理所接收的值来产生预期的值验证码;所述鉴权系统将所述预期的值验证码与所接收的值验证码相比较;以及如果所述预期的值验证码与所接收的值验证码相关联,则验证所接收的值和鉴权所述用户装置。根据另一方面,本发明提供一种用户装置,所述用户装置包括:输入端,用于接收值;输出端,用于输出消息;处理器;存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现一种对被输入到所述用户装置中的所述值进行加密的方法,所述方法包括:使用所述码生成算法处理所述鉴权密钥来产生鉴权码;使用所述值验证码生成算法处理所述值来产生值验证码;使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息,以及输出所述消息,所述消息用于经由通信网络传递至鉴权系统去供所述鉴权系统处理,以确定和验证所述值并鉴权所述用户装置。所述软件可以附加地执行上面描述的方法中任一方法的步骤。在实施例中,所述用户装置包括智能卡作为输出,该智能卡包括η数字符显示器。在该实施例中,所述鉴权码可以是η数字符序列,所述值可以具有比所述鉴权码的序列长度短的序列长度,并且所述值验证码可以具有与所述鉴权码的序列长度和所述值的序列长度之间的差异对应的序列长度。这个实施例可以减少对所述值进行加密所需的处理功率,同时使用显示器中的所有数字符。所述鉴权码、所述值和所述值验证码可以都具有小于η个数字符的序列长度。根据另一方面,本发明提供一种鉴权系统,所述鉴权系统包括:通信端口 ;处理器;存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现一种方法,所述方法包括:接收消息;使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码;使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;使用所述值验证码生成算法处理所接收的值来产生预期的值验证码;将所述预期的值验证码与所接收的值验证码相比较;以及
如果所述预期的值验证码与所接收的值验证码相关联,那么验证所接收的值并鉴权所述用户装置和/或用户。所述软件可以附加地执行上面描述的方法中任一方法的步骤。本发明还扩展至包括如上所述的用户装置和鉴权系统的系统、软件本身和包含所述软件的计算机可读介质,软件本身包括一系列指令,所述一系列指令可由处理器运行来实现上面描述的方法中的任
一方法。


现在将关于附图仅通过示例描述本发明的实施例。应当理解,附图的特性不取代本发明前面描述的一般性。图1是根据本发明实施例的包括鉴权系统和用户装置的示例网络的示意图;图2是图1的鉴权系统的下层框图;图3是图1的用户装置的下层框图;图4是在图3的用户装置中对值进行加密以及在图2的鉴权系统中对该值进行验证的方法的实施例流程图;以及图5是对鉴权系统进行鉴权的方法的实施例的流程图。
具体实施例方式网络的示例本发明的实施例能够经由通信网络实现,通信网络的示例在图1中示出。图1中示出的网络20包括一个或多个用户装置和一个或多个鉴权系统。在该示例中,用户装置包括个人计算机(PC) 22和个人计算机(PC) 24,智能卡26和智能卡27,以及手持装置28。鉴权系统包括服务器30和服务器32。如图所示,用户装置22至28、鉴权系统30和鉴权系统32经由通信网络34连接,以支持电子数据通信。数据经由网络34的传送可以涉及有线数据通信或无线数据通信。鉴权系统30和鉴权系统32能够促进数据分别经由网络34和一个或多个数据库(如数据库36和数据库38)的传递。将理解,本发明的实施例可以经由不同的网络实现,如MAN (城域网)、WAN (广域网)、LAN (局域网)或因特网。此外,实施例不必须经由网络发生,因为一些实施例完全可以在用户装置或鉴权系统上发生。鉴权系统的示例图2示出根据本发明实施例的鉴权系统30的框图。鉴权系统30包括处理器42、存储器44、至少一个输入装置46、至少一个输出装置48、通信端口 50和存储装置54。如图所示,鉴权系统30的部件经由总线或一组总线56 (如数据总线、地址总线和/或控制总线)联接。处理器42可以包括不止一个处理装置,以便例如处理鉴权系统30中的不同功能。存储器44可以包括任何适合的存储器装置,并且可以包括例如易失性存储器或非易失性存储器、固态存储装置、磁性装置等。存储器44存储供处理器42运行的计算机软件程序62。
在该实施例中,存储器44还存储至少一个鉴权密钥64。多个鉴权密钥可以存储在存储器44或者数据库59中,每个鉴权密钥与不同的用户装置相关联。例如,如果鉴权系统30是用于金融机构的,那么每个鉴权密钥64可以与特定的账户或账户持有人相关联。可替代地,鉴权密钥64可以存储在鉴权系统30外部,并且鉴权系统30可以经由通信网络34访问鉴权密钥64。存储器44还存储用于产生鉴权码的码生成算法66和用于产生值验证码的值验证码生成算法68。下面将给出这些算法和鉴权密钥的更多细节。输入装置46接收输入数据58并且可以包括例如键盘、鼠标或者其它指点装置、跟踪球、操纵杆或者触摸屏、麦克风、诸如调制解调器或无线数据适配器之类的数据接收器或天线、数据采集卡等。输入装置46可以由用户操作来录入输入数据58,或者输入装置46可以从另一个输入数据源接收数据。输出装置48制造或产生输出数据60。输出装置48可以包括显示装置、一组扬声器、打印机、端口(例如USB端口)、外围部件适配器、诸如调制解调器或无线网络适配器之类的数据发送器或天线等。存储装置54可以包括任何形式的数据存储设备或信息存储设备,例如易失性存储器或非易失性存储器、固态存储装置、磁性装置等。文件系统和文件可以存储在存储装置54上。存储装置54可以容纳至少一个数据库59。通信端口 50允许鉴权系统30经由诸如网络34之类的硬线网络或无线网络与其它装置通信。适合的通信端口可以使用基于IEEE802.11的无线接口、通用分组无线服务(GPRS)兼容接口、无线应用协议(WAP)兼容接口、蓝牙接口、光接口(如IrDA接口)、ZigBee接口、通用串行总线接口(USB)接口等或者基于射频识别(RFID)感应的通信接口。在使用中,鉴权系统30可以适合于允许经由通信端口 50将数据存储在数据库59中和/或从数据库59中检索数据。鉴权系统30可以包括任何形式的终端、服务器处理系统、专门的硬件、计算机、计算机系统或者计算机化的装置、个人计算机(PC)、移动电话或蜂窝电话、移动数据终端、便携式计算机、个人数字助理(PDA)、寻呼机、智能卡或者任何其它类型的装置。用户装置的示例图3示出根据本发明实施例的用户装置27的框图。如图所示,在该示例中,用户装置27是智能卡,该智能卡包括呈键盘70形式的输入、呈显示器72形式的输出、处理器74、存储器76和电源78。在该示例中,键盘70是12按键键盘,该12按键键盘包含数字符O至9以及两个用于执行用户装置27的选择和控制操作的附加按键。用户可以使用键盘70将诸如PIN之类的值输入到用户装置27中。显示器72是8数字符的字母数字IXD显示器。处理器74是用于运行在存储器76中驻留的计算机软件程序80的微处理器或微控制器。适合的处理器74的示例是6502、ARM、摩托罗拉6800、德州仪器MSP430。电源78可以包括电池或感应线圈,以将电能供应至处理器74和用户装置27的其它功能组件。存储器76包括在处理器74上装载的只读存储器(R0M),如EPROM或EEPR0M。然而,存储器76可以位于处理器74外部是可能的。存储器76还可以包括随机存取存储器(RAM),以向处理器74提供工作存储器。存储器76存储供处理器74运行的计算机软件程序80 ο智能卡还可以起信用卡或借记卡的作用,并且可以包括磁条、集成电路或者用于存储与卡相关联的更多信息的其它组件。该信息可以被适合的读卡器读取(参见图2),以转发至鉴权系统30。智能卡还可以包括上文所述的用于与鉴权系统30进行数据通信的通信端口(参见图2)。尽管上面描述的用户装置27的示例是呈智能卡的形式,但是更多实施例可以以其它形式实施当然是可能的。例如,用户装置可以包括装备有适合的处理基础结构的移动装置,如移动电话、个人数字助理(PDA)、笔记本计算机、手持式计算机等。类似地,用户装置可以包括编制有可运行的软件程序的台式计算机。因此,将理解,用户装置可以包括许多不同的硬件“平台”。用户装置27的存储器76存储鉴权密钥82。鉴权密钥82可以用于接入特定服务,例如电子数据交换服务(例如网上银行服务、股票交易服务、在线购物服务等)、计算机网络服务(例如网络登录服务)、通信服务(例如电子邮件服务或者消息收发服务)、会员类服务(例如在线论坛、汽车租赁服务或者卫生服务)、安全服务(例如建筑接入服务)等。可替代地,鉴权密钥82可以允许接入多个不同的服务。在实施例中,存储器76可以存储多个鉴权密钥,每个鉴权密钥用于接入特定的服务或多个特定的服务。可以要求用户选择特定的服务来向用户装置27指示应使用哪个鉴权密钥。鉴权密钥82是与用户装置27相关联的密钥,如种子、代码或数据序列。在该示例中,鉴权密钥82是存储在用户装置27的存储器76中的256位共享密钥。鉴权密钥82与存储在鉴权系统30的存储器4 4中的用于特定服务的鉴权密钥64相同。在存储器76中还存储两种算法。这些算法包括码生成算法84和值验证码生成算法86,码生成算法84和值验证码生成算法86与在鉴权系统30中存储的算法66和68相同。下面提供适合的码生成算法84和适合的值验证码生成算法86的示例。示例码生成算法该不例中的码生成算法66和码生成算法84是:
,《STEPI》繼 EMCODE (',
<_E LlllGTa>l IUISi<'\
<KODE SECRET KOR (.'
,■
■' 、<mm cmmm> §
<mm f¥ps> §
■<MODE INSfANCl> δ
<wm> - J
' 1I
"
■I ' '
■I,'其中〈STEPI>是鉴权码,〈CODE LENGTH〉是待生成的鉴权码的长度,〈MODE SECRET〉是用于标识模式类型的鉴权密钥,〈MODE COUNTER)是在用户装置和鉴权系统之间同步的计数器,〈MODE TYPE〉是代表特定模式类型的数字,〈MODE INSTANCE〉是模式的实例(例如如果用户装置具有带有相同〈MODE TYPE〉值的不止一个模式(例如两个一次性密码(OTP)模式)),〈PIN〉是与用户装置27或者用户相关联的现有PIN (即旧PIN),XOR是逻辑“异或”运算,并且“&”表示附加。在该示例中,码生成算法66、84可以使用与用于对值(在该示例中是新PIN)进行加密的不同算法相关联的不同“模式”。例如,“模式”可以包括一次性密码模式、双向响应模式或者考虑用户输入数据的模式。该模式可以依赖于所接入的服务,并且将与该模式对应,因此与鉴权系统中使用的算法相对应。码生成算法66、84仅能在单个模式下工作是可能的,在此情况下可以省略模式参数MODE TYPE和MODE INSTANCE。HASH可以是任何适合的散列函数,例如MD5、SHA-l、SHA-224、SHA-256、SHA-384或SHA-512。在该示例中,散列函数是SHA-256函数。ENCODE还可以是任何编码函数。在该示例中,ENCODE使用下面的公式将HASH的256位结果(DATA)转换成具有〈CODE LENGTH)长度的鉴权码:数字符N = DATA[(48+(N*8))...(48+((N+1) *8)-1) ]M0D10d其中N等于O至(〈CODE LENGTH>_1 ),并且DATA是HASH函数的256位结果,在该示例中,该结果是SHA-256散列函数。当然可以理解,上面的公式不旨在是限制性示例,并且因此可以使用用于对HASH进行编码的其它函数。在下面的示例中,表I中示出了〈CODE LENGTH>=3和256位HASH (十六进制)的
结果:
权利要求
1.一种对被输入到用户装置内的值进行加密的方法,所述用户装置存储鉴权密钥、码生成算法和值验证码生成算法,所述方法包括: 所述用户装置使用所述码生成算法处理所述鉴权密钥来产生鉴权码; 所述用户装置使用所述值验证码生成算法处理所述值来产生值验证码;以及 所述用户装置使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息,所述消息用于经由通信网络传递至鉴权系统去供所述鉴权系统进行处理,以确定和验证所述值并且鉴权所述用户装置和/或用户。
2.根据权利要求1所述的方法,其中使用所述值验证码生成算法处理所述值来产生值验证码进一步包括: 处理所述鉴权密钥或者不同的密钥。
3.根据权利要求1或权利要求2所述的方法,其中使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息包括: 执行至少包括所述鉴权码和所述值的逻辑或算术运算。
4.根据权利要求3所述的方法,其中执行所述逻辑或算术运算包括: 连接所述值和值验证码来提供连接 的序列,以及 使用模算术将所述鉴权码添加至所连接的序列上。
5.根据权利要求4所述的方法,其中所述鉴权码、所述值和所述值验证码包括来自包括X个数字符的数字符组的一系列数字符,并且其中所述模算术包括模X算术。
6.根据权利要求4或权利要求5所述的方法,其中所述鉴权码是η数字符序列,其中所述值具有比所述鉴权码的序列长度短的序列长度,并且其中所述值验证码具有与所述鉴权码的序列长度和所述值的序列长度之间的差异对应的序列长度。
7.根据权利要求6所述的方法,其中所述鉴权码中的每个数字符被单独地添加至所连接的序列的各个数字符上。
8.根据权利要求1至权利要求7中任一项所述的方法,其中使用所述码生成算法处理所述鉴权密钥来产生鉴权码进一步包括: 处理由所述用户装置的用户输入的PIN。
9.根据权利要求1至权利要求7中任一项所述的方法,其中使用所述值验证码生成算法处理所述值来产生值验证码进一步包括: 处理由所述用户装置的用户输入的PIN。
10.根据权利要求1至权利9中任一项所述的方法,其中所述值是用于在所述鉴权系统中存储的替换PIN。
11.一种对经由通信网络传递至鉴权系统的值进行验证的方法,所述鉴权系统存储与用户装置、码生成算法和值验证码生成算法相关联的鉴权密钥,所述方法包括: 所述鉴权系统接收由用户装置构建的消息; 所述鉴权系统使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码; 所述鉴权系统使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码; 所述鉴权系统使用所述值验证码生成算法处理所接收的值来产生预期的值验证码; 所述鉴权系统将所述预期的值验证码与所接收的值验证码相比较;并且如果所述预期的值验证码与所接收的值验证码相关联,那么验证所接收的值并鉴权所述用户装置和/或用户。
12.根据权利要求11所述的方法,其中使用所述值验证码生成算法处理所接收的值来产生所述预期的值验证码进一步包括: 处理所述鉴权密钥或者不同的密钥。
13.根据权利要求11或权利要求12所述的方法,其中处理所述消息包括: 使用所述预期的鉴权码执行逻辑或算术运算。
14.根据权利要求13所述的方法,其中执行所述逻辑或算术运算包括: 使用模算术从所述消息的至少一部分中减去所述预期的鉴权码。
15.根据权利要求14所述的方法,其中所述预期的鉴权码和所述消息包括从由X个数字符组成的组中选择的数字符,并且其中所述模算术使用模X算术。
16.根据权利要求15所述的方法,其中所述预期的鉴权码中的每个数字符被单独地从所述消息的各个数字符中减去。
17.根据权利要求11至权利要求16中任一项所述的方法,其中使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码进一步包括: 处理与所述用户装置相关联的并存储在所述鉴权系统中的PIN。
18.根据权利要求11至权利要求16中任一项所述的方法,其中使用所述值验证码生成算法处理所接收的值来产生预期 的值验证码进一步包括: 处理与所述用户装置相关联的并存储在所述鉴权系统中的PIN。
19.根据权利要求11至权利要求18中任一项所述的方法,其中所述值是与所述用户装置相关联的用于在所述鉴权系统中存储的替换PIN。
20.一种经由通信网络将被输入到用户装置内的值传递至鉴权系统的方法,所述用户装置存储第一鉴权密钥、第一码生成算法和第一值验证码生成算法,并且所述鉴权系统存储第二鉴权密钥、第二码生成算法和第二值验证码生成算法,所述方法包括: 所述用户装置使用所述第一码生成算法处理所述第一鉴权密钥来产生鉴权码; 所述用户装置使用所述第一值验证码生成算法处理所述值来产生值验证码; 所述用户装置使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息; 将所述消息传递至所述鉴权系统; 所述鉴权系统接收所述消息; 所述鉴权系统使用所述第二码生成算法处理所述第二鉴权密钥来产生预期的鉴权码; 所述鉴权系统使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码; 所述鉴权系统使用所述第二值验证码生成算法处理所接收的值来产生预期的值验证码; 所述鉴权系统将所述预期的值验证码与所接收的值验证码相比较;以及如果所述预期的值验证码与所接收的值验证码相关联,那么验证所接收的值并鉴权所述用户装置和/或用户。
21.一种用户装置包括: 输入端,用于接收值; 输出端,用于输出消息; 处理器; 存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现对被输入所述用户装置内的值进行加密的方法,所述方法包括: 使用所述码生成算法处理所述鉴权密钥来产生鉴权码; 使用所述值验证码生成算法处理所述值来产生值验证码; 使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息;以及输出所述消息,所述消息用于经由通信网络传递至鉴权系统去供所述鉴权系统处理,以确定和验证所述值并且鉴权所述用户装置和/或用户。
22.根据权利要求21所述的用户装置,其中所述输出端是η数字符显示器,所述鉴权码是η数字符序列,所述值具有比所述鉴权码的序列长度短的序列长度,并且所述值验证码具有与所述鉴权码的序列长度和所述值的序列长度之间的差异对应的序列长度。
23.根据权利要求21所述的用户装置,其中所述输出端是η数字符显示器,并且其中所述鉴权码、所述值和 所述值验证码都具有小于η个数字符的序列长度。
24.—种鉴权系统包括: 通信端口 ; 处理器; 存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现一种方法,所述方法包括: 接收消息; 使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码; 使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码; 使用所述值验证码生成算法处理所接收的值来产生预期的值验证码; 将所述预期的值验证码与所接收的值验证码相比较;以及 如果所述预期的值验证码与所接收的值验证码相关联,那么验证所接收的值并鉴权所述用户装置和/或用户。
25.—种系统包括: 根据权利要求21所述的用户装置;以及 根据权利要求24所述的鉴权系统。
26.一种与用户装置一起使用的软件,所述用户装置包括处理器和用于存储所述软件的关联的存储器,所述软件包括: 一系列指令,所述一系列指令可由所述处理器运行来实现根据权利要求1至权利要求10中任一项的方法。
27.一种与鉴权系统一起使用的软件,所述鉴权系统包括处理器和用于存储所述软件的关联的存储器,所述软件包括: 一系列指令,所述一系列指令可由所述处理器运行来实现根据权利要求11至权利要求19中任一项的方法。
28.一种计算机可读介质,包括: 如权利要求26或权 利要求27所述的软件。
全文摘要
本发明公开一种对被输入到存储有鉴权密钥、码生成算法和值验证码生成算法的用户装置内的值进行加密的方法。该方法包括用户装置使用码生成算法处理鉴权密钥来产生鉴权码;以及用户装置使用值验证码生成算法处理值来产生值验证码。该方法还包括用户装置使用鉴权码、值和值验证码来构建对值进行加密的消息,该消息用于经由通信网络传递至鉴权系统去供鉴权系统处理,以确定和验证值和鉴权用户装置和/或用户。还公开了一种将被输入到用户装置内的值传递至鉴权系统并验证这样传递的值的方法,以及相关联的用户装置和鉴权系统。
文档编号H04W12/00GK103155478SQ201180043504
公开日2013年6月12日 申请日期2011年7月18日 优先权日2010年7月23日
发明者詹姆斯·伊万·列侬 申请人:Emue控股集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1