带有多个旋转安全密钥的非接触式卡

文档序号:195497 发布日期:2021-11-02 浏览:28次 >En<

阅读说明:本技术 带有多个旋转安全密钥的非接触式卡 (Contactless card with multiple rotating security keys ) 是由 杰弗里·鲁尔 斯里尼瓦沙·希古鲁帕蒂 凯文·奥斯本 于 2021-04-30 设计创作,主要内容包括:非接触式卡可以包括用于特定操作(例如,加密或签名通信)的多个密钥。非接触式卡还可以包括使用密钥选择模块的小应用程序。密钥选择模块可以选择多个密钥中的一个,并且小应用程序可以使用密钥来,例如使用加密或签名算法对通信进行加密或签名。非接触式卡可以通过客户端设备将加密或签名的通信发送到主机。主机可以重复非接触式设备的密钥选择技术来选择相同的密钥,从而解密或验证通信。(The contactless card may include a plurality of keys for specific operations (e.g., encryption or signature communication). The contactless card may also include an applet that uses a key selection module. The key selection module may select one of a plurality of keys, and the applet may use the key to encrypt or sign the communication, for example using an encryption or signing algorithm. The contactless card may send the encrypted or signed communication to the host through the client device. The host may repeat the key selection technique of the contactless device to select the same key to decrypt or verify the communication.)

带有多个旋转安全密钥的非接触式卡

背景技术

非接触式卡最近非常流行,因为这些卡简化了店内交易和在线交易。同时,由于这些卡的普及,黑客积极尝试伪造非接触式卡进行未经授权的交易。因此,人们重新把焦点放在加强这些卡的安全上。

发明内容

可以加密通信,使未经授权的收件人无法确定通信内容。存在用于加密通信的各种技术。当使用对称密码算法,例如加密算法、基于哈希的消息认证码(HMAC)算法和基于密码的消息认证码(CMAC)算法时,重要的是密钥在最初使用对称算法和密钥处理受保护的数据的一方和使用相同密码算法和相同密钥接收和处理数据的一方之间保持是秘密的。

暴力攻击可以包括系统地检查所有可能的密钥,直到找到正确的密钥。黑客经常使用暴力攻击来窃取存储在非接触式卡上的密钥。因此,同样的密钥不被使用太多次是很重要的。如果密钥使用或重复使用太频繁,则该密钥可能会受到损害。每次使用密钥时,它向攻击者提供额外的数据样本,该数据样本由密码算法使用相同的密钥处理的。攻击者拥有使用相同密钥处理的数据越多,攻击者会发现密钥值的可能性就越大。经常使用的密钥可能会遭受各种不同的攻击。

而且,每次执行对称密码算法时,它都可以揭示关于对称密码操作期间使用的密钥的信息,例如侧信道数据。侧信道数据可以包括在使用密钥的同时密码算法执行时发生的微小功率波动。可以对侧信道数据进行足够的测量,以至于揭示足以允许攻击者恢复密钥的有关密钥的足够信息。使用相同的密钥交换数据将重复揭示由相同的密钥处理的数据。

然而,通过限制使用特定密钥的次数,攻击者能够收集的侧信道数据量受到限制,从而减少了对这种攻击类型的暴露。因此,本公开的目的是实施一种密码系统,其通过实施多个安全密钥来增强非接触式卡抵御此类攻击的安全性。在一个示例实施例中,非接触式卡可以包括用于特定操作(例如,加密或签名通信)的多个密钥。非接触式卡还可以包括使用密钥选择模块的小应用程序。密钥选择模块可以选择多个密钥中的一个,并且小应用程序可以使用密钥来,例如使用加密或签名算法加密或签名通信。非接触式卡可以通过终端或客户端设备将加密或签名的通信发送到主机。主机可以重复或复制非接触式设备的密钥选择技术以选择相同的密钥,从而解密或验证通信。例如,主机可以使用与非接触式卡相同的密钥选择模块或算法。因此,主机的密钥选择模块可以选择与非接触式卡选择的密钥相同的密钥。使用相同的密钥,主机可以解密或验证通信的真实性。

在一个示例实施例中,密钥选择模块可以接收输入并基于输入选择密钥。输入可以由非接触式卡或外部设备(例如,终端或主机)提供。密钥选择模块可以执行将输入分配给存储在非接触式卡上的密钥中的一个的数学算法或函数。

在一个示例实施例中,非接触式卡可以存储多个加密算法。此外,非接触式卡可以包括加密算法选择模块。对于每个加密操作,加密算法选择模块当被执行时,可以选择多个加密算法中的一个。使用所选择的加密算法和所选择的密钥,非接触式卡可以加密通信,并将加密的通信传送到终端。

