CN103155478A - 加密装置及加密方法 - Google Patents
加密装置及加密方法 Download PDFInfo
- Publication number
- CN103155478A CN103155478A CN2011800435046A CN201180043504A CN103155478A CN 103155478 A CN103155478 A CN 103155478A CN 2011800435046 A CN2011800435046 A CN 2011800435046A CN 201180043504 A CN201180043504 A CN 201180043504A CN 103155478 A CN103155478 A CN 103155478A
- Authority
- CN
- China
- Prior art keywords
- value
- user
- identifying code
- code
- authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- User Interface Of Digital Computer (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开一种对被输入到存储有鉴权密钥、码生成算法和值验证码生成算法的用户装置内的值进行加密的方法。该方法包括:用户装置使用码生成算法处理鉴权密钥来产生鉴权码;以及用户装置使用值验证码生成算法处理值来产生值验证码。该方法还包括:用户装置使用鉴权码、值和值验证码来构建对值进行加密的消息,该消息用于经由通信网络传递至鉴权***去供鉴权***处理,以确定和验证值和鉴权用户装置和/或用户。还公开了一种将被输入到用户装置内的值传递至鉴权***并验证这样传递的值的方法,以及相关联的用户装置和鉴权***。
Description
技术领域
本发明大体涉及用于对经由非置信的或非安全的通信网络传递的值(例如个人标识号(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无线接口、接口、接口、无线USB、非接触式智能卡接口等。其它适合的无线通信接口将是技术人员所熟知的。
优选地,使用所述码生成算法处理所述鉴权密钥来产生所述鉴权码包括编码过程,该编码过程通过向鉴权密钥施加适合的散列函数或者可能向涉及鉴权密钥和其它数据的逻辑函数的结果施加适合的散列函数,将鉴权码转换成n数字符鉴权码。适合的散列函数可以包括例如MD5、SHA-1、SHA-224、SHA-256、SHA-384或SHA-512。如将理解的,散列函数对输入(在此实例中输入是鉴权密钥或者是涉及鉴权密钥或其它数据的逻辑运算的结果)进行转换并提供固定长度的散列值输出。
当码生成算法施加将涉及鉴权密钥和其它数据的逻辑运算的结果作为输入的散列函数时,适合的逻辑运算可以包括例如XOR逻辑运算。然而,可以使用其它逻辑运算是可能的。其它数据可以通过附加诸如同步计数器值和/或标识码(如旧PIN)和/或用户装置的模式信息之类的数据值来形成。同步计数器值可以是与鉴权***上的对应计数器同步的计数值,以在鉴权过程以后产生或更新用户装置和鉴权***上新的鉴权密钥。在与涉及鉴权密钥的逻辑运算一起的其它数据中包括标识码,可以协助确保正确的用户在使用用户装置。
在一个实施例中,用户需要将旧的PIN输入或录入到用户装置内,以激活用户装置执行该方法。
优选地,使用所述值验证码生成算法处理所述值来产生值验证码包括编码过程,该编码过程通过向所述值施加适合的散列函数或者可能向涉及所述值和由用户装置的用户输入或录入的其它数据(如旧PIN)的逻辑运算的结果施加适合的散列函数,将所述值转换成m个数字符的值验证码。因此,旧的PIN可以在鉴权码生成算法和值验证码生成算法中使用。用于产生值验证码的逻辑运算还可以涉及鉴权密钥或实际上包括不同的密钥。因此,在值验证码生成过程中涉及旧PIN和/或鉴权密钥的实施例可以产生值验证码,该值验证码可以由鉴权***处理来验证值和鉴权用户装置(经由鉴权密钥)和/或用户(经由旧PIN)。于是因此,值验证码可以起到两种作用,即验证值和鉴权用户装置和/或用户。
使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息可以包括执行至少包括所述鉴权码和所述值的逻辑或算术运算。然而,在一些实施例中,逻辑或算术运算可以附加地涉及值验证码。
逻辑或算术运算可以包括:将值和值验证码连接来形成包括值和值验证码的连接结果,以及然后使用模算术将鉴权码添加至所连接的结果上。在该实例中,将鉴权码添加到所连接的结果上构建了对值和值验证码进行加密的消息。
优选地,鉴权码、值和值验证码每个分别都被形成为来自由X个的可能数字符组成的数字符组中的数字符的序列。在该方面,当术语“数字符(digit)”在本说明书中使用时,术语“数字符”应被理解为表示数字、字符、符号等。可以理解,数字符可以使用多个二进制位来表示。例如,数字“9”可以用二进制表示为“1001”。在该示例中,数字符是从由“0”到“9”的十个数字符组成的组中选择的数字“9”。由X个可能的数字符组成的数字符组可以包括来自ASCII字符集(换句话说,由128个不同数字符组成的数字符组)、扩展的ASCII字符集(换句话说,由255个不同数字符组成的数字符组)或者ASCII字符子集的数字符,在此实例中,每个数字符可以表示为8位二进制序列或二字符二进制编码的十进制序列。
在每个各自的数字符序列包括来自由X个可能的数字符组成的数字符组中的数字符并且使用模算术来构建消息的实施例中,模算术可以使用模X算术。使用模X算术可以确保对每个被加密的值构建唯一可逆(即可解密的)消息。换句话说,被加密的值可以是唯一可解密的,以恢复或重新构建由消息加密的值。因此,使用相同鉴权码通过构建消息加密的两个不同值会导致不同的唯一且可逆的构建消息。
在实施例中,所构建的消息是N数字符消息,因此具有N个数字符的“长度”。鉴权码可以具有与所构建的消息的长度相同的长度或者可以具有比所构建的消息的长度短的长度。因此,例如鉴权码可以包括n数字符码,这里n=N。
优选地,所述值具有比所述鉴权码的长度短的长度,并且所述值验证码具有与所述鉴权码的长度和所述值的长度之间的差异对应的长度,使得值和值验证码的结合长度对应于鉴权码的长度。以此方式,通过选择适合的算术或逻辑运算,所构建的消息可以具有与鉴权码的长度相对应的长度,并且所构建的消息的每个数字符可以加密值或值验证码的各个数字符。例如,假设鉴权码具有n个数字符的长度,那么所构建的消息也可以具有n个数字符的长度,其中n个数字符包括加密值的i个数字符以及加密值验证码的m个数字符,并且其中n=i+m。在该示例中,由于消息的长度对应于值和值验证码的结合长度并且因此具有相同数量的数字符,所以鉴权码中的每个数字符可以与所连接的序列的各个数字符一起在单独的算术运算(如加或减)中涉及,以构建隐藏值和值验证码的消息。可选地,消息可以通过执行包括鉴权码以及所连接的值和值验证码的逻辑运算(如XOR逻辑运算)来构建。
在另一替代选项中,使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息可以涉及:仅使用所述鉴权码和所述值执行逻辑或算术运算来对所述值进行加密,并且然后将所述值验证码附加到所加密的值上来完成消息的构建。在该替代选项中,可以不加密值验证码。在该实例中,执行逻辑或算术运算可以包括算术运算,该算术运算包括例如仅涉及鉴权码和值的模算术运算。如前所述的,鉴权码和值可以包括来自包含X个数字符的数字符组中的一系列数字符,并且模算术可以使用模X算术。在该实施例中,优选地,鉴权码和值具有相同的长度,使得鉴权码中的每个数字符可以例如使用模算术被单独地添加到值的各个数字符上,由此构建对值进行加密的消息。在该实例中,对值进行加密的消息将包括对值进行加密的部分和包括值验证码的未加密部分。
构建消息的其它方法也是可能的。例如不是将鉴权码添加到所连接的序列上或添加到值上,而是构建消息可以涉及从鉴权码中减去所连接的序列或值,或者反之亦然。在加或减的替代选项中,消息可以被构建为逻辑运算的结果,逻辑运算例如涉及鉴权码、值和值验证码的二进制XOR运算(异或),或者涉及鉴权码和值的二进制XOR运算,或者它们的二进制或其它表示。例如,可以连接值和值验证码的二进制表示,并且然后可以将生成的连接序列与鉴权码的二进制表示一起进行XOR,以便构建消息。在另一示例中,可以使用二进制XOR将值的二进制表示与鉴权码的二进制表示相结合来以提供逻辑结果,并且然后将值验证码附加到该结果上。可以理解,构建消息的其它方法(例如使用不同的逻辑或算术运算)也是可能的。
当鉴权***收到消息时,鉴权***通过处理与用户装置为了构建消息而使用的鉴权密钥和码生成算法相同的鉴权密钥和码生成算法,产生预期的鉴权码。然后,通过施加用户装置为了构建消息而执行的逻辑和/或算术运算的逆逻辑和/或算术运算,鉴权***确定或得到包含在消息中的值和值验证码。然后,鉴权***使用相同的值验证码生成算法处理所确定的或所得到的值来产生预期的值验证码,将预期的值验证码与从消息中确定或得到的值验证码相比较。如果所得到的值验证码与预期的值验证码相匹配,则这样验证了该值并且表示用来对值进行加密的鉴权码是正确的,从而鉴权了用户装置和/或用户。
在一些实施例中,标识用户装置和/或用户的信息也可以在消息中或者独立于消息被传递至鉴权***,。例如,当鉴权***鉴权多个用户装置时,标识信息可以用来确定用户装置可能使用哪个鉴权密钥来产生鉴权码。
所述方法还可以包括在将所构建的消息传递至鉴权***以前向用户装置和/或用户鉴权鉴权***。以此方式,用户能够在将消息传递至鉴权服务器以前验证鉴权***的可靠性。所述方法可以包括例如:
用户装置接收在鉴权***中基于服务器鉴权密钥使用响应生成算法产生的鉴权响应,该响应是响应于接收来自用户和/或用户装置的鉴权请求而产生的;
用户装置基于服务器鉴权密钥使用相同的响应生成算法产生预期的鉴权响应;
用户装置将预期的鉴权响应与鉴权响应相比较;以及
如果预期的鉴权响应与所接收的鉴权响应相关联,则提示用户输入用于加密的值。
服务器鉴权密钥可以与用于对值进行加密的鉴权密钥相同,或者其可以是不同的密钥。类似地,响应生成算法可以与码生成算法相同,或者其可以是不同的算法。
根据另一方面,本发明提供一种验证经由通信网络传递至鉴权***的值的方法,所述鉴权***存储码生成算法、值验证码生成算法和与用户装置相关联的鉴权密钥,所述方法包括:
所述鉴权***接收由用户装置构建的消息;
所述鉴权***使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码;
所述鉴权***使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;
所述鉴权***使用所述值验证码生成算法处理所接收的值来产生预期的值验证码;
所述鉴权***将所述预期的值验证码与所接收的值验证码相比较;以及
如果所述预期的值验证码与所接收的值验证码相关联,那么验证了所接收的值和鉴权了所述用户装置和/或用户。
该方法可以允许鉴权***通过处理单个消息验证所接收的值和鉴权用户装置和/或用户。
鉴权***可以存储与不同的用户装置相关联的多个鉴权密钥。传送至鉴权***的进一步的信息(如标签)可以用于确定哪个鉴权密钥应该与用户装置和/或用户相关联。作为示例,标签可以包括信用***、账号、用户名等。
使用所述值验证码生成算法处理所接收的值来产生所述预期的值验证码可以进一步包括处理所述鉴权密钥或不同的密钥。在该实例中,只有用户装置使用正确的密钥,预期的值验证码才会与所接收的值验证码相关联。因此,值验证码将起到两种用途,即验证值和鉴权用户装置和/或用户。在此方面,预期的值验证码和所接收的值验证码之间的“关联”可以指这两个值是相同的或者它们具有预期的关系。
处理所述消息可以包括使用所述预期的鉴权码执行逻辑或算术运算。例如,执行逻辑或算术运算可以包括使用模算术从消息的至少一部分中减去预期的鉴权码。
可以从整个消息中减去鉴权码,或者当值验证码已经被附加到被加密的PIN上时,可以在减去鉴权码以前将值验证码从消息上脱附。
所述预期的鉴权码和所述消息可以包含从包括X个可能的数字符的数字符组中选择的数字符,并且模算术可以使用模X。在实施例中,所述预期的鉴权码的每个数字符可以使用模算术从所述消息的各个数字符中单独地减去。
为了确保正确的用户在操作用户装置,使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码可以进一步包括处理与所述用户装置相关联的并且存储在所述鉴权***中的PIN。在用户装置端,为了产生正确的鉴权码,用户将需要输入正确的PIN。
类似地,使用所述值验证码生成算法处理所接收的值来产生预期的值验证码可以进一步包括处理与所述用户装置相关联的并且存储在所述鉴权***中的PIN。在码生成算法和值验证码生成算法中可以使用相同的PIN。
如上文所述,所述值可以是与所述用户装置相关联的用于在所述鉴权***中存储的替换的或新的PIN。此外,为了用户装置能够在传递消息以前鉴权鉴权***,所述方法可以包括:在接收所述消息之前,
所述鉴权***接收与所述用户装置相关联的鉴权请求;
所述鉴权***基于所述鉴权密钥使用响应生成算法产生鉴权响应;以及
所述鉴权***将所述鉴权响应传递至请求者。
所述请求者可以包括用户装置或另一装置,例如连网的计算机。
根据本发明实施例的另一方面,本发明提供一种经由通信网络将被输入到用户装置中的值传递至鉴权***的方法,所述用户装置存储第一鉴权密钥、第一码生成算法和第一值鉴权码生成算法,以及所述鉴权***存储第二鉴权密钥、第二码生成算法和第二值验证码生成算法,所述方法包括:
所述用户装置使用所述第一码生成算法处理所述第一鉴权密钥来产生鉴权码;
所述用户装置使用所述第一值验证码生成算法处理所述值来产生值验证码;
所述用户装置使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息;
将所述消息传递至所述鉴权***;
所述鉴权***接收所述消息;
所述鉴权***使用所述第二码生成算法处理所述第二鉴权密钥来产生预期的鉴权码;
所述鉴权***使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;
所述鉴权***使用所述第二值验证码生成算法处理所接收的值来产生预期的值验证码;
所述鉴权***将所述预期的值验证码与所接收的值验证码相比较;以及
如果所述预期的值验证码与所接收的值验证码相关联,则验证所接收的值和鉴权所述用户装置。
根据另一方面,本发明提供一种用户装置,所述用户装置包括:
输入端,用于接收值;
输出端,用于输出消息;
处理器;
存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及
软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现一种对被输入到所述用户装置中的所述值进行加密的方法,所述方法包括:
使用所述码生成算法处理所述鉴权密钥来产生鉴权码;
使用所述值验证码生成算法处理所述值来产生值验证码;
使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息,以及
输出所述消息,所述消息用于经由通信网络传递至鉴权***去供所述鉴权***处理,以确定和验证所述值并鉴权所述用户装置。
所述软件可以附加地执行上面描述的方法中任一方法的步骤。在实施例中,所述用户装置包括智能卡作为输出,该智能卡包括n数字符显示器。在该实施例中,所述鉴权码可以是n数字符序列,所述值可以具有比所述鉴权码的序列长度短的序列长度,并且所述值验证码可以具有与所述鉴权码的序列长度和所述值的序列长度之间的差异对应的序列长度。这个实施例可以减少对所述值进行加密所需的处理功率,同时使用显示器中的所有数字符。所述鉴权码、所述值和所述值验证码可以都具有小于n个数字符的序列长度。
根据另一方面,本发明提供一种鉴权***,所述鉴权***包括:
通信端口;
处理器;
存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及
软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现一种方法,所述方法包括:
接收消息;
使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码;
使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;
使用所述值验证码生成算法处理所接收的值来产生预期的值验证码;
将所述预期的值验证码与所接收的值验证码相比较;以及
如果所述预期的值验证码与所接收的值验证码相关联,那么验证所接收的值并鉴权所述用户装置和/或用户。
所述软件可以附加地执行上面描述的方法中任一方法的步骤。本发明还扩展至包括如上所述的用户装置和鉴权***的***、软件本身和包含所述软件的计算机可读介质,软件本身包括一系列指令,所述一系列指令可由处理器运行来实现上面描述的方法中的任一方法。
附图说明
现在将关于附图仅通过示例描述本发明的实施例。应当理解,附图的特性不取代本发明前面描述的一般性。
图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按键键盘包含数字符0至9以及两个用于执行用户装置27的选择和控制操作的附加按键。用户可以使用键盘70将诸如PIN之类的值输入到用户装置27中。显示器72是8数字符的字母数字LCD显示器。
处理器74是用于运行在存储器76中驻留的计算机软件程序80的微处理器或微控制器。适合的处理器74的示例是6502、ARM、摩托罗拉6800、德州仪器MSP430。电源78可以包括电池或感应线圈,以将电能供应至处理器74和用户装置27的其它功能组件。
存储器76包括在处理器74上装载的只读存储器(ROM),如EPROM或EEPROM。然而,存储器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的存储器44中的用于特定服务的鉴权密钥64相同。
在存储器76中还存储两种算法。这些算法包括码生成算法84和值验证码生成算法86,码生成算法84和值验证码生成算法86与在鉴权***30中存储的算法66和68相同。下面提供适合的码生成算法84和适合的值验证码生成算法86的示例。
示例码生成算法
该示例中的码生成算法66和码生成算法84是:
其中<STEP1>是鉴权码,<CODE LENGTH>是待生成的鉴权码的长度,<MODESECRET>是用于标识模式类型的鉴权密钥,<MODE COUNTER>是在用户装置和鉴权***之间同步的计数器,<MODE TYPE>是代表特定模式类型的数字,<MODEINSTANCE>是模式的实例(例如如果用户装置具有带有相同<MODE TYPE>值的不止一个模式(例如两个一次性密码(OTP)模式)),<PIN>是与用户装置27或者用户相关联的现有PIN(即旧PIN),XOR是逻辑“异或”运算,并且“&”表示附加。
在该示例中,码生成算法66、84可以使用与用于对值(在该示例中是新PIN)进行加密的不同算法相关联的不同“模式”。例如,“模式”可以包括一次性密码模式、双向响应模式或者考虑用户输入数据的模式。该模式可以依赖于所接入的服务,并且将与该模式对应,因此与鉴权***中使用的算法相对应。码生成算法66、84仅能在单个模式下工作是可能的,在此情况下可以省略模式参数MODETYPE和MODE INSTANCE。
HASH可以是任何适合的散列函数,例如MD5、SHA-1、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)]MOD10d
其中N等于0至(<CODE LENGTH>-1),并且DATA是HASH函数的256位结果,在该示例中,该结果是SHA-256散列函数。当然可以理解,上面的公式不旨在是限制性示例,并且因此可以使用用于对HASH进行编码的其它函数。
在下面的示例中,表1中示出了<CODE LENGTH>=3和256位HASH(十六进制)的结果:
表1
ENCODE函数使用下面的公式将HASH的256位结果(DATA)转换成具有3个数字符(数字符0、数字符1、数字符2)长度的鉴权码:
数字符0=Data[48..55]MOD10d=88h MOD10d=136d MOD10d=6
数字符1=Data[56..63]MOD10d=5Bh MOD10d=91d MOD10d=1
数字符2=Data[64..71]MOD10d=E4h MOD10d=228d MOD10d=8
ENCODE的结果以及因此<STEP1>会是三数字符的值:
<STEP1>=618。
换句话说,在该示例中,鉴权码=618。在该实例中,通过运用散列函数HASH,ENCODE函数将256位鉴权密钥转换成为n数字符鉴权码,在该示例中n数字符鉴权码是3位鉴权码。3位鉴权码可以用来构建对2位值和1位值验证码进行加密的3位消息,或者用来构造对3位值进行加密的消息。
在该示例中,计数器(MODE COUNTER)是在用户装置27和鉴权***之间同步以加强安全性的计数值。作为示例,每次在用户装置和鉴权***之间传递消息来验证一方或另一方,计数器增长,并且使用该计数器来增长鉴权密钥,从而产生新的鉴权密钥。计数器是可选的,并且可替代地,每次对值进行加密时,可以使用相同的鉴权密钥。
示例值验证码生成算法
在该示例中,值验证码(VVC)生成算法68和86是:
其中<PIN LENGTH>是被加密的值的长度,<MODE SECRET>、<MODECOUNTER>、<MODE TYPE>、<MODE INSTANCE>、<PIN>、HASH、ENCODE、XOR和“&”如上文所述,<SEPARATOR>是常数(在该实例中是十六进制值“FE”),并且<NEW PIN>是被加密的值。在本示例中,包括分离器仅是为了提供用于分隔PIN(即旧PIN)和NEW PIN的方便机制。
将理解,上面的示例仅仅是分别用于产生鉴权码和值验证码的适合算法的两个示例,并且能够使用其它算法。例如,在XOR步骤中可以涉及不同的变形或者较少的变形,并且不需要使用PIN(即旧PIN)。另外,如果用户装置27在单个模式下工作,那么诸如<MODE COUNTER>、<MODE TYPE>、<MODE INSTANCE>之类的值将是不适用的。另外,可以使用其它信息(如账号)或附加的用户输入值。
此外,不同的密钥可以在值验证码生成算法中使用而不是在码生成算法中使用,或者值验证码生成算法可以实际上完全不使用密钥,而是作为替代可以使用别的方法产生值验证码。
对值进行加密的示例
图4示出根据本发明实施例的对被输入到用户装置27内的值进行加密的方法100。在该示例中,值是用于在鉴权***30中存储的替换PIN。
现在参考图3和图4,在步骤102中,用户101使用用户装置27的键盘70选择PIN改变选项。如下文将描述的,PIN改变选项的选择可以要求用户101输入由鉴权***30产生的鉴权响应,以使用户装置27能对鉴权***30进行鉴权。然而,当在任何情况下都对所传递的值进行加密时,该步骤是可选的。
在步骤103中,用户装置27提示用户101输入替换PIN。在步骤104中,用户101将替换PIN或者新PIN输入到键盘70中,例如数字符序列“9876”代表替换PIN或新PIN。为了确保正确地输入替换PIN或新PIN,软件80可以提示用户101重新输入替换PIN。
然后,在步骤105中,软件80提示用户101输入现有PIN(即旧PIN),在步骤106中,用户101输入现有PIN。例如,现有PIN可以是数字符序列“1234”。
在步骤108中,软件80使用码生成算法84处理鉴权密钥82来产生鉴权码。在该示例中,使用下面的十六进制值:
在该示例中,如上文所述,<MODE TYPE>、<MODE INSTANCE>、<MODECOUNTER>是可选的,并且包括<MODE TYPE>、<MODE INSTANCE>、<MODECOUNTER>仅仅是为了呈现在码生成算法中可能涉及的附加数据的示例。
在该示例中还应注意,“1234”的值(在该实例中是现有PIN)被转换成其十六进制格式的ASCII表示。这种方法允许使用例如包括文字数字的值(如包括文字数字的PIN)以及可能使用不包括文字数字的值。
在该示例中,码生成算法84然后对上面的参数作如下处理:
因此,鉴权码被产生为n个数字符的码(这里n=8):
鉴权码=38491078
在步骤110中,软件80使用值验证码生成算法86对值进行处理来产生值验证码。
用于<MODE SECRET>的值(即鉴权密钥)、用于<MODE COUNTER>的值、用于<MODE TYPE>的值、用于<MODE INSTANCE>的值和用于<PIN>的值是如上文给出的值。另外,
<SEPARATOR>=FE
<NEW PIN>=39 38 37 36
<PIN LENGTH>=4
再次,在该示例中,“9876”的值(其在该示例中是新PIN)被转换成其十六进制格式(即“39383736”)的ASCII表示,以供处理。然后值验证码生成算法86对上面的参数作如下处理:
因此,值验证码被产生为m个数字符的码(这里m=4):
值验证码=3256
在步骤112中,软件80使用鉴权码(38491078)、值(9876)以及值鉴权码(3256)来构建用于对值(9876)进行加密的消息。在该示例中,涉及作为运算对象的全部三个值的算术运算被用来构建该消息。在该运算中,将值和值验证码连接,以提供连接序列(98763256),然后使用模10算术将鉴权码添加至连接的序列,每个数字符被单独地添加如下:
<MESSAGE>=<STEP1>ADD(<NEW PIN>&<VVC>)
<STEP1> | 3 | 8 | 4 | 9 | 1 | 0 | 7 | 8 |
<NEW PIN> | 9 | 8 | 7 | 6 | ||||
<VVC> | 3 | 2 | 5 | 6 | ||||
<MESSAGE> | 2 | 6 | 1 | 5 | 4 | 2 | 2 | 4 |
表2
其中,ADD是模10加运算。
在该示例中,应注意,值验证码<VVC>被连接至4个数字符的值<NEW PIN>的末端,然而,还可能的是,值验证码可以连接在值的起始端,或者可以通过其它数字符与值分离。实际上,值验证码可以附加至消息的末端,而不是被加至鉴权码<STEP1>上。
此外,在该示例中,值验证吗<VVC>被选择成具有与鉴权码<STEP1>的长度(在该示例中是8个数字符)和值(NEW PIN)的长度(在该示例中是4个数字符)之间的差异对应的序列长度。因此,在该示例中,值包括4个数字符,鉴权码包括8个数字符并且值验证码包括4个数字符。类似地,如果值<NEW PIN>包括6个数字符并且鉴权码包括8个数字符,那么值验证码(VVC)可以包括2个数字符。将理解,鉴权码<STEP1>中数字符的数目与所连接的值和值验证码相比可以是不同的。然而令人希望是,如果鉴权码的长度不大于值的长度,那么至少应等于值的长度。
另外,该示例使用模10加,因为鉴权码、值和值验证码包含从包括10个数字符(0、1、2、3、4、5、6、7、8和9)的数字符组从选择的一系列数字符。然而,如果数字符是从包括X个数字符的数字符组中选择的,那么可以使用模X算术运算(例如模X加或模X减)构建消息。
然后,在步骤113中,所构建的消息(即26154224)被传递至或输出至用户101,例如消息可以被输出以在用户装置27的8数字符显示器72上显示。消息(26154224)用于经由通信网络34传递至鉴权***30去由鉴权***30进行处理,以确定和验证值(9876)和鉴权用户装置27和/或用户101。
在步骤114中,用户101通过适当的方式将消息传递至鉴权***30。如果用户101有权访问个人计算机24,那么将消息传递至鉴权***30可以涉及用户101将消息手动地输入到个人计算机24中,去经由网络34传送至鉴权***30。在其它替代选项中,用户装置27可以连网(例如如果用户装置是移动电话或PDA)鉴权***30,并且在没有进一步用户输入的情况下直接将消息传送至鉴权***30。在更其它的替代选项中,另一装置(例如自动柜员机)可以从用户装置27(例如***)中读取消息,并且将消息传送至鉴权***30。在这些替代选项中,用户101不需要知道消息的值。
用户101(或者用户装置27)将与用户装置27相关联的附加信息(例如信用***、账号、账户名等)与消息一起传递至鉴权***30。这样的信息可以用来标识要求传递消息的用户和/或卡,并且因此确定哪个鉴权密钥和PIN与用户装置27相关联。然而,附加信息与消息一起传递不是必须的,因为可以在传递消息以前或者以后提供附加信息。
验证值的示例
在该示例中,鉴权***30经由通信端口50接收消息。鉴权***30使用附加信息来确定哪个鉴权密钥和PIN与用户装置27相关联并且检索那些鉴权密钥和PIN来处理所接收的消息,从而验证值和鉴权用户101和/或用户装置27。
在步骤116中,鉴权***30中的软件62使用码生成算法66处理鉴权密钥64来产生预期的鉴权码<STEP1#>。该算法重复上文所述的在用户装置27中执行的码生成算法84的步骤。如果由用户装置27使用的鉴权密钥82与鉴权***30所使用的鉴权密钥64相同,那么应当获得相同的鉴权码(例如“38491078”)。然后在步骤118中,鉴权***30使用预期的鉴权码(例如“38491078”)处理消息(例如“26154224”),以得出所接收的值<NEW PIN#>和所接收的值验证码<VVC#>。
在该示例中,处理消息涉及使用模10算术从消息中减去预期的鉴权码来对消息解码如下:
<NEW PIN#>&<VVC#>=<MESSAGE>SUBTRACT<STEPl#>
<MESSAGE> | 2 | 6 | 1 | 5 | 4 | 2 | 2 | 4 |
<STEP1#> | 3 | 8 | 4 | 9 | 1 | 0 | 7 | 8 |
<NEW PIN#>&<VVC#> | 9 | 8 | 7 | 6 | 3 | 2 | 5 | 6 |
表3
在该示例中,使用模10减,因为这是用户装置27为了构建消息而施加的运算(即模10加)的逆运算。
在上面的示例中,<NEW PIN#>是鉴权***30从消息中得到的新PIN值,<VVC#>是所得到的值验证码,以及<STEP1#>是由鉴权***30产生的预期的鉴权码。
在该示例中,预期的鉴权码<STEP1#>的每个数字符是使用模10算术单独地从所接收的消息的各个数字符中减去的。因此,在本实例中,鉴权***30从而确定所接收的值“9876”和所接收的值验证码“3256”。
可以预先确定值和值验证码的序列长度,使得鉴权***30能够确定<NEWPIN#>&<VVC#>的哪些数字符与值末端相关联以及哪些数字符与值验证相关联。可替代地,长度可以和消息一起传递至鉴权***30,以允许可变长度的PIN。
在步骤120,鉴权***30中的软件62使用值验证码生成算法68处理所接收的值“9876”来产生预期的值验证码<VVC_EXP>。该算法重复上文所述的在用户装置27中执行的值验证码生成算法86的步骤。如果消息已被正确地传送,那么应当获得相同的值验证码“3256”。在步骤122中,软件62将预期的值验证码<VVC_EXP>与所接收的值验证码<VVC#>相比较。如果两个码相关联,那么鉴权***30验证所接收的值<VVC#>并且鉴权用户装置27和/或用户101。如果值验证码<VVC#>是有效的,那么鉴权***30将用替换PIN“9876”取代存储在存储器44或数据库59中的现有PIN“1234”,从而更新与用户装置27相关联的PIN。如果两个码不相关联,那么不更新PIN。在步骤124中,鉴权***30向用户装置27传递PIN已经被更新。
对鉴权***进行鉴权的示例
如上文所述,PIN改变选项的选择可以要求用户101输入由鉴权***30产生的鉴权响应。现在将结合图5描述这样的鉴权响应的示例。如上文所述,该鉴权方法是可选的。可以使用其它方法来向用户装置27鉴权鉴权***30,或者当值被加密发送时,根本不需要对鉴权***30进行鉴权。
在图5所示的方法128中,在步骤130中,用户将鉴权请求传递至鉴权***30。鉴权请求可以经由用户装置27或者经由诸如连网的计算机或自动柜员机之类的另一装置来传递。在步骤132中,鉴权***30中的软件62使用例如二进制编码的十进制加法(binary coded decimal addition)增长计算器,并且使用新的计数器增长鉴权密钥如下。
例如:
在步骤134中,软件62基于新的鉴权密钥64使用鉴权响应生成算法产生鉴权响应。
其中<AUTHENTICATION MESSAGE LENGTH>是鉴权响应的长度。
例如:
在步骤136中,鉴权***30将鉴权响应(“429501”)经由例如与用于传递鉴权请求的通信方式相同的通信方式传递至用户101。
在步骤138中,用户101接收鉴权响应并将鉴权响应(“429501”)输入到用户装置27的键盘70中。在步骤140中,用户装置27中的软件80基于相同的鉴权密钥(MODE SECRET)使用相同的鉴权响应生成算法产生预期的鉴权响应。这是通过首先做出计数器和密钥的拷贝来完成的:
<TMP MODE COUNTER>=<MODE COUNTER>
<TMP MODE SECRET>=<MODE SECRET>
然后,软件80使用下面的算法增长临时计数器(TMP MODE COUNTER)和临时密钥(TMP MODE SECRET),直到(TMP MODE COUNTER MOD10)等于所接收的鉴权响应的最后2个数字符为止:
软件80计算预期的鉴权响应如下:
软件80将预期的鉴权响应与所接收的鉴权响应相比较,如果鉴权响应与所接收的鉴权响应相关联,那么表示鉴权***30被鉴权。作为响应,在步骤142中,软件80提示用户101输入待加密的值(等同于步骤103)。如果发现匹配的鉴权响应,那么还更新<MODE SECRET>和<MODE COUNTER>:
<MODE COUNTER>=<TMP MODE COUNTER>
<MODE SECRET>=<TMP MODE SECRET>
应当理解,可以在不背离本发明的范围的条件下向前面描述的部分做出各种变化、增加和/或修改,并且应当理解,鉴于上面的教导,本发明可以以本领域的技术人员会理解的多种方式实现在软件、固件和/或硬件中。
本申请可以用作一个或多个未来申请的优先权的基础,并且任何这样的未来申请的权利要求可以针对在本申请中描述的任一特征或特征的组合。任何这样的未来申请可以包括下面的权利要求中的一个或多个权利要求,下面的权利要求是作为示例给出的并且对于任何未来申请中可能要求保护的内容而言,下面的权利要求是非限制性的。
Claims (28)
1.一种对被输入到用户装置内的值进行加密的方法,所述用户装置存储鉴权密钥、码生成算法和值验证码生成算法,所述方法包括:
所述用户装置使用所述码生成算法处理所述鉴权密钥来产生鉴权码;
所述用户装置使用所述值验证码生成算法处理所述值来产生值验证码;以及
所述用户装置使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息,所述消息用于经由通信网络传递至鉴权***去供所述鉴权***进行处理,以确定和验证所述值并且鉴权所述用户装置和/或用户。
2.根据权利要求1所述的方法,其中使用所述值验证码生成算法处理所述值来产生值验证码进一步包括:
处理所述鉴权密钥或者不同的密钥。
3.根据权利要求1或权利要求2所述的方法,其中使用所述鉴权码、所述值和所述值验证码来构建对所述值进行加密的消息包括:
执行至少包括所述鉴权码和所述值的逻辑或算术运算。
4.根据权利要求3所述的方法,其中执行所述逻辑或算术运算包括:
连接所述值和值验证码来提供连接的序列,以及
使用模算术将所述鉴权码添加至所连接的序列上。
5.根据权利要求4所述的方法,其中所述鉴权码、所述值和所述值验证码包括来自包括X个数字符的数字符组的一系列数字符,并且其中所述模算术包括模X算术。
6.根据权利要求4或权利要求5所述的方法,其中所述鉴权码是n数字符序列,其中所述值具有比所述鉴权码的序列长度短的序列长度,并且其中所述值验证码具有与所述鉴权码的序列长度和所述值的序列长度之间的差异对应的序列长度。
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所述的用户装置,其中所述输出端是n数字符显示器,所述鉴权码是n数字符序列,所述值具有比所述鉴权码的序列长度短的序列长度,并且所述值验证码具有与所述鉴权码的序列长度和所述值的序列长度之间的差异对应的序列长度。
23.根据权利要求21所述的用户装置,其中所述输出端是n数字符显示器,并且其中所述鉴权码、所述值和所述值验证码都具有小于n个数字符的序列长度。
24.一种鉴权***包括:
通信端口;
处理器;
存储器,存储鉴权密钥、码生成算法和值验证码生成算法;以及
软件,驻留在可由所述处理器访问的存储器中,所述软件包括一系列指令,所述一系列指令可由所述处理器运行来实现一种方法,所述方法包括:
接收消息;
使用所述码生成算法处理所述鉴权密钥来产生预期的鉴权码;
使用所述预期的鉴权码处理所述消息来确定所接收的值和所接收的值验证码;
使用所述值验证码生成算法处理所接收的值来产生预期的值验证码;
将所述预期的值验证码与所接收的值验证码相比较;以及
如果所述预期的值验证码与所接收的值验证码相关联,那么验证所接收的值并鉴权所述用户装置和/或用户。
25.一种***包括:
根据权利要求21所述的用户装置;以及
根据权利要求24所述的鉴权***。
26.一种与用户装置一起使用的软件,所述用户装置包括处理器和用于存储所述软件的关联的存储器,所述软件包括:
一系列指令,所述一系列指令可由所述处理器运行来实现根据权利要求1至权利要求10中任一项的方法。
27.一种与鉴权***一起使用的软件,所述鉴权***包括处理器和用于存储所述软件的关联的存储器,所述软件包括:
一系列指令,所述一系列指令可由所述处理器运行来实现根据权利要求11至权利要求19中任一项的方法。
28.一种计算机可读介质,包括:
如权利要求26或权利要求27所述的软件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2010903315A AU2010903315A0 (en) | 2010-07-23 | Encryption device and method | |
AU2010903315 | 2010-07-23 | ||
PCT/AU2011/000904 WO2012021918A1 (en) | 2010-07-23 | 2011-07-18 | Encryption device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103155478A true CN103155478A (zh) | 2013-06-12 |
Family
ID=45604599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800435046A Pending CN103155478A (zh) | 2010-07-23 | 2011-07-18 | 加密装置及加密方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20130166913A1 (zh) |
EP (1) | EP2596593A1 (zh) |
JP (1) | JP2013535903A (zh) |
CN (1) | CN103155478A (zh) |
AU (1) | AU2011291427A1 (zh) |
BR (1) | BR112013001728A2 (zh) |
CA (1) | CA2809144A1 (zh) |
SG (1) | SG187187A1 (zh) |
WO (1) | WO2012021918A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106031207A (zh) * | 2013-12-02 | 2016-10-12 | 万事达卡国际股份有限公司 | 用于向不带有安全元件的移动设备安全传送远程通知服务消息的方法及*** |
CN106846697A (zh) * | 2014-03-10 | 2017-06-13 | 泉州市诺伊曼信息科技股份公司 | 一种防盗信息*** |
CN107154920A (zh) * | 2016-03-04 | 2017-09-12 | 神讯电脑(昆山)有限公司 | 安全信息的加密方法、解密方法及用以接收安全信息的接收装置 |
CN114117376B (zh) * | 2022-01-28 | 2022-04-15 | 蘑菇物联技术(深圳)有限公司 | 身份认证的方法、分配动态密码的方法及相应的设备 |
CN115694599A (zh) * | 2021-07-31 | 2023-02-03 | 华为技术有限公司 | 一种传输方法、***及相关装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG194267A1 (en) * | 2012-05-03 | 2013-11-29 | C3S Pte Ltd | Method and system for protecting a password during an authentication process |
US11080701B2 (en) | 2015-07-02 | 2021-08-03 | Royal Bank Of Canada | Secure processing of electronic payments |
CA3126471A1 (en) | 2012-10-17 | 2014-04-17 | Royal Bank Of Canada | Virtualization and secure processing of data |
US11210648B2 (en) | 2012-10-17 | 2021-12-28 | Royal Bank Of Canada | Systems, methods, and devices for secure generation and processing of data sets representing pre-funded payments |
US11080700B2 (en) | 2015-01-19 | 2021-08-03 | Royal Bank Of Canada | Secure processing of electronic payments |
CN107004190A (zh) | 2014-10-10 | 2017-08-01 | 加拿大皇家银行 | 用于处理电子交易的*** |
US11354651B2 (en) | 2015-01-19 | 2022-06-07 | Royal Bank Of Canada | System and method for location-based token transaction processing |
US11599879B2 (en) | 2015-07-02 | 2023-03-07 | Royal Bank Of Canada | Processing of electronic transactions |
CN106656913A (zh) * | 2015-10-28 | 2017-05-10 | 珠海金山办公软件有限公司 | 一种数字验证码的生成方法及装置 |
CN108959128B (zh) * | 2018-06-04 | 2023-03-31 | 浙江大学 | Crypt-SHA512加密算法的加速装置与方法 |
US12021861B2 (en) * | 2021-01-04 | 2024-06-25 | Bank Of America Corporation | Identity verification through multisystem cooperation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083393A1 (en) * | 2002-10-24 | 2004-04-29 | Jordan Royce D. | Dynamic password update for wireless encryption system |
CN1726670A (zh) * | 2002-05-10 | 2006-01-25 | 哈里公司 | 安全的无线局域网或城域网及相关方法 |
US20090320107A1 (en) * | 2007-06-12 | 2009-12-24 | Francisco Corella | Secure password reset for application |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03211932A (ja) * | 1990-01-17 | 1991-09-17 | Hitachi Ltd | データ端末装置の通信制御方法 |
JPH0553990A (ja) * | 1991-08-22 | 1993-03-05 | Nippon Denki Computer Syst Kk | 数字列を用いたパスワードの暗号化、複合化方式 |
GB0126426D0 (en) * | 2001-11-03 | 2002-01-02 | Royal Holloway University Of L | Authentication of a remote user to a host in a data communication system |
US7266842B2 (en) * | 2002-04-18 | 2007-09-04 | International Business Machines Corporation | Control function implementing selective transparent data authentication within an integrated system |
GB2387999B (en) * | 2002-04-24 | 2004-03-24 | Richard Mervyn Gardner | Sequential authentication with infinitely variable codes |
US7346167B2 (en) * | 2002-05-10 | 2008-03-18 | Harris Corporation | Secure mobile ad-hoc network and related methods |
JP2005012466A (ja) * | 2003-06-18 | 2005-01-13 | Denso Corp | メッセージ認証方法及びメッセージ認証システム |
AU2005318933B2 (en) * | 2004-12-21 | 2011-04-14 | Emue Holdings Pty Ltd | Authentication device and/or method |
US20080104411A1 (en) * | 2006-09-29 | 2008-05-01 | Agrawal Pankaj O | Methods and apparatus for changing passwords in a distributed communication system |
US9123042B2 (en) * | 2006-10-17 | 2015-09-01 | Verifone, Inc. | Pin block replacement |
US8503679B2 (en) * | 2008-01-23 | 2013-08-06 | The Boeing Company | Short message encryption |
US20100217708A1 (en) * | 2009-02-26 | 2010-08-26 | Arthur Vanmoor | Superior identification system using numbers |
US20120260324A1 (en) * | 2009-11-06 | 2012-10-11 | Emue Holdings Pty Ltd. | Method and a system for validating identifiers |
-
2011
- 2011-07-18 SG SG2013005657A patent/SG187187A1/en unknown
- 2011-07-18 JP JP2013520925A patent/JP2013535903A/ja active Pending
- 2011-07-18 EP EP11817561.1A patent/EP2596593A1/en not_active Withdrawn
- 2011-07-18 WO PCT/AU2011/000904 patent/WO2012021918A1/en active Application Filing
- 2011-07-18 CA CA2809144A patent/CA2809144A1/en not_active Abandoned
- 2011-07-18 AU AU2011291427A patent/AU2011291427A1/en not_active Abandoned
- 2011-07-18 CN CN2011800435046A patent/CN103155478A/zh active Pending
- 2011-07-18 BR BR112013001728A patent/BR112013001728A2/pt not_active IP Right Cessation
- 2011-07-18 US US13/811,896 patent/US20130166913A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1726670A (zh) * | 2002-05-10 | 2006-01-25 | 哈里公司 | 安全的无线局域网或城域网及相关方法 |
US20040083393A1 (en) * | 2002-10-24 | 2004-04-29 | Jordan Royce D. | Dynamic password update for wireless encryption system |
US20090320107A1 (en) * | 2007-06-12 | 2009-12-24 | Francisco Corella | Secure password reset for application |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106031207A (zh) * | 2013-12-02 | 2016-10-12 | 万事达卡国际股份有限公司 | 用于向不带有安全元件的移动设备安全传送远程通知服务消息的方法及*** |
CN106031207B (zh) * | 2013-12-02 | 2019-12-13 | 万事达卡国际股份有限公司 | 用于向不带有安全元件的移动设备安全传送远程通知服务消息的方法及*** |
US11334890B2 (en) | 2013-12-02 | 2022-05-17 | Mastercard International Incorporated | Method and system for secure authentication of user and mobile device without secure elements |
CN106846697A (zh) * | 2014-03-10 | 2017-06-13 | 泉州市诺伊曼信息科技股份公司 | 一种防盗信息*** |
CN107154920A (zh) * | 2016-03-04 | 2017-09-12 | 神讯电脑(昆山)有限公司 | 安全信息的加密方法、解密方法及用以接收安全信息的接收装置 |
CN115694599A (zh) * | 2021-07-31 | 2023-02-03 | 华为技术有限公司 | 一种传输方法、***及相关装置 |
CN114117376B (zh) * | 2022-01-28 | 2022-04-15 | 蘑菇物联技术(深圳)有限公司 | 身份认证的方法、分配动态密码的方法及相应的设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2596593A1 (en) | 2013-05-29 |
BR112013001728A2 (pt) | 2016-05-31 |
SG187187A1 (en) | 2013-02-28 |
US20130166913A1 (en) | 2013-06-27 |
CA2809144A1 (en) | 2012-02-23 |
AU2011291427A1 (en) | 2013-03-14 |
JP2013535903A (ja) | 2013-09-12 |
WO2012021918A1 (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103155478A (zh) | 加密装置及加密方法 | |
CN101647228B (zh) | 用于证书分发的***和方法 | |
US8214888B2 (en) | Two-factor USB authentication token | |
KR102613422B1 (ko) | 트랜잭션 메시징 | |
CN102461064A (zh) | 用户认证装置和方法 | |
CN101651675B (zh) | 通过认证码对客户端进行验证的方法和*** | |
CN107113175A (zh) | 多用户强认证令牌 | |
CN108090761A (zh) | 基于可信二维码的区块链代币支付方法 | |
CN105052072A (zh) | 远程认证和业务签名 | |
CN102315942A (zh) | 一种带蓝牙的安全终端及其与客户端的通信方法 | |
WO2012028867A1 (en) | Payment method suitable for a mobile communication device | |
CN101017562A (zh) | 一种基于通信网络的电子***的生成和交互使用方法 | |
CN101216915B (zh) | 安全移动支付方法 | |
CN102571357A (zh) | 一种签名的实现方法和装置 | |
CN201166864Y (zh) | 一种电子交易监控设备 | |
CN101212301B (zh) | 一种认证设备及认证方法 | |
CN113726512A (zh) | 密钥生成和分发方法、密钥生成装置、密钥管理*** | |
CN101098223A (zh) | 一种网络用户密码加密的方法及其装置 | |
CN103870959A (zh) | 批量电子交易的处理方法及电子签名设备 | |
CN100574192C (zh) | 一种基于usb协议的信息安全设备及其通信方法 | |
CN101330685B (zh) | 短信息加密传输的方法 | |
US11275869B2 (en) | Credit card and operating method therefor | |
CN112668353A (zh) | 巴枪认证方法、装置、设备和存储介质 | |
JP5300026B2 (ja) | Icカードシステムにおけるカード認証システム | |
CN1526112A (zh) | 卡读取器和用于读卡的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130612 |