保护芯片卡未经授权而被使用的方法、芯片卡以及芯片卡终端转让专利

申请号 : CN201310194924.5

文献号 : CN103258169B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金·尤依恩法兰克·毕赛奥

申请人 : 联邦印刷有限公司

摘要 :

本发明公开了一种防止芯片卡(104)未经授权而被使用的方法,其包括如下步骤:‑在芯片卡终端(100)输入第一识别符(116);‑借助由第一识别符导出的第一对称密钥(S1),从至少一个第一通讯参数(K1;KA1,D1)生成密码,其中,借助通讯参数在所述芯片卡终端和所述芯片卡之间定义出一受保护的第一通讯频道(112);‑通过一预定义的通讯频道(108)将所述的密码由所述芯片卡终端传送至所述芯片卡;‑借助第二对称密钥(S2),通过所述芯片卡,尝试对所述密码进行解码,其中,只有当所述第一对称密钥与所述第二对称密钥相同时,解码的结果才为所述第一通讯参数,使得只有当所述第一识别符准确时,才在所述芯片卡终端和所述芯片卡之间定义出受保护的第一通讯频道。

权利要求 :

1.一种芯片卡,其具有

-通过一个预定义的通讯频道(108)和多个其它的通讯频道(112,146,…)与芯片卡终端(100)进行通讯的接口(106);

-借助第二对称密钥(S2)对在预定义的频道接收到的密码进行解码的器件(132,136),该密码是借助第一对称密钥进行编码的;其中,如果之前在所述芯片卡终端中所输入的第一识别符(116)准确,该解码会生成至少一个通讯参数(K2;KA2,D2),通过该通讯参数就会清楚地确定一个其它的通讯频道,用于保护在所述芯片卡和所述芯片卡终端之间的通讯;

只有当所述第一对称密钥与所述第二对称密钥相同时,解码的结果才为第一通讯参数;

-借助公钥执行Diffie-Hellman方法以导出一个其它的对称密钥(S4)的器件(132),其中,所述的公钥是通过所述的第一通讯参数指定的。

2.如权利要求1所述的芯片卡,其还具有执行离散对数编码方法以生成其它对称密钥(S4)的手段(150),其中,该其它对称密钥通过确定的通讯频道(112)对所述芯片卡终端和所述芯片卡之间的通讯进行对称编码。

3.如权利要求1所述的芯片卡,其还具有受保护的永久存储区,以存储第二识别符(140),从该识别符能导出第二密钥。

4.如权利要求1所述的芯片卡,其还具有受保护的永久存储区,以存储第二密钥。

5.如权利要求1所述的芯片卡,其中,所述的芯片卡是一文件。

6.如权利要求2所述的芯片卡,其中,所述的第一通讯参数是指传输频率的说明数据、跳频模式的说明数据、编码方法的说明数据和/或调制方法的说明数据。

7.如权利要求5所述的芯片卡,其中,所述的芯片卡是价值证明文件、安全文件、证明卡、支付手段、或签字卡。

8.一种用于如权利要求1所述的芯片卡的芯片卡终端,其包括:

-输入第一识别符(116)的装置(114);

-借助从第一识别符导出的第一对称密钥(S1)、从至少一个第一通讯参数(K1;KA1,D1)生成密码的装置,其中,借助通讯参数,定义出所述芯片卡终端和所述芯片卡之间的受保护的第一通讯频道(112);

-通过预定义的通讯频道(108)向所述芯片卡发送密码的装置。

说明书 :

保护芯片卡未经授权而被使用的方法、芯片卡以及芯片卡

终端

[0001] 分案声明
[0002] 本申请是2008年10月20日提交的申请号为200880114650.1、发明名称为“保护芯片卡未经授权而被使用的方法、芯片卡以及芯片卡终端”的中国专利申请的分案申请;并要求德国专利申请102007000589.1作为优先权,该申请于2007年10月29日提交。

技术领域

[0003] 本发明涉及一种防止未经授权使用芯片卡的方法(或称集成电路卡、智能卡、IC卡)、芯片卡和芯片卡终端。

背景技术