下文参照以下描述并在附图中说明的具体示例实施例,更详细地解释了公开设计的进一步特征及其由此提供的优势。

附图说明

图1示出了根据示例实施例的非接触式卡。

图2示出了根据示例实施例的终端或客户端设备。

图3示出了服务器或主机的示例性硬件组件。

图4示出了用于将信息从非接触式卡传输到主机的示例流程图。

具体实施方式

实施例的以下描述提供了参考数字的非限制性代表性示例,以具体描述本发明的不同方面的特征和教导。应该认识到所描述的实施例能够与来自实施例的描述的其他实施例以分开方式或组合方式实施。审阅实施例的描述的本领域普通技术人员应当能够学习和理解本发明的不同描述方面。实施例的描述应促进对本发明的理解,使得未具体涵盖但在已经阅读了实施例的描述的本领域技术人员的知识范围内的其他实施方式将被理解为与本发明的应用一致。

非接触式卡可以包括基板和用于存储和处理信息的处理电路。处理电路可以包括处理器、存储器、错误和奇偶校验/CRC校验器、数据编码器、防冲突算法、控制器、命令解码器、安全原语和防篡改硬件。

非接触式卡的尺寸可以与支付卡、信用卡或借记卡的尺寸相同。根据ISO/IEC7810标准的ID-1,非接触式卡的尺寸可以是85.60毫米×53.98毫米(3.37英寸×2.13英寸)。然而,根据这些公开的非接触式卡可以具有不同的尺寸,并且非接触式卡不必以支付卡来实施。

信息的存储可以发生在处理电路的存储器中,存储器可以是只读存储器、一次写入多次读取存储器或读/写存储器,例如RAM、ROM和EEPROM。非接触式卡可以包括这些存储器中的一个或多个。只读存储器可在工厂编程为只读的或一次性可编程的。一次性可编程性提供了一次写入然后多次读取的机会。一次写入/多次读取存储器可以在存储器芯片出厂后的某一时间进行编程。一旦存储器被编程,它就不能被重写,但它可以被多次读取。读/写存储器出厂后可被多次编程和重新编程。它也可以被多次读取。

非接触式卡的存储器可分为几个区域,每个区域具有不同的安全级别。非接触式卡处理器可以跟踪哪些存储器地址属于哪些区域以及在什么情况下可以访问每个区域。非接触式卡处理器也可以处理信息并将信息存储到存储器上。在示例实施例中,非接触式卡存储器可分为四个区域:秘密区域、机密区域、使用区域和公共区域。

秘密区域可用于存储仅可以由处理器本身使用的信息,例如,口令(password)、密码密钥。存储在该区域中的信息在非接触式卡之外不可读。在实施例中,可以使用能够执行密码功能的单独处理器来实现秘密区域。密码密钥可以传递到秘密区域,或者可以在秘密区域中生成,并且在这两种中的任何一种情况下,密钥都可以存储在秘密区域中并用于支持密码服务。如果需要,可以从秘密区域导出密码密钥。

在示例实施例中,非接触式卡可以是JavaCard,其可以包括一个或多个小应用程序。小应用程序可以被防火墙保护,并且数据可以分配给小应用程序进行存储。数据可以事务性地存储在EEPROM闪存中,例如,如果断电时写入未完成,则内容与之前相同。

机密区域可用于存储与该卡进行的所有交易的列表。机密区域可以具有口令保护。在示例实施例中,口令仅为发卡机构所知,发卡机构可以检查卡的历史,以获得系统误用的证据。机密区域可以具有只读访问限制,使得无法修改存储在该区域中的信息,例如,无法修改交易列表。

使用区域可用于存储可定期更新或修改的信息。根据数据的敏感性,可以为该区域实施口令。使用区域可以具有由口令保护的读取和写入访问。

公共区域可用于保存非敏感信息,例如发卡机构的名称和地址。公共区域可以具有只读访问,无需口令。

在一个示例实施例中,非接触式卡的存储器可以存储多个密钥。这些密钥可用于各种操作,例如,加密或签名。此外,非接触式卡可以存储多个加密算法。存储器还可以存储密钥选择模块和加密选择模块。使用密钥选择模块,非接触式卡的小应用程序可以选择用于非接触式卡的操作(例如,加密)的密钥。使用加密算法选择模块,非接触式卡可以选择加密算法对通信进行加密。

非接触式卡可与终端进行无线通信。例如,非接触式卡可以是信用卡,其包括磁带或射频标识(“RFID”)标签。一些非接触式卡可以包括磁带和RFID标签两者。

如果非接触式卡保持接近终端,则终端可以与非接触式卡通信。终端可以使用使用射频感应的近场通信(“NFC”)技术在短距离内读取非接触式卡。非接触式卡可以包括感应器以捕获由终端传送的一些入射射频询问信号,对该信号进行整流,并使用该信号为卡的处理电路供电。因此,非接触式卡可以在没有内部电源的情况下工作。然而,在一些实施例中,非接触式卡可以包括内部电源。

非接触式卡可以符合EMV要求。Europeay、MasterCard和Visa(“EMV”)是基于智能支付卡的技术标准的支付方法。EMV卡除了磁条外,还可以将其数据存储在集成电路上。

接触式卡的标准可基于ISO/IEC 7816,而非接触式卡的标准可基于ISO/IEC14443。

图1示出了根据示例实施例的非接触式卡100。在本实施例中,非接触式卡100可以是由服务提供者101发行的支付卡,其名称可以显示在非接触式卡100的前面或背面。非接触式卡100的尺寸可以符合ISO/IEC 7810标准的ID-1,即85.60毫米×53.98毫米。非接触式卡100可以包括用于建立与接触端子的接触的接触垫102。非接触式卡100还可以包括图1中未显示的处理电路、天线和其他组件(例如,一个或多个微处理器和一个或多个存储器)。这些组件可以位于接触垫102的后面,但是,应当理解,这些组件也可以位于非接触式卡100内的其他位置,并且不需要位于非接触式卡100的后面。非接触式卡100还可以包括显示在卡的前面或背面的各种标识信息103。非接触式卡100还可以包括可位于卡的背面的磁条或磁带。

在一个示例实施例中,非接触式卡100可以包括电源和定时器。定时器可以由电源供电。例如,当处理交易或加密消息时,非接触式卡的处理器可以从定时器接收时间信号。处理器可以基于时间信号加密消息、选择密钥或选择加密算法。在一个示例实施例中,非接触式卡可以从终端、客户端设备或主机接收时间信号。在本实施例中,非接触式卡可以基于接收到的时间信号来加密消息或选择密钥。

在另一个示例中,非接触式卡100的小应用程序可以包括计数器模块。计数器模块可以维护可以对事件的发生次数进行计数的计数数字。例如,该模块可以计算非接触式卡与终端、客户端设备或主机交互的次数。每次在终端处扫描非接触式卡时,非接触式卡的处理器可以向计数器模块发送信号以使计数数字递增。

在示例实施例中,非接触式卡具有射频识别(“RFID”)标签。在一些实施例中,RFID标签可以包括用于存储和处理信息的处理电路,所述信息调制和解调射频信号(通常从终端、读写器或扫描仪接收)。RFID标签还可以包括用于接收和传送信号的天线。另外,RFID标签可以包括用于从入射终端信号收集DC功率的电源或装置。这些装置可以包括调制器、电压调节器、复位和到天线的连接。天线可以是电偶极天线或线圈天线。

在示例实施例中,非接触式卡的线圈可以作为空心变压器的次级。终端可以通过断电或调幅与非接触式卡进行通信。非接触式卡可以利用非接触式卡的电源连接中的间隙推断从终端传送的数据,该间隙在功能上通过电容器维持。非接触式卡可以通过切换非接触式卡的线圈上的负载或负载调制进行通信。通过干扰可以在终端的线圈中检测到负载调制。

终端可以从非接触式卡读取信息并将信息写到非接触式卡上。在一些实施例中,终端可以将信息从非接触式卡传递到主机(或服务器),并将信息从主机写入非接触式卡。在一些实施例中,主机可以是终端。终端可为非接触式卡供电,并将卡的硬件接口通信地连接到主机。由于非接触式卡的处理器可以控制进出卡的存储器的实际信息流,因此终端可以以只是将信息发送到主机的最小处理能力来操作。在一个实施例中,终端可以是支付终端。在其他实施例中,终端可以是诸如手机、智能电话、笔记本电脑、台式机、可穿戴设备等的客户端设备。

在一些实施例中,终端可以包括处理器和收发机。终端的处理器可以解码从非接触式卡接收的任何数据。终端还可以更新、删除或修改存储在非接触式卡上的信息。

终端通过将数据传递到非接触式卡的处理器,可以在非接触式卡上写入数据。处理器可以处理数据并将其存储在非接触式卡的存储器中。终端可以与ISO 14443中描述的非接触式卡进行双向通信。非接触式卡可以包括RFID标签。双向通信可以被数字编码。可以存在用于双向通信的几个频率范围和几个专有格式(例如,125MHz范围内的HID)。13.56MHz频率范围(NFC)由ISO 14443兼容卡控制。