[0004] 现有技术中,自由激活芯片卡的功能都要求芯片卡进行用户识别。最常用的用户识别就是输入密码,一般是PIN(Personal Identifica-tion Number,私人识别数码)或者CHV(Cadr Holder Verification,卡持有者身份核实)。一般情况下,这种识别都是数字或者字母的字符串。用户识别时,都是通过与芯片卡阅读器连接的芯片卡终端键盘或者计算机键盘输入密码,再发送给芯片卡。将输入的密码与所储存的识别符进行对比,结果就以相应的信号发送给终端或者计算机。
[0005] PIN可以分为固定PIN和可变PIN两种。固定PIN是一种用户永远都不能更改的PIN,必须牢牢记住。如果密码被窃用,卡用户必须将芯片卡毁掉,防止非法使用,再办理一张具有其它固定PIN的新卡。同样,如果用户忘记了固定PIN,也必须重新更换芯片卡。
[0006] 而对于可变PIN来说,用户可以随意更改PIN。出于安全原因,更改PIN需要提交当前有效的PIN,通过设备用现在的PIN来代替。
[0007] 另外,还有超级PIN或PUK(Personal Unlocking Key,私人钥匙)。一般情况下,它们比PIN的字符多,主要用于对PIN的最大值错误输入计数器(也称为错误操作计数器)进行复位。通过PUK同时也向芯片卡传递新的PIN,因为如果忘记了PIN,很少使用复位的错误操作计数器。如果错误操作计数器达到最大值,就会向芯片卡传递新的PIN。
[0008] 其同样也应用于运输PIN。芯片卡配有私人化的随机PIN,卡用户在PIN短信中会得到这个随机PIN。第一次输入时,芯片卡会要求用自已的PIN来代替私人化的PIN。在一个类似的方法“零PIN方法”中提到,芯片卡预置了“0000”作为运输PIN,同样在第一次使用的时候必须更换(参照DE3523237A1,DE19507043A1,DE19507044C2,DE19850307C2,EP0730253B1)。通过这种方法,首次用户功能就认证了使用者的安全性,这次使用前第三方都不能非法使用芯片卡。
[0009] DE19850307C2公开了一种防止误使用芯片卡的方法。其芯片卡具有首次用户功能,在第一次使用芯片卡的数据和/或功能时,要求设置用户喜欢的可选的、私人的密码(PIN),通过输入私人密码将芯片卡的数据和/或功能设置到使用状态。对私人密码之后的更改则通过更高级的解码来实现。
[0010] 现有技术中已经公开了一些用于检查识别符的方法,这些方法不要求传递识别符本身,例如基于指数交换密钥协商的简单密码认证协议(SPEKE)、Diffie-Hellman加密密钥交换(DH-EKE)、Bellovin-Merritt协议或者建立密码认证连接(PACE)。例如,SPEKE协议可从www.jablon.org/speke97.html、US6,792,533B2和US,139,917B2中获知。另外,从www.jablon.org/speke97.html可以获知DH-EKE协议;从US5,241,599可以获知Bellovin-Merritt协议;从www.heise.de/secu-rity/news/meldung/85024可以获知PACE协议,其特别适合于椭圆曲线密码。

发明内容