终端和非接触式卡可以交换消息,其可以包括命令或数据。例如,终端可以向非接触式卡发送命令消息,非接触式卡可以在其处理器中处理命令消息,并且非接触式卡可以将响应消息发送回终端。命令消息和响应消息中的每个都可以包括数据。消息可以包括TLV(类型、长度和值)数据和诸如STORE DATA命令之类的命令,该命令提示将消息中包括的数据存储在非接触式卡中。

图2示出了根据示例实施例的终端200。在该示例实施例中,终端200可以包括显示屏201。该显示屏可以是任何类型的显示屏,例如,LCD显示屏。终端200还可以包括小键盘202。使用小键盘202,客户可以向终端200输入信息。终端200还可以包括用于将芯片卡插入终端200的开口203。使用开口203,客户可以将芯片卡插入终端200中,使得终端200的引脚可以与芯片卡的接触垫电连接。在一些实施例中,终端200可以包括磁卡开口204。使用磁卡开口204,客户可以在终端200处刷非接触式卡,并且终端200可以获得存储在非接触式卡的磁带上的任何信息。

在示例实施例中,终端200可以是非接触式RFID终端,其可以包括用于发送和接收信号的天线、收发机和用于解码数据的处理器。在无源系统中,终端可以传送能量场,其可以唤醒标签并为其芯片供电,从而使其能够传送或存储数据。反过来,标签将无线电信号转换为可用功率,并以无线电信号的形式响应终端。信号可以包括标签的身份和其他信息。一旦终端接收到响应,终端就转换响应并提取无线电信号中包含的任何信息。然后,从标签收集的信息通过通信接口传送到主机系统,其中数据可以存储在数据库中或由计算机系统进行分析。终端还可以更新、删除或修改存储在非接触式卡上的信息。

在图2的示例实施例中,终端200具有一个或多个天线(未显示),其使得设备能够从非接触式卡读取信息并在非接触式卡上写入信息。终端200可以包括指示器205,其显示设备可以是非接触式的。

在本公开中,术语读写器、扫描仪、终端和客户端设备可以互换使用,并且它们都是指可以扫描非接触式卡和/或在非接触式卡上写入信息的设备。

在一些实施例中,终端可以通信地连接到主机、后端服务器或服务器。在其他实施例中,终端可以集成在主机(或服务器)中。主机可以从非接触式卡(例如,通过终端)接收加密或签名的通信,并且可以解密通信或验证通信的真实性。

图3示出了主机或后端服务器的示例性硬件组件。计算机系统300或类似配置的其他计算机系统可以包括并执行一个或多个子系统组件以执行本文所述的功能,包括上述各种流程的步骤。同样,包括计算机系统300的一些相同组件的移动设备、手机、智能手机、膝上型计算机、台式机、笔记本电脑、平板电脑、可穿戴设备、服务器等可以运行应用程序(或软件)并执行上述步骤和功能。计算机系统300可以连接到网络314,例如,因特网或其他网络,以接收查询、获取数据并传送如上所述的信息和激励。

计算机系统300通常包括存储器302、辅助存储设备304和处理器306。计算机系统300还可以包括多个处理器306,并且被配置为多个,例如,刀片式服务器,或其他已知的服务器配置。计算机系统300还可以包括网络连接设备308、显示设备310和输入设备312。

存储器302可以包括RAM或类似类型的存储器,并且它可以存储一个或多个应用程序以供处理器306执行。辅助存储设备304可以包括硬盘驱动器、软盘驱动器、CD-ROM驱动器或其他类型的非易失性数据存储器。处理器306执行存储在存储器302或辅助存储器304中、或从因特网或其他网络314接收的诸如本文所述的这些应用程序的一个或多个应用程序。处理器306的处理可以在供计算机或其他机器执行的软件(例如软件模块)中实施。这些应用程序优选地包括可执行的指令,以执行上述和本文图中所示的系统和子系统组件功能和方法。应用程序优选地提供图形用户界面(GUI),用户可通过其查看子系统组件并与之交互。

计算机系统300可以在辅助存储器304中存储一个或多个数据库结构,例如,用于存储和维护执行上述功能所需的信息。或者,此类信息可以在与这些组件分离的存储设备中。

另外,如所述,处理器306可以执行一个或多个软件应用程序以提供本说明书中所述的功能,具体地说,以执行上述处理流程中的步骤和功能。这些过程可以在由计算机或其他机器执行的软件(例如软件模块)中实施。GUI可以例如被格式化为超文本标记语言(HTML)、可扩展标记语言(XML)或任何其他适当形式的网页,以根据用户用于与计算机系统300交互的应用程序在显示设备上呈现。

输入设备312可以包括用于将信息输入计算机系统300的任何设备,例如触摸屏、键盘、鼠标、光标控制设备、麦克风、数码相机、录像机或摄像机。输入输出设备312可用于在执行上述方法期间将信息输入到GUI中。显示设备310可以包括用于呈现视觉信息的任何类型的设备,例如,计算机监视器或平板显示器(或移动设备屏幕)。显示设备310可以显示GUI和/或来自子系统组件(或软件)的输出。

计算机系统300的示例包括专用服务器计算机,例如刀片式服务器、个人计算机、膝上型计算机、笔记本计算机、掌上型计算机、网络计算机、移动设备或能够执行web浏览器或其他类型的应用程序以与系统交互的任何处理器控制的设备。

虽然仅详细显示了一个计算机系统300,但系统300可以在必要或需要时使用多个计算机系统或服务器来支持用户,并且还可以使用备份或冗余服务器来防止在特定服务器发生故障时网络停机。另外,虽然计算机系统300被描绘为具有各种组件,但是本领域技术人员将理解,该系统可以包含附加的或不同的组件。另外,虽然与上述一致的实施方式的方面被描述为存储在存储器中,但是本领域技术人员将理解,这些方面也可以存储在其他类型的计算机程序产品或计算机可读介质(例如包括硬盘、软盘或CD-ROM或其他形式的RAM或ROM的辅助存储设备)上或从其读取。计算机可读介质可包括用于控制计算机系统300以执行特定方法(例如上述方法)的指令。

在示例实施例中,非接触式卡可以例如通过终端或客户端设备通信传输(即,传送或接收)来自主机的数据。非接触式卡可以例如使用NFC、蓝牙、RFID、Wi-Fi和/或类似技术中的至少一种与终端通信。终端可以充当非接触式卡和主机之间的中介,例如,终端可以将从非接触式卡接收的通信转发给主机,反之亦然。终端可以使用网络与主机通信。例如,该网络可以包括光纤网络、无源光网络、电缆网络、因特网网络、卫星网络、无线LAN、全球移动通信系统、个人通信服务、个人区域网、无线应用协议、多媒体消息传送服务、增强型消息传送服务、短消息服务、基于时分复用的系统、基于码分多址的系统、D-AMPS、Wi-Fi、固定无线数据、IEEE 802.11b、802.15.1、802.11n和802.11g、蓝牙、NFC、RFID、Wi-Fi和/或类似物中的一个或多个。

在一些实施例中,非接触式卡和终端之间的通信可以被加密,例如,通信可以以这样一种方式编码,即只有授权方或设备(例如,非接触式卡或主机)可以解码或解密通信。例如,可以使用对称密钥或公钥方案对通信进行加密。对于这些加密方案中的每一个,存在存储在非接触式卡上的至少一个密钥和加密算法。类似地,相关联的密钥和相关联的加密(解密)算法可以存储在主机上。非接触式卡可以使用密钥和加密算法对通信进行加密。非接触式卡可以例如通过诸如手机的客户端设备将通信传送到主机。主机可以使用相关联的密钥和相关联的加密算法对通信进行解密。

在示例实施例中,加密方案是对称密钥方案。在该示例中,非接触式卡可以存储对称密钥和加密算法。示例加密算法可以包括Twofish、Serpent、AES(Rijndael)、Blowfish、CASTS、Kuznyechik、RC4、DES、3DES、Skipjack、Safer+/++(蓝牙)和IDEA。主机还可以存储对称密钥和加密(或解密)算法的副本。响应于来自终端的消息,非接触式卡的处理器可以使用对称密钥和加密算法创建密码来加密通信。非接触式卡可以使用非接触式卡的收发机将密码传送到终端。终端可以进而将密码传送到主机。主机可以使用对称密钥和加密(或解密)算法对密码进行解密。

在示例实施例中,加密方案是公钥方案。在该示例中,非接触式卡可以存储公共(或私有)密钥和加密算法。公钥加密算法的示例包括Diffie–Hellma密钥交换协议、DSS、ElGamal、Paillier密码系统、RSA、Cramer–Shoup密码系统和YAK认证密钥协商协议。主机可以存储私有(或公共)密钥和加密(或解密)算法。响应于来自终端的消息,非接触式卡的处理器可以使用公共(或私有)密钥和加密算法创建密码来加密通信。非接触式卡可以使用非接触式卡的收发机将密码传送到终端。终端可以进而将密码传送到主机。主机可以使用私有(或公共)密钥和加密(或解密)算法对密码进行解密。