[0011] 本发明的目的之一是提供一种保护芯片卡未经授权使用的改良方法。本发明的另外的目的是提供改良的芯片卡和改良的芯片卡终端。
[0012] 本发明的目的可分别由独立权利中记载的技术方案来实现;而从属权利要求中则给出了本发明的优选实施方式。
[0013] 根据本发明,其提供了一种防止未经授权使用芯片卡的方法。该方法除了涉及芯片卡本身之外,还涉及芯片卡终端。
[0014] 本发明中,术语“芯片卡终端”是指与芯片卡建立通讯的所有设备,它用于在芯片卡上执行对芯片卡的指令,以及接收从芯片卡发出的相应的回应。芯片卡和芯片卡终端之间的通讯可以通过接触接口、无线接口(如无线射频识别(RFID)方法)来实现,或者选择通过接触接口或无线接口进行通讯,特别是所谓的复合模式接口。芯片卡终端可以是带或者不带键盘的1级、2级或者3级芯片卡阅读器,或者是与芯片卡阅读器连接的计算机。芯片卡终端同样也可以是用于特定目的所设置的终端,例如用于开展银行业务的银行终端、支付终端(例如用于购买电子票)或者用于准许进入保护区域的准入终端。
[0015] 本发明中,术语“保护芯片卡”可以理解为保护整个芯片卡或者保护芯片卡的一个功能或者多个功能。根据本发明,可以特别保护芯片卡的具有保护价值的功能,例如用于生成电子签名的签名功能、支付功能、认证功能或者类似的功能。
[0016] 根据本发明方法的一具体实施方式,授权的用户从芯片卡发行处得到密码,一般是PIN。为了使用芯片卡,必须首先在芯片卡终端输入密码,下面称其为PIN’。只有当PIN’与PIN一致时,才可以使用芯片卡或者受保护的芯片卡功能。
[0017] 这样,芯片卡终端在第一对称密钥的辅助下生成由至少一个第一通讯参数组成的密码。第一对称密钥可以是PIN’本身或者是由PIN’所导出的对称密钥。例如,PIN'作为所谓的种子值通过芯片卡终端用来生成第一对称密钥。
[0018] 至少一个的通讯参数时如此获得的,其通过在芯片卡终端和芯片卡之间生成一个受保护的第一通讯频道。为了能够在芯片卡和芯片卡终端之间能够建立受保护的第一通讯频道,首先要将在第一对称密钥的辅助下产生的第一通讯参数的密码通过预置的通讯频道从芯片卡终端传输给芯片卡。该预置的通讯频道是标准的,用于建立芯片卡终端和芯片卡之间的初始通讯。
[0019] 通过预置的通讯频道从芯片卡终端向芯片卡传输密码后,在第二对称密钥的辅助下,从芯片卡方面尝试对该密码进行解码。只有当第二对称密钥与第一密钥一致的情况下,也就是前提条件是PIN'=PIN,解码才能成功。
[0020] 也只有在满足PIN'=PIN时,才有可能实现通过受保护的第一通讯频道建立通讯联系,因为只有在这种情况下芯片卡才能识别第一通讯参数,通过它确定受保护的第一通讯频道。
[0021] 例如,第一通讯参数可以是传输频率的说明(数据)、跳频模式(Frequenz-Hopping-Schemas)的说明(数据)、编码方法的说明(数据)和/或调制方法的说明(数据)。
[0022] 如果不满足条件PIN'=PIN,从PIN'导出的第一密钥与芯片卡的第二密钥就不一致。其结果是,从芯片卡终端接收到的密码在第二密钥的辅助下通过芯片卡进行解码,不会产生第一通讯参数,而是产生例如第二通讯参数,这就偏离了第一通讯参数。
[0023] 通过第二通讯参数可以定义第二通讯频道,其偏离第一通讯频道。如果芯片卡在第一通讯频道上接收到一个信号,也可予以忽略,因为芯片卡期待第二通讯频道上的信号。其结果是如果不满足条件PIN'=PIN,在芯片卡终端和芯片卡之间就不能建立通讯。
[0024] 根据本发明一具体实施方式,通讯参数可为芯片卡终端非对称密钥对的公钥。为了确定芯片卡终端和芯片卡之间通讯的对称密钥,根据Diffie-Hellman方法,芯片卡终端的公钥与从第一识别符得到的第一对称密钥一起被加密(编码),并通过预置的通讯频道发送给芯片卡。
[0025] 只有当满足条件PIN'=PIN时,芯片卡才能得到芯片卡终端的正确公钥。根据Diffie-Hellman方法,芯片卡终端从芯片卡的公钥(例如由密钥服务器查寻)生成第三密钥;接下来也是根据Diffie-Hellman方法,芯片卡从其私钥以及在第二对称密钥辅助下解码的密码生成第四密钥,其中,只有满足条件PIN'=PIN时,第三密钥才与第四密钥一致。
[0026] 第三和相同的第四对称密钥用于对信号进行加密,特别是芯片卡指令和对这类芯片卡指令的响应,这些信号在芯片卡终端和芯片卡之间通过第一通讯频道进行交换。第一通讯频道至少另外地通过第三密钥来定义,在其辅助下采用对称加密的方法对第一通讯频道的通讯进行加密。
[0027] 根据本发明一具体实施方式,采用离散对数密码文(dikrete loga-rithmischen Kryptographie,DLC)的方法来生成用于芯片卡终端的第三密钥和用于芯片卡的第四密钥,其中,只有满足条件PIN'=PIN时,第四密钥才与第三密钥一致。
[0028] 原则上来说,使用离散对数密码文的程序来确定第三密钥,例如在国家标准和技术研究所(NIST)的标准(国家标准和技术研究所(NIST)特别出版800-56A,2007年3月)以及密码标准SEC1:椭圆曲线密码(Certicom研究所,2000年9月20日,版本1.0)中有提到。这样的方法需要所谓的生成域名参数,生成用于芯片卡终端和芯片卡的相同的第三和第四密钥。
[0029] 根据本发明一具体实施方式,椭圆曲线密码(ECC)的方法可以作为DLC,特别是椭圆曲线Diffie-Hellman(ECDH)。
[0030] 根据本发明一具体实施方式,第一识别符,也就是PIN',被输入到芯片卡终端,作为所谓的种子,值用于导出第一对称密钥。这样就产生一个长度较大的密钥,它在使用第一识别符时直接作为密钥使用。
[0031] 根据本发明一具体实施方式,在芯片卡中储存了第二识别符,也就是PIN,从该识别符能导出用于根据芯片卡终端接收的初始密码进行解码的第二密钥。为了从第二标识码中导出第二密钥,第二标识码可以作为种子值(Seed Value)。
[0032] 根据本发明一具体实施方式,PIN没有储存在芯片卡中,而是只有第二密钥。第二密钥建议储存在芯片卡的永久保护储存区。与现有技术不同的是,PIN在芯片卡中不要求储存作为参数值。
[0033] 根据本发明一具体实施方式,芯片卡具有错误操作计数器。当因为错误输入PIN'使得第一和第二通讯频道不一致时,芯片卡增加或者减少错误操作计算器并附具每次报告,芯片卡时通过另一个作为第二通讯频道或者预置通讯频道的通讯频道来接收该报告。此外,这种由芯片卡通过另一个作为第二通讯频道或者预置通讯频道的通讯频道所接收的报告,被芯片卡所忽略。如果错误操作的数量超过了预置的临界值,整个芯片卡或其某一特定的芯片卡功能将被可逆或不可逆地锁定。
[0034] 根据本发明一具体实施方式,芯片卡具有首次用户功能。未使用过的芯片卡处于首次使用状态,其中,有一特定的通讯参数用于第一通讯频道的第一选择。如果第一次在该第一通讯频道接收到芯片卡指令,芯片卡就从首次使用状态进入使用状态。继续使用芯片卡时,必须从芯片卡终端选择另一通讯参数。
[0035] 另一方面,本发明还涉及一种芯片卡,其具有一种通过预置的通讯频道或更多其它的通讯频道,与芯片卡终端进行通讯的接口(界面),还具有借助第二对称密钥对在预置频道接收到的密码进行解码的手段,该密码是借助第一对称密钥进行编码的;其中,如果之前在芯片卡终端中所输入的第一识别符准确的话,该解码至少会生成一个通讯参数,通过该通讯参数在芯片卡和芯片卡终端之间就会确定一个或多个用于受保护通讯的通讯频道。
[0036] 再一方面,本发明还涉及一种芯片卡终端,其具有用于输入第一识别符的手段、借助第一识别符导出的第一对称密钥而从至少一个第一通讯参数生成密码的工具、以及通过预置的通讯频道向芯片卡发送密码的工具,其中,借助通讯参数在芯片卡终端和芯片卡之间定义一个受保护的第一通讯频道。
[0037] 下面借助附图,来详细地描述本发明的优选实施方式。其中:

附图说明

[0038] 图1是根据本发明第一具体实施方式所设计的芯片卡和芯片卡终端的方框图;
[0039] 图2是根据本发明方法的一具体实施方式的流程图;
[0040] 图3是根据本发明另一具体实施方式所设计的芯片卡和芯片卡终端的方框图;
[0041] 图4是根据本发明方法的另一具体实施方式的流程图。
[0042] 在下面针对附图的说明中,相应的元件使用相同的附图标记。
[0043] 图1显示的是芯片卡终端100的方框图。芯片卡终端100具有接口102,用于与芯片卡104进行通讯,相应地芯片卡104上具有接口106。优选地,接口102和106是用于无线通讯的,例如通过无线电,特别是根据无线射频识别(RFID)方法形成的。
[0044] 接口102和106可以如此形成,使得在接口102和106之间可以建立不同的通讯频道,其中,这些通讯频道可以在物理层面和/或逻辑层面上能够互相区分。例如,可以建立不同传输频率的通讯频道;另外,通讯频道也可以在不同的跳频模式的基础上建立。“跳频”可以理解成跳频方法,其中,可以根据预定的模式持续地更改用于数据传输的不同频率。
[0045] 接口102和106同样也可以如此形成,使得借助不同编码方法和/或调制方法而建立不同的通讯频道,例如,频率调制、振幅调制、相位调制、脉冲宽度调制或者其它的调制方法。
[0046] 在接口102和106之间建立的不同的通讯频道,下面称为“通讯频道群”。
[0047] 通讯频道群中的一个通讯频道108被预定为用于芯片卡终端100和芯片卡104之间的初始通讯。例如,通讯频道可以根据其传输频率以及所运用的调制和编码方法进行预定义。
[0048] 为了通知芯片卡104,预定义的通讯频道用于从芯片卡终端100向芯片卡104传输至少一个通讯参数K1的密码110,以便芯片卡104通知,在接下来与芯片卡终端100的通讯中,应该使用通讯频道群中通讯频道112的哪一个。
[0049] 通讯参数K1包括一个说明(数据),其清楚地定义了通讯频道112。这个说明(数据)可以是密码单词。在芯片卡104的永久储存区内保存了Lookup表(查寻表),其中设置了通讯频道群中每一通讯频道规格的可能的密码单词。
[0050] 为了从通讯频道群中选择一个通讯频道,可以提供在接口102和106之间建立的通讯频道或者从中选择,其中,实际上用于接口102和106之间通讯的通讯频道群中的每一个设置了清楚的密码单词的通讯频道,可以作为从芯片卡终端100发送给芯片卡104的通讯参数110。
[0051] 芯片卡终端100具有一个用户接口114,例如键盘或者图形式用户界面,通过它可以输入第一识别符116。另外,如果下面没有一般性的限制,该第一识别符称为PIN'。
[0052] 芯片卡终端100具有至少一个处理器118,用于执行应用程序120。应用程序120可以促使生成芯片卡指令122,用于传呼芯片卡104的特定芯片卡功能124。例如,应用程序120需要芯片卡功能124用于认证,用于生成数字签名,用于核查资格,特别是准入资格,执行金融交易或者类似的资格。
[0053] 处理器118另外用于执行通讯模块126的程序指令,从通讯频道群中选择通讯频道112,并由此来选择通讯参数110。通讯参数110可以根据预定的方案或者随机选择,特别是虚拟随机。例如,在通讯模块126中储存了具有不同通讯参数110的、循环工作的表格。
[0054] 另外,处理器118还用于执行程序指令128,对通讯参数110进行对称编码。编码是借助PIN'进行的。此处,程序指令128包括一个密钥生成器130。
[0055] 密钥生成器130可以如此设置,其从作为种子值的PIN'生成第一对称密钥,在下面称为S1。密钥S1用于对称编码由通讯模块126选择的通讯参数K1。用密钥S1对称编码而得到的通讯参数K1的密码,通过预定义的通讯频道108从接口102传输给接口106。
[0056] 芯片卡104具有一个处理器132,其用于执行通讯模块134的程序指令。通讯模块134用于处理由芯片卡终端100接收的通讯参数K1。通讯模块134可以借助通讯参数K1选择表格中的密码,特别是lookup表,以此来检查由芯片卡终端100选择的通讯频道112的参数,例如,其传输频率和/或编码方法和调制方法。
[0057] 处理器132另外用于执行程序指令136,用以对芯片卡104从芯片卡终端100接收到的密码110进行对称解码。例如,芯片卡104具有一个受保护的储存区138,其中储存了第二识别符140。另外,如果没有一般性的限制,下面将第二识别符称为PIN。在交付芯片卡104时,PIN将被另外通知芯片卡的授权用户,例如以所谓的PIN短信的形式进行通知。
[0058] 程序指令136可以包括一个密钥生成器142,PIN作为种子值导出第二密钥。另外,下面将对称的第二密钥称为S2。
[0059] 另一种方案中,密钥S2代替PIN140储存在芯片卡104受保护的存储区138中。这样就不需要密钥生成器142和在芯片卡104中储存PIN140。与现有技术不同的是,芯片卡104上不需要无条件地将PIN140储存作为参考值,用于检测PIN'116的正确性。
[0060] 另外,芯片卡104可以具有错误操作计数器144。错误操作计数器144可以计算芯片卡104的每一次错误操作。将错误操作的次数与预置的临界值进行比较。如果达到临界值,至少错误操作计数器144设置的芯片卡功能124会被可逆或不可逆地锁定。
[0061] 芯片卡104另外还可以设置首次使用功能。例如,芯片卡104的首次使用状态可以通过特定的通讯参数来定义,此参数特别定义通讯频道群中必须用于芯片卡的首次使用的一个。
[0062] 可以按下列步骤使用芯片卡104:用户通过芯片卡终端100的用户接口114输入PIN'116。在应用程序120的相应的要求下会执行它。通讯模块126接下来将选择一个可能的第一通讯参数,例如从通讯参数预置表中选择,作为通讯参数K1。
[0063] 密钥生成器130从PIN'生成密钥S1。通讯参数K1接下来将通过执行程序指令128借助对称密钥S1进行编码。由此所得到的通讯参数K1的密码110将通过预定义的通讯频道108由接口102发送给芯片卡104的接口106。
[0064] 如果有需要,芯片卡104将从PIN导出密钥S2,或者直接在受保护的储存区138中提取密钥S2。借助密钥S2,通过执行芯片卡104的程序指令136,尝试对由芯片卡终端100接收到的通讯参数K1的密码110进行解码。
[0065] 解码结果就是第二通讯参数,下面将其称为K2,它将传送给通讯模块134。只有当满足条件PIN'=PIN时,通讯参数K2才与通讯参数K1一致,因为只有用于对称编码的密钥S1与密钥S2相同,密钥S2才能用于对通讯参数K1进行对称解码。
[0066] 通过通讯参数K2就可以定义第二通讯频道146,其中,带通讯参数K2的通讯模块134提取其配置表(中的数据)。只有满足条件PIN'=PIN时,第二通讯频道146才会再次与第一通讯频道112相同。
[0067] 当通讯参数K1的密码通过预定义的通讯频道108传输了之后,芯片卡终端100会生成芯片卡命令122,该命令通过第一通讯频道112由接口102发送给接口106。芯片卡106或其通讯模块134设置为在基于通讯参数K2的第二通讯频道146上进行接收。
[0068] 如果第二通讯频道146与第一通讯频道112一致,来自芯片卡104的芯片卡命令122则被处理,并且芯片卡功能124被传呼。结果是,芯片卡104生成芯片卡命令122的回应(答复),并且将此回应通过第一通讯频道112再传送给芯片卡100。
[0069] 如果第二通讯频道146与第一通讯频道112不一致,芯片卡104则忽略第一通讯频道112所接收到的芯片卡命令,并增加错误操作计数器144的计数。
[0070] 例如,通讯频道108定义为9GHz的传输频率,通讯频道112则定义为10GHz的传输频率,通讯频道146则定义为11GHz的传输频率,其中,通讯频道112和146的传输频率是不一样的,因为输入到芯片卡终端100中的PIN’与PIN不一样。如果在这种情况下,芯片卡104从芯片卡终端100接收到频率为10GHz的信号,即使它希望接收频率为11GHz的信号,但是这个信号将被忽略,并错误操作计数器将增加计数。这样,对PIN’进行内在地检测,可以不需要将PIN’与PIN进行直接比对,也不需要必须在芯片卡中储存PIN。
[0071] 图2显示的是相应的流程图。在第200步,于芯片卡终端输入PIN'。接下来在第202步,芯片卡终端100从通讯频道群中选择一个通讯频道,确定通讯参数K1。在第204步,通讯参数K1借助PIN'进行对称编码。其可以如此进行,借助密钥生成器,从PIN'导出对称密钥S1,之后其将用于对通讯参数K1进行编码。
[0072] 在第206步,借助密钥S1生成的通讯参数K1的密码,通过预定义的通讯频道由芯片卡终端传送给芯片卡。
[0073] 在第208步,芯片卡104在PIN的基础上尝试对通讯参数K1进行解码。准确的PIN可以储存在芯片卡受保护的储存区,并将用于导出对称密钥S2。另一种方案中,密钥S2也可以直接储存在芯片卡受保护的储存区内。
[0074] 借助密钥S2,对通讯参数K1的密码解码后得到通讯参数K2。通过通讯参数K2可以定义通讯频道群中的第二通讯频道。只有当PIN'准确,也就是满足条件PIN'=PIN时,由通讯参数K1和K2配置的通讯频道是一致的。
[0075] 在第210步,芯片卡终端生成芯片卡命令,并且通过由通讯参数K1定义的第一通讯频道发送给芯片卡(第212步)。在第214步,第二通讯频道用于芯片卡接收信号,只有当其与第一通讯频道一致时,也就是满足条件PIN'=PIN时,芯片卡才能够接收芯片卡命令。在相反的情况下,芯片卡则忽略在第一通讯频道接收到的密码,并且增加错误操作计数器的计数。
[0076] 在本发明一具体实施方式中,通讯参数K1可以是芯片卡终端的公钥。公钥的密码,其可以借助密钥S1通过对称编码生成,将由芯片卡终端传输给芯片卡。只有在满足条件PIN'=PIN时,芯片卡才能接收芯片卡终端正确的公钥,因为只有在密钥S2的辅助下成功对密码进行解码,才能满足这个条件(参考图1的具体实施方式)。芯片卡终端可以通过例如来自连接网络的外置密钥服务器,特别是因特网,访问芯片卡的公钥。
[0077] 根据Diffie-Hellman方法,芯片卡终端可以从芯片卡终端私钥和芯片卡的公钥导出对称密钥S3。相应地,根据Diffie-Hellman方法,芯片卡也可以由芯片卡终端的公钥和其私钥导出对称密钥S4。如果满足条件PIN'=PIN,密钥S3和S4就是一致的。
[0078] 在该具体实施方式中,第一通讯频道(参考图1中的通讯频道112)至少通过对称密钥S3=S4进行附加定义。从芯片卡终端发送给芯片卡的芯片卡命令通过对称密钥S3进行编码,而且只有在借助密钥S4可以解码芯片卡命令时,才能由芯片卡进行解码,也就是接收。否则,将忽略该芯片卡命令,错误操作计数器将增加计数。
[0079] 图3显示的是根据本发明的芯片卡的一具体实施方式,和根据本发明的芯片卡终端的一具体实施方式,其中,一种离散对数密码的方法将应用于生成密钥S3和S4的。对图1中的具体实施方式进行补充的是,处理器11用于执行程序指令148,通过它可以得到用于生成对称密钥S3的所谓的密钥建立方案。
[0080] 根据离散对数密码(DLC)的方法,密钥建立方案开始工作,特别是椭圆曲线密码(EEC),优选根据椭圆曲线Diffie-Hellman方法(ECDH)。为了生成对称密钥S3,程序指令148首先生成第一域名参数,下面将其称为D1。
[0081] 另外,通讯模块126生成第一频道参数KA1或者从预置表格中读出,其定义了第一通讯频道的物理特性。第一频道参数KA1与图1的具体实施方式的频道参数K1是相应的。
[0082] 域名参数D1和频道参数KA1在密钥S1的辅助下由程序指令128进行编码。借助密钥S1,由KA1和D1得到的密码110通过预定义的通讯频道108从接口102发送给接口106。
[0083] 芯片卡104借助对称密钥S2,对密码110进行解码。作为解码的结果,芯片卡104得到第二频道参数KA2,其与图1的具体实施方式的通讯参数K2是相应的。另外,芯片卡得到域名参数D2。频道参数KA2通过通讯模块134进行处理,例如用来确定第二通讯频道146的物理配置。
[0084] 对图1的具体实施方式补充的是,芯片卡104具有程序指令150,它与其功能性的程序指令148是相应的,并且通过密钥建立方案从芯片卡这一面进行植入。
[0085] 通过执行程序指令148,芯片卡终端会从域名参数D1导出对称密钥S3,其将储存在芯片卡终端100的储存器152内。与之相应地,通过执行程序指令150,芯片卡104会从域名参数D2导出对称密钥S4,它储存在芯片卡104的储存器154中。
[0086] 芯片卡命令122在发送前通过芯片卡终端通过对称密钥S3进行编码,然后通过由频道参数KA1定义的第一通讯频道112传输。只有当KA2=KA1、D2=D1时,芯片卡104才可能接收芯片卡命令122,也就是只有满足条件PIN'=PIN时,才能实现。
[0087] 这种具体实施方式特别的优点在于,通过预定义的通讯频道108传输域名参数D1,不能由第三方探出,因为域名参数D1的传输是在编码形式下进行的。
[0088] 图4显示的是相应的流程图。在第400步,用户在芯片卡终端输入PIN'。从PIN'导出对称密钥S1。
[0089] 在第402步,启动密钥建立方案。接下来在第404步产生一组域名参数D1。借助域名参数D1,芯片卡终端生成对称密钥S3。另外,在第406步,芯片卡终端生成频道参数KA1,或者从预置表格中读出。
[0090] 在第408步,域名参数D1和/或频道参数KA1通过密钥S1来编码。例如,域名参数D1和频道参数KA1互相影响,由此得到一个唯一的通讯参数,它通过密钥S1进行编码。另一种方案中,只有域名参数D1或者只有频道参数KA或者部分域名参数和/或频道参数用密钥S1来编码。用密钥S1编码得到的密码以及同时没有编码的域名和/或频道参数在第410步由芯片卡终端通过预定义的频道传输给芯片卡(与图1和3中的通讯频道108比较)。
[0091] 在第412步,芯片卡在密钥S2的辅助下尝试对密码进行解码。由此,芯片卡104得到频道参数KA2和域名参数D2。芯片卡104从域名参数D2导出密钥S4。
[0092] 在第414步,芯片卡终端100生成芯片卡命令,其通过密钥S3进行编码(第416步),并通过由频道参数KA1定义的第一通讯频道进行传输(比较图1和3中具体实施方式的通讯频道112)。芯片卡终端100在第418步发送芯片卡命令。
[0093] 在第420步,只有当第二通讯频道146与第一通讯频道112一致时,也就是KA2=KA1时,除此之外还要通过密钥S4对芯片卡命令成功解码时,也就是S4=S3时,芯片卡才能正确接收密码。如果客户在芯片卡终端输入的PIN’正确,也就是PIN'=PIN,才能满足条件KA2=KA1和S4=S3。
[0094] 附图标记清单
[0095] ---------------------------------
[0096] 100    产品
[0097] 102    接口
[0098] 104    芯片卡
[0099] 106    接口
[0100] 108    通讯频道
[0101] 110    通讯参数
[0102] 112    通讯频道
[0103] 114    用户接口
[0104] 116    PIN'
[0105] 118    处理器
[0106] 120    应用程序
[0107] 122    芯片卡命令
[0108] 124    芯片卡功能
[0109] 126    通讯模块
[0110] 128    程序指令
[0111] 130    密钥生成器
[0112] 132    处理器
[0113] 134    通讯模块
[0114] 136    程序指令
[0115] 138    储存区
[0116] 140    PIN
[0117] 142    密钥生成器
[0118] 144    错误操作计数器
[0119] 146    第二通讯频道
[0120] 148    程序指令
[0121] 150    程序指令
[0122] 152    储存器
[0123] 154    储存器