在示例实施例中,非接触式卡和主机之间的通信可以包括消息认证码(MAC)、散列消息认证码(HMAC)或数字签名。MAC、HMAC或数字签名可以是能够建立通信中包括的信息的真实性的数学代码或方案。例如,当在终端处扫描非接触式卡时,非接触式卡可以向主机传送通信以寻求交易的授权。通信可以包括各种数据,例如帐号、名称、卡安全值、有效日期和MAC(或HMAC或数字签名)。使用通信中包括的MAC(或HMAC或数字签名),主机可以确定通信的内容是真实的(即,没有改变)。具体地,主机可以重新创建MAC(或HMAC或数字签名),并且如果MAC(或HMAC或数字签名)的值与通信中包括的MAC(或HMAC或数字签名)相同,则主机可以确保通信的内容没有改变。此外,数字签名防止非接触式卡(的所有者)否认它传送了信息,因为只有非接触式卡才能创建消息中包括的MAC(或HMAC或数字签名)。

MAC可以包括以下算法。在第一步中,密钥生成算法可以生成密钥。在第二步中,签名算法可以返回使用生成的密钥和消息创建的标签。在第三步中,验证算法验证给定密钥和标签的消息的真实性。

数字签名方案可以包括以下算法。在第一步中,密钥生成算法生成私钥和相应的公钥。在第二步中,签名算法使用消息和私钥生成数字签名。在第三步中,签名验证算法可以利用数字签名和公钥来验证消息。MAC与数字签名的不同之处在于,MAC方案仅使用一个密钥,而数字签名方案使用两个密钥,即公钥和私钥。

在示例数字签名方案中,可以使用相应的公钥来验证从固定消息和固定私钥生成的数字签名的真实性。此外,选择这些算法使得在不知道一方的私钥的情况下为该方生成有效签名在计算上是不可行的。这种数字签名方案可以确保通信内容的真实性,因为如果对内容进行数字签名,则签名后内容中的任何更改都会使签名失效。换句话说,实际上不可能修改内容及其签名以产生具有有效签名的新内容。

在示例实施例中,非接触式卡可以具有私钥和签名算法。主机可以具有公钥和验证算法。当在终端处扫描非接触式卡时,非接触式卡可以向终端传送包括数字签名的通信,并且终端可以将该通信转发给主机。数字签名可以使用签名算法和非接触式卡的私钥生成。数字签名可以包括诸如帐号、有效日期和代码验证值之类的数据。当主机接收到通信时,主机可以使用公钥、验证算法和通信中包括的信息来验证通信中包括的信息的真实性。例如,主机可以使用通信中包括的信息重新生成数字签名。如果重新生成的数字签名与通信中包括的数字签名匹配,则主机可以验证信息的真实性。否则,主机可以断定通信内容是伪造的。

数字签名方案可以具有几个优点。例如,黑客会有动机伪造通信内容,以寻求虚假交易的授权。数字签名可以通过认证通信中包括的信息来防止这种情况。只要与非接触式卡相关联的私钥是秘密的,数字签名就可以对通信进行认证和验证。

在一些示例实施例中,在使用签名算法将内容转换为MAC或数字签名之前,可以对消息或内容进行散列。哈希函数是一种数学算法,其将任意大小的消息映射到固定大小的位串(即哈希)。哈希函数可以是单向函数,也就是说,反转函数是不可行的。在示例实施例中,MAC是从哈希函数构建的,因此,结果是HMAC。在另一示例实施例中,数字签名是从哈希函数构建的。

与内容本身不同,将MAC或数字签名形式作为散列内容有几个原因。例如,由于哈希具有固定大小,因此内容的哈希可以比实际内容更短,因此,哈希的MAC或数字签名可以比实际内容的MAC或数字签名短得多。此外,由于将内容哈希比将其转换为MAC或数字签名更快,因此将内容的哈希转换为MAC或数字签名更快。在示例实施例中,使用HMAC写入非接触式卡的内容。

在示例实施例中,非接触式卡可以包括多个安全密钥(或“密钥”)。例如,非接触式卡可以包括用于第一操作(例如,加密)的五个密钥。作为另一示例,非接触式卡可以包括用于第二操作(例如,对数字签名进行签名)的六个密钥。制造非接触式卡时,制造商可以将这些密钥存储在非接触式卡上。对于存储在非接触式卡上的每个密钥,制造商还可以将相关联的密钥存储在主机上。在对称密钥方案中,每个相关联的密钥可以与存储在非接触式卡上的密钥之一相同。在公钥方案中,私有(或公共)密钥可以与存储在非接触式卡上的公共(或私有)密钥中的一个相关联。在一个示例中,卡制造商可以生成密钥对。在另一示例中,密钥对可以由非接触式卡或主机生成。

非接触式卡的小应用程序可以包括密钥选择模块,其可以选择将用于操作的密钥。例如,每次非接触式卡对通信进行加密(或签名)时,密钥选择模块为加密(或签名)操作选择密钥之一。密钥选择模块可以使用多种技术来选择密钥。

例如,密钥选择模块可以顺序选择密钥。在该示例中,对于需要密钥的每个操作,可以为存储在非接触式卡上用于该操作的密钥分配顺序。密钥选择模块可以按分配的顺序选择密钥。一旦每个密钥都被用来执行了操作(例如,加密或签名通信),密钥选择模块就可以再次以相同的顺序选择密钥。主机可以知道密钥的顺序或序列。例如,当制造商将密钥放在卡上时,卡的制造商分配密钥的顺序。在本示例中,制造商可以向主机提供顺序。作为另一示例,非接触式卡的小应用程序分配密钥的顺序,并且小应用程序可以将该顺序传送给主机(例如,通过客户端设备)。作为又一示例,终端或客户端设备可以确定顺序,并且终端或客户端设备可以将顺序发送到非接触式卡和主机。

在示例实施例中,密钥选择模块可以包括数学函数或算法,其接收输入并基于输入选择密钥(例如,该函数定义了输入和密钥之间的多对多关系)。例如,密钥选择模块可以接收计数器数字或时间信号,并且基于计数器数字或时间信号可以在多个可用密钥中选择密钥。在该示例实施例中,主机还可以存储相同的密钥选择模块(或嵌入其中的算法)以选择密钥。主机还可以获得相同的计数器数字或时间信号。例如,每次使用非接触式卡进行交易时,非接触式卡的计数器在非接触式卡处使计数器数字递增,并且主机的计数器在主机处使计数数字递增。这样,在选择密钥时,非接触式卡和主机都可以包括相同的计数数字。作为另一示例,非接触式卡和主机中的每个可以包括定时器。定时器可以向非接触式卡和主机提供时间信号。当非接触式卡和主机都包括相同的计数器数字或时间信号时,使用密钥选择模块,非接触式卡和主机中的每个可以选择相同的密钥进行操作。

作为又一示例,密钥选择模块可以基于非接触式卡外部的源提供的输入来选择密钥。例如,非接触式卡和主机可以接收来自终端或客户端设备的输入或信号,例如,输入或信号可以包括诸如日期、终端的位置坐标、哈勃望远镜的位置、用户在终端处拍摄的照片、用户在终端上提供的编号等信息。基于该输入,非接触式卡和主机中的每个的密钥选择算法可以选择密钥并处理交易。

作为又一示例,密钥选择模块可以随机选择密钥。在该示例中,主机不知道非接触式卡选择了哪个密钥。但是,当主机接收到通信时,主机可以尝试其所有密钥对通信进行解密。在一些示例中,密钥选择模块可以基于可替换的随机选择算法来选择密钥。

作为又一示例,密钥选择模块可以基于卡执行的最后一次交易值来选择密钥。非接触式卡可以存储最后一次交易的交易值。类似地,主机可以存储最后一次交易的交易值。使用交易值,密钥选择模块可以导出一个值,该值可以选择密钥。例如,如果卡的最后一次交易值是$9.95,则密钥选择模块可以基于交易值的最后一位(这里是5)选择用于加密的密钥。密钥选择模块可以选择例如排名为5的密钥。

作为又一示例实施例,可以存在多个密钥选择算法,并且每个算法可以接收输入并产生输出,该输出确定要被选择用于操作的密钥。在本实施例中,可以存在基于输入选择密钥选择算法的算法选择模块。例如,非接触式卡可以包括两个密钥选择算法,并且每个算法可以使用计数数字来指定用于加密操作的密钥。在该示例中,用户可以向客户端设备提供PIN。客户端设备可以将PIN传送到非接触式卡和主机,并且每个设备可以使用PIN作为用于算法选择模块的输入。使用PIN和算法选择模块,非接触式卡和主机中的每个可以选择两种密钥选择算法中的一种。使用计数数字和所选择的密钥选择算法,非接触式卡和主机中的每个可以选择相同的密钥进行操作。

图4示出了用于将信息从非接触式卡传输到主机的示例流程图。在该示例实施例中,公钥方案被实现为加密技术。在步骤401中,生成多对私钥和公钥。这些密钥可以使用密钥生成算法生成。在步骤402中,私钥存储在非接触式卡上,并且公钥存储在主机上。在步骤403中,客户在终端处扫描非接触式卡以请求交易。终端可以给非接触式卡通电,并且非接触式卡的小应用程序可以产生通信。通信可以包括用户的帐号。

在步骤404中,小应用程序的密钥选择模块可以选择存储在非接触式卡上的私钥中的一个。例如,小应用程序可以向终端传送请求以提示用户输入编号。作为响应,用户可以输入编号,并且终端可以将编号传送到非接触式卡。终端还可以将编号传送到主机。使用编号,密钥选择模块可以选择存储在非接触式卡上的私钥中的一个。在另一示例中,非接触式卡可以请求终端将终端的位置(例如,邮政编码)传送到非接触式卡。终端可以将位置传送到非接触式卡和主机。基于位置,密钥选择模块可以选择私钥中的一个。

在步骤405中,小应用程序可以使用选择的私钥加密通信。在步骤406中,非接触式卡可以向终端传送加密的通信,并且终端可以向主机传送加密的通信。在步骤407中,主机可以选择用于解密通信的公钥。例如,主机可以使用终端传送给主机的编号来选择公钥。可以使用存储在主机上的密钥选择模块来选择公钥。在步骤408中,主机使用在步骤407中选择的公钥解密通信。

在一个示例实施例中,非接触式卡可以包括多个加密算法。非接触式卡可以使用每种加密算法对通信进行加密或创建密码。非接触式卡还可以包括加密算法选择模块。加密算法选择模块可以选择多个加密算法中的一个,并且非接触式卡可以使用所选择的加密算法对通信进行加密。类似地,主机可以包括多个加密算法和加密算法选择模块。当主机接收到加密的通信时,使用加密算法选择模块,主机可以决定使用哪个加密算法来解密通信。

在一个实施例中,加密算法选择模块的操作与上面讨论的算法选择模块或密钥选择模块类似,例如,接收输入并基于输入选择多个加密算法中的一个。

在示例实施例中,对于加密操作,非接触式卡可以包括十个密钥和两个加密算法,例如AES和3DES。当处理交易时,非接触式卡可以接收来自终端的数字输入,例如,用户在终端的键盘上提供数字输入。非接触式卡还可以在非接触式卡的存储器中存储计数器数字。计数器数字可以表示非接触式卡已经请求的交易的数量。

非接触式卡可以包括密钥选择模块和加密算法选择模块。密钥选择模块可以接收数字输入,并且例如,基于数字输入的最后一位,选择存储在非接触式卡上的十个密钥中的一个用于加密操作。加密算法选择模块可以接收计数器数字,并且如果计数器数字为偶数,则选择AES算法,或者如果计数器数字为奇数,则选择3DES算法。非接触式卡可以使用选择的密钥和选择的加密算法创建密码,并将密码传送到终端。

在一个示例实施例中,非接触式卡可以在用于某些交易的秘密密钥OTP(或一次性口令)和用于其他交易的公钥(如果可能的话(例如,双向通信是有可能的))之间进行切换。如上所述,对于各种选择模块,加密算法选择模块可以在两种加密方案之间选择或切换。

在一个示例实施例中,非接触式卡可以包括用于特定操作的多个密钥,并且每次非接触式卡需要执行操作时,密钥选择模块可以选择用于操作的密钥之一。

在另一个示例实施例中,非接触式卡可以包括主密钥和密钥多样化算法。密钥多样化算法可以使用输入生成多个不同的密钥。在该示例实施例中,对于非接触式卡上的至少一个操作,非接触式卡可以存储主密钥。密钥选择模块可以将输出提供给密钥多样化算法,并且利用该输出,密钥多样化算法可以为主密钥生成多样化密钥。非接触式卡可以使用多样化密钥执行操作,例如,加密通信。类似地,如上所述,主机可以使用密钥选择模块生成相同的输出。主机还可以存储相同的密钥多样化算法和主密钥。使用输出、密钥多样化算法和主密钥,主机可以生成与非接触式卡相同的多样化密钥,并在主机上执行相关联的操作,例如,解密通信。

本公开不限于本申请中描述的特定实施例,这些实施例旨在作为各个方面的图示。许多修改和变化可以在不脱离其精神和范围的情况下进行,这会是显而易见的。除了本文列举的那些方法和装置之外,本公开范围内的功能等效的方法和装置可以从前述代表性描述中显而易见。这些修改和变化意在落入所附代表性权利要求的范围内。本公开仅限于所附代表性权利要求的条款,以及这些代表性权利要求有权获得的等价物的全部范围。还应理解,本文中使用的术语仅用于描述特定实施例的目的,而不是旨在限制。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于Logistic双像素矩形映射彩色图像加密及解密方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!