建立数据交互通道的方法和系统、智能卡、服务器的制作方法

文档序号:7753780阅读:444来源:国知局
专利名称:建立数据交互通道的方法和系统、智能卡、服务器的制作方法
技术领域
本发明涉及一种建立数据交互通道的方法和系统、智能卡、服务器,尤其是用于在 智能卡和远程服务器间建立远程数据交互通道的方法、系统、智能卡、服务器。
背景技术
近年来,智能卡(如手机SIM卡、U盾、银行卡等)的功能迅速发展,许多智能卡已 经可以通过智能卡网络服务器(Smart Card Web Server)与远程服务器进行数据交互。例 如,通过STK(USAT)或OTA通讯方式,使用(U) SIM卡的手机用户可以享受手机银行、手机证 券、网页浏览等功能。因此,在智能卡和服务器间建立一个安全的数据交互通道以保证数据 在传输过程中的完整性、安全性就显得十分重要。通常的数据交互通道包括握手层和记录层;握手层主要是建立数据交互通道的过 程,用于智能卡和服务器的相互认证,并确定在记录层中用的传输协议版本、密钥、向量等 参数;记录层主要利用握手层建立的数据交互通道进行数据传输。显然,在上述握手层中必然包括大量在智能卡和服务器间交互握手消息的过程。 为了保证这些消息传输的准确性,现有作法是智能卡和服务器分别将各自接收和发送的全 部握手消息存储下来,在握手完成后分别对各自存储的全部握手消息的数据做MAC运算得 到MAC值(Message Authentication Codes,消息认证码),再对智能卡和服务器中的MAC 值进行比较,如果二者相同则认为消息传输过程正确,如不同则说明消息传输过程存在错 误或被篡改。发明人发现现有技术中至少存在如下问题智能卡和服务器要分别将各自发送和 接收的消息全部存储下以进行MAC运算,这样会占用智能卡和服务器中的大量存储空间。

发明内容
本发明的实施例提供一种建立数据交互通道的方法,其可减少对设备存储空间的 占用。为达到上述目的,本发明的实施例采用如下技术方案一种建立数据交互通道的方法,包括智能卡和服务器交互至少两条握手消息,并分别同步地对所述握手消息的数据做 MAC运算以分别得到MAC值;其中所述智能卡和服务器分别同步地对所述握手消息的数据 做MAC运算以分别得到MAC值包括所述智能卡和服务器分别同步地对一条所述握手消息 的数据做MAC运算,并分别保存所得的中间值,以用于分别对下一条所述握手消息的数据 做MAC运算;比较所述智能卡和服务器中的MAC值。其中,“握手消息”是指在建立数据交互通道的过程中用的、除了下述比较MAC值的 消息外的其它全部消息,包括确定记录层中的参数用的消息、服务器和智能卡进行相互认 证用的消息、生成新预共享密钥用的消息等。上述“对所述握手消息的数据做MAC运算以分别得到MAC值”的意义为对一条握手消息的数据做MAC运算得到中间值,保存该中间值以 用于对下一条握手消息的数据做MAC运算,在经过至少两次MAC运算后(当然也可为更多 次),在最终的MAC运算中得到MAC值。上述“智能卡和服务器分别同步做MAC运算”的意 义为,对于某条握手消息的数据,智能卡和服务器或者同时对其做MAC运算(指智能卡和服 务器分别对各自接收或发送的消息的数据做MAC运算),或者都不对其做MAC运算。由于本发明实施例的建立数据交互通道的方法是对单条消息的数据逐一做MAC 运算,并将运算得到的中间值用于对下一条消息的MAC运算,所以设备中任何时候只用存 储一条消息和一个中间值(或MAC值),而不用将全部消息都存储下来,故其占用的存储空 间较少。本发明的实施例还提供一种智能卡,其所需的存储空间较少。为达到上述目的,本发明的实施例采用如下技术方案一种智能卡,包括发送单元,用于发送握手消息和第一 MAC值;接收单元,用于接收握手消息和第二 MAC值;MAC运算单元,用于对所述握手消息的数据做MAC运算以得到第一 MAC值;其中所 述对所述握手消息的数据做MAC运算以得到第一 MAC值包括对一条所述握手消息的数据 做MAC运算,并保存所得的中间值,以用于对下一条所述握手消息的数据做MAC运算;比较单元,用于比较所述第一 MAC值和第二 MAC值。由于本发明实施例的智能卡中的MAC运算单元可对单条消息的数据逐一做MAC运 算,并将运算得到的中间值用于对下一条消息的MAC运算,所以智能卡中任何时候只用存 储一条消息和一个中间值(或MAC值),而不用将全部消息都存储下来,故其所需的存储空 间较少。本发明的实施例还提供一种服务器,其所需的存储空间较少。为达到上述目的,本发明的实施例采用如下技术方案一种服务器,包括发送单元,用于发送握手消息和第一 MAC值;接收单元,用于接收握手消息和第二 MAC值;MAC运算单元,用于对所述握手消息的数据做MAC运算以得到第一 MAC值;其中所 述对所述握手消息的数据做MAC运算以得到第一 MAC值包括对一条所述握手消息的数据 做MAC运算,并保存所得的中间值,以用于对下一条所述握手消息的数据做MAC运算;比较单元,用于比较所述第一 MAC值和第二 MAC值。由于本发明实施例的服务器中的MAC运算单元可对单条消息的数据逐一做MAC运 算,并将运算得到的中间值用于对下一条消息的MAC运算,所以服务器中任何时候只用存 储一条消息和一个中间值(或MAC值),而不用将全部消息都存储下来,故其所需的存储空 间较少。本发明的实施例还提供一种用于建立数据交互通道的系统,其所需的存储空间较 少。为达到上述目的,本发明的实施例采用如下技术方案一种用于建立数据交互通道的系统,包括智能卡和服务器,其中,
所述智能卡包括发送单元,用于向所述服务器发送握手消息和智能卡MAC值;接收单元,用于接收来自所述服务器的握手消息和服务器MAC值;MAC运算单元,用于与所述服务器同步地对所述握手消息的数据做MAC运算以得 到智能卡MAC值;其中所述与所述服务器同步地对所述握手消息的数据做MAC运算以得到 智能卡MAC值包括对一条所述握手消息的数据做MAC运算,并保存所得的中间值,以用于 对下一条所述握手消息的数据做MAC运算;比较单元,用于比较所述智能卡MAC值和服务器MAC值;所述服务器包括发送单元,用于向所述智能卡发送握手消息和服务器MAC值;接收单元,用于接收来自所述智能卡的握手消息和智能卡MAC值;MAC运算单元,用于与所述智能卡同步地对所述握手消息的数据做MAC运算以得 到服务器MAC值,其中所述与所述智能卡同步地对所述握手消息的数据做MAC运算以得到 服务器MAC值包括对一条所述握手消息的数据做MAC运算,并保存所得的中间值,以用于 对下一条所述握手消息的数据做MAC运算;比较单元,用于比较所述服务器MAC值和智能卡MAC值。由于本发明实施例的用于建立数据交互通道的系统中的智能卡和服务器中的MAC 运算单元可对单条消息的数据逐一做MAC运算,并将运算得到的中间值用于对下一条消息 的MAC运算,所以一个设备中任何时候只用存储一条消息和一个中间值(或MAC值),而不 用将全部消息都存储下来,故其所需的存储空间较少。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。图1为本发明实施例一的建立数据交互通道的方法的流程图;图2为本发明实施例二的建立数据交互通道的方法的过程示意图;图3为本发明实施例三的智能卡的结构示意图;图4为本发明实施例的另一种智能卡的结构示意图;图5为本发明实施例四的服务器的结构示意图;图6为本发明实施例的另一种服务器的结构示意图;图7为本发明实施例五的用于建立数据交互通道的系统的结构示意图;图8为本发明实施例的另一种用于建立数据交互通道的系统的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行清楚、完整 地描述;显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其
7它实施例,都属于本发明保护的范围。实施例一本发明实施例提供一种建立数据交互通道的方法,如图1所示,包括S01、智能卡和服务器交互至少两条握手消息,并分别同步地对所述握手消息的数 据做MAC运算以分别得到MAC值;其中所述智能卡和服务器分别同步地对所述握手消息的 数据做MAC运算以分别得到MAC值包括所述智能卡和服务器分别同步地对一条所述握手 消息的数据做MAC运算,并分别保存所得的中间值,以用于分别对下一条所述握手消息的 数据做MAC运算;S02、比较所述智能卡和服务器中的MAC值。显然,本发明实施例的建立数据交互通道的方法中可只对部分握手消息的数据 (至少为两条)做MAC运算,也可对全部的握手消息的数据做MAC运算;对MAC值的比较可 进行多次(每两次比较之间均包括对至少两条握手消息的数据做MAC运算以得到MAC值的 步骤),也可只进行一次MAC值比较。但优选的,可对全部握手消息的数据做MAC运算,并在 握手消息交互完成后对最终的MAC值进行一次比较。本发明实施例的建立数据交互通道的方法中对单条消息的数据逐一做MAC运算, 并将运算得到的中间值用于对下一条消息的MAC运算,显然,只要任意一条消息出现错误 (即智能卡和服务器发送/接收的消息不同),则之后智能卡和服务器得到的中间值或MAC 值都会不同,通过比较最终MAC值就可验证全部数据的正确性。因此,设备中任何时候只用 存储一条消息和一个中间值(或MAC值),而不用将全部消息都存储下来,故其占用的存储 空间较少。实施例二本发明实施例提供一种建立数据交互通道的方法,其中智能卡和服务器中分别预 设有相同的16字节的预共享密钥(第一密钥)、序列数算法、序列数初始值等。如图2所 示,建立数据交互通道的方法包括步骤1、服务器产生一个8字节的随机数,并将其以数据短信的形式发送给智能 卡。智能卡和服务器分别对该随机数消息的数据做MAC (指服务器对其发送的消息的数据 做MAC,而智能卡对其接收到相应的消息的数据做MAC),得到用于下一步MAC运算的中间值。步骤2、智能卡和服务器分别对该随机数进行运算(如MAC运算、哈希运算等)以 得到32字节的结果,智能卡和服务器分别取该结果的前16字节用各自的预共享密钥采用 3DES CBC算法进行加密,得到16字节的密钥(第二密钥),并分别用该密钥替代各自的预 共享密钥(即用该密钥作为新的预共享密钥,也即更新第一密钥)。通过这种方法,每次建 立数据交互通道的过程中都会生成新的用于认证的预共享密钥,因此即使在某次认证中预 共享密钥被盗,也不会对之后的建立数据交互通道的过程造成影响。显然,上述更新第一密 钥的步骤只要在智能卡和服务器利用第一密钥相互认证之前进行即可。步骤3、智能卡发送客户请求(ClientHell0)消息给服务器,内容包括智能卡支 持的传输协议和密码算法、智能卡随机数(32字节)。智能卡和服务器分别将各自的序列数 加到客户请求消息的数据中(例如加到客户请求消息后边,该加序列数的操作主要用于避 免消息传输顺序出现错误),之后分别更新各自的序列数(例如分别将各自的序列数加1);智能卡和服务器再分别对客户请求消息的数据(带有序列数的数据)做MAC得到新的中间 值(即将客户请求消息的数据输入上一步MAC运算用的MAC函数中,利用上一步MAC运算 得到的中间值对数据进行update的MAC运算)。步骤4、服务器发送服务器请求(Serverifello)消息给智能卡,内容包括选用的 传输协议和密码算法(都用于记录层中)、服务器随机数(32字节)、对智能卡随机数用预 共享密钥(指被替代后的预共享密钥,下同)加密后的值。智能卡和服务器分别对服务器 请求消息的数据做MAC得到新的中间值。步骤5、智能卡用预共享密钥解密得智能卡随机数并与自身保存的智能卡随机数 相比较,相同则服务器认证通过。步骤6、服务器发送服务器请求完成(ServerifelloDone)消息给智能卡。智能卡和 服务器分别对服务器请求完成消息的数据做MAC得到新的中间值。步骤7、智能卡发送密钥交换(ClientKeyXchg)消息给服务器,内容包括用预共 享密钥分别对服务器随机数和预主密钥(48字节,由智能卡生成)加密后的值。智能卡和 服务器并分别将各自的序列数加到密钥交换消息的数据中,再分别将各自的序列数更新, 并分别对密钥交换消息的数据做MAC得到新的中间值。步骤8、智能卡用预主密钥生成主密钥,并用该主密钥生成记录层中用的密钥、向 量等参数。服务器用预共享密钥解密得到服务器随机数和预主密钥;再比较解密的服务器 随机数和自身保存的服务器随机数,相同则智能卡认证通过;同时用预主密钥按与智能卡 相同的算法生成主密钥,再用主密钥生成记录层中用的密钥、向量等参数。步骤9、智能卡发送密码改变说明(ChangeCipherSpec)消息给服务器,内容包括 上述的记录层中用的参数。智能卡和服务器并分别将各自的序列数加到密码改变说明消息 的数据中,再分别将各自的序列数更新,并分别对密码改变说明消息的数据做MAC得到新 的中间值。步骤10、智能卡发送完成(Finished)消息给服务器。智能卡和服务器并分别将各 自的序列数加到完成消息的数据中,再分别将各自的序列数更新,并分别对完成消息的数 据做MAC得到新的中间值。步骤11、服务器发送密码改变说明消息给智能卡,验证服务器和智能卡中生成的 用于记录层的参数是否相同。智能卡和服务器分别对密码改变说明消息的数据做MAC得到 新的中间值。步骤12、服务器发送完成消息给智能卡。智能卡和服务器分别对完成消息的数据 做MAC,得到最终的MAC值(即将完成消息的数据输入上述MAC函数中,用最新的中间值进 行final运算,使函数输出最终的MAC值结果)。步骤13、智能卡用AES算法和预共享密钥加密其中的最终MAC值,并将加密结果发 送给服务器。步骤14、服务器用预共享密钥解密接收到的加密的MAC值,并比较解密的MAC值与 自身存储的最终MAC值,如相同则表明上述过程中传输的消息没有被篡改。步骤15、服务器用AES算法和预共享密钥加密其存储的最终MAC值,并将加密结果 发送给智能卡。步骤16、智能卡用预共享密钥解密接收到的加密的MAC值,并比较解密的MAC值与
9自身存储的最终MAC值,如相同则表明上述过程中传输的消息没有被篡改。显然,上述建立数据交互通道的方法可进行许多本领域技术人员公知的变化,例 如可只对部分消息做MAC ;可进行多次MAC值比较;比较MAC值时可不经加密而直接传输; 在智能卡接收/服务器发送消息时也可进行加序列数的操作,也可完全不进行加序列数的 操作;序列数可按其它方式加到消息数据中(如加到消息前边或与消息混编);可用不同的 算法生成预共享密钥;可用不同的方法利用预共享密钥进行认证;部分消息的内容、发送 顺序、加密情况可变化(例如可先发送客户请求消息再发送随机数消息,或也可一同发送 随机数消息与客户请求消息,或可将随机数消息加密后再发送);可选用不同的密钥位数、 随机数位数;各步骤可采用不同的具体算法、密钥等。实施例三本发明实施例提供一种智能卡11,如图3所示,其包括发送单元12,用于发送握手消息和第一 MAC值;接收单元13,用于接收握手消息和第二 MAC值;MAC运算单元14,用于对所述握手消息的数据做MAC运算以得到第一 MAC值;其中 所述对所述握手消息的数据做MAC运算以得到第一 MAC值包括对一条所述握手消息的数 据做MAC运算,并保存所得的中间值,以用于对下一条所述握手消息的数据做MAC运算;比较单元15,用于比较所述第一 MAC值和第二 MAC值。可选的,如图4所示,本发明实施例的智能卡11还可包括序列数更新单元16,用于生成并更新序列数,并将所述序列数加到所述握手消息 的数据中;密钥更新单元17,用于确定随机数,并用所述随机数和存储的第一密钥生成第二 密钥,再用所述第二密钥替代所述第一密钥。由于本发明实施例的智能卡中的MAC运算单元可对单条消息的数据逐一做MAC运 算,并将运算得到的中间值用于对下一条消息的MAC运算,所以智能卡中任何时候只用存 储一条消息和一个中间值(或MAC值),而不用将全部消息都存储下来,故其所需的存储空 间较少。实施例四本发明实施例提供一种服务器21,如图5所示,其包括发送单元22,用于发送握手消息和第一 MAC值;接收单元23,用于接收握手消息和第二 MAC值;MAC运算单元24,用于对所述握手消息的数据做MAC运算以得到第一 MAC值;其中 所述对所述握手消息的数据做MAC运算以得到第一 MAC值包括对一条所述握手消息的数 据做MAC运算,并保存所得的中间值,以用于对下一条所述握手消息的数据做MAC运算;比较单元25,用于比较所述第一 MAC值和第二 MAC值。可选的,如图6所示,本发明实施例的服务器21还可包括序列数更新单元26,用于生成并更新序列数,并将所述序列数加到所述握手消息 的数据中;密钥更新单元27,用于确定随机数,并用所述随机数和存储的第一密钥生成第二 密钥,再用所述第二密钥替代所述第一密钥。
10
由于本发明实施例的服务器中的MAC运算单元可对单条消息的数据逐一做MAC运 算,并将运算得到的中间值用于对下一条消息的MAC运算,所以服务器中任何时候只用存 储一条消息和一个中间值(或MAC值),而不用将全部消息都存储下来,故其所需的存储空 间较少。实施例五本发明实施例提供一种用于建立数据交互通道的系统,如图7所示,其包括智能 卡11和服务器21,其中,智能卡11包括发送单元12,用于向所述服务器21发送握手消息和智能卡MAC值;接收单元13,用于接收来自所述服务器21的握手消息和服务器MAC值;MAC运算单元14,用于与所述服务器21同步地对所述握手消息的数据做MAC运算 以得到智能卡MAC值;其中所述与所述服务器21同步地对所述握手消息的数据做MAC运算 以得到智能卡MAC值包括对一条所述握手消息的数据做MAC运算,并保存所得的中间值, 以用于对下一条所述握手消息的数据做MAC运算;比较单元15,用于比较所述智能卡MAC值和服务器MAC值;服务器21包括发送单元22,用于向所述智能卡11发送握手消息和服务器MAC值;接收单元23,用于接收来自所述智能卡11的握手消息和智能卡MAC值;MAC运算单元24,用于与所述智能卡11同步地对所述握手消息的数据做MAC运算 以得到服务器MAC值,其中所述与所述智能卡11同步地对所述握手消息的数据做MAC运算 以得到服务器MAC值包括对一条所述握手消息的数据做MAC运算,并保存所得的中间值, 以用于对下一条所述握手消息的数据做MAC运算;比较单元25,用于比较所述服务器MAC值和智能卡MAC值。可选的,如图8所示,本发明实施例的用于建立数据交互通道的系统中,智能卡11 还可包括序列数更新单元16,用于按第一算法与所述服务器21同步地生成并更新序列数, 并将所述序列数加到所述握手消息的数据中;密钥更新单元17,用于与所述服务器21同步随机数,并用所述随机数和存储的第 一密钥按第二算法生成第二密钥,再用所述第二密钥替代所述第一密钥;而服务器21还可包括序列数更新单元26,用于按第一算法与所述智能卡11同步地生成并更新序列数, 并将所述序列数加到所述握手消息的数据中;密钥更新单元27,用于与所述智能卡11同步随机数,并用所述随机数和存储的第 一密钥按第二算法生成第二密钥,再用所述第二密钥替代所述第一密钥。由于本发明实施例的用于建立数据交互通道的系统中的智能卡和服务器中的MAC 运算单元可对单条消息的数据逐一做MAC运算,并将运算得到的中间值用于对下一条消息 的MAC运算,所以一个设备中任何时候只用存储一条消息和一个中间值(或MAC值),而不 用将全部消息都存储下来,故其所需的存储空间较少。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理 器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能 的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本申请范围的所有变更和修改。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应 涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
权利要求
一种建立数据交互通道的方法,其特征在于,包括智能卡和服务器交互至少两条握手消息,并分别同步地对所述握手消息的数据做MAC运算以分别得到MAC值;其中所述智能卡和服务器分别同步地对所述握手消息的数据做MAC运算以分别得到MAC值包括所述智能卡和服务器分别同步地对一条所述握手消息的数据做MAC运算,并分别保存所得的中间值,以用于分别对下一条所述握手消息的数据做MAC运算;比较所述智能卡和服务器中的MAC值。
2.根据权利要求1所述的建立数据交互通道的方法,其特征在于,至少有一条所述握 手消息的数据中包括序列数,所述序列数由所述智能卡和服务器按相同的算法分别同步地 生成并加到所述握手消息的数据中。
3.根据权利要求2所述的建立数据交互通道的方法,其特征在于,还满足下列两条件 中的至少一个所述智能卡每发送一条握手消息后,所述智能卡将其生成的所述序列数加入其发送的 所述握手消息的数据中,所述服务器将其生成的所述序列数加入其接收到的所述握手消息 的数据中;所述智能卡和服务器再分别对各自的所述序列数进行更新;所述服务器每发送一条握手消息后,所述服务器将其生成的所述序列数加入其发送的 所述握手消息的数据中,所述智能卡将其生成的所述序列数加入其接收到的所述握手消息 的数据中;所述智能卡和服务器再分别对各自的所述序列数进行更新。
4.根据权利要求1至3中任意一项所述的建立数据交互通道的方法,其特征在于,还包 括在所述智能卡和服务器使用第一密钥进行一次相互认证前更新所述第一密钥;所述更 新所述第一密钥包括所述智能卡和服务器同步随机数;所述智能卡和服务器分别用所述随机数和各自存储的第一密钥按相同的算法生成第 二密钥,并分别用所述第二密钥替代所述第一密钥。
5.根据权利要求4所述的建立数据交互通道的方法,其特征在于,所述智能卡和服务 器同步随机数包括下列两步骤中的一个所述智能卡产生随机数并将其发送给所述服务器;所述服务器产生随机数并将其发送给所述智能卡。
6.根据权利要求4所述的建立数据交互通道的方法,其特征在于,所述智能卡和服务 器分别用所述随机数和各自存储的第一密钥按相同的算法生成第二密钥包括所述智能卡和服务器分别对所述随机数做MAC运算得到随机数MAC值,之后分别用所 述第一密钥对所述随机数MAC值加密,并将加密结果作为第二密钥。
7.一种智能卡,其特征在于,包括发送单元,用于发送握手消息和第一 MAC值;接收单元,用于接收握手消息和第二 MAC值;MAC运算单元,用于对所述握手消息的数据做MAC运算以得到第一 MAC值;其中所述 对所述握手消息的数据做MAC运算以得到第一 MAC值包括对一条所述握手消息的数据做 MAC运算,并保存所得的中间值,以用于对下一条所述握手消息的数据做MAC运算;比较单元,用于比较所述第一 MAC值和第二 MAC值。
8.根据权利要求7所述的智能卡,其特征在于,还包括序列数更新单元,用于生成并更新序列数,并将所述序列数加到所述握手消息的数据中;密钥更新单元,用于确定随机数,并用所述随机数和存储的第一密钥生成第二密钥,再 用所述第二密钥替代所述第一密钥。
9.一种服务器,包括发送单元,用于发送握手消息和第一 MAC值; 接收单元,用于接收握手消息和第二 MAC值;MAC运算单元,用于对所述握手消息的数据做MAC运算以得到第一 MAC值;其中所述 对所述握手消息的数据做MAC运算以得到第一 MAC值包括对一条所述握手消息的数据做 MAC运算,并保存所得的中间值,以用于对下一条所述握手消息的数据做MAC运算; 比较单元,用于比较所述第一 MAC值和第二 MAC值。
10.根据权利要求9所述的服务器,其特征在于,还包括序列数更新单元,用于生成并更新序列数,并将所述序列数加到所述握手消息的数据中;密钥更新单元,用于确定随机数,并用所述随机数和存储的第一密钥生成第二密钥,再 用所述第二密钥替代所述第一密钥。
11.一种用于建立数据交互通道的系统,包括智能卡和服务器,其特征在于, 所述智能卡包括发送单元,用于向所述服务器发送握手消息和智能卡MAC值; 接收单元,用于接收来自所述服务器的握手消息和服务器MAC值; MAC运算单元,用于与所述服务器同步地对所述握手消息的数据做MAC运算以得到智 能卡MAC值;其中所述与所述服务器同步地对所述握手消息的数据做MAC运算以得到智能 卡MAC值包括对一条所述握手消息的数据做MAC运算,并保存所得的中间值,以用于对下 一条所述握手消息的数据做MAC运算;比较单元,用于比较所述智能卡MAC值和服务器MAC值; 所述服务器包括发送单元,用于向所述智能卡发送握手消息和服务器MAC值; 接收单元,用于接收来自所述智能卡的握手消息和智能卡MAC值; MAC运算单元,用于与所述智能卡同步地对所述握手消息的数据做MAC运算以得到服 务器MAC值,其中所述与所述智能卡同步地对所述握手消息的数据做MAC运算以得到服务 器MAC值包括对一条所述握手消息的数据做MAC运算,并保存所得的中间值,以用于对下 一条所述握手消息的数据做MAC运算;比较单元,用于比较所述服务器MAC值和智能卡MAC值。
12.根据权利要求11所述的用于建立数据交互通道的系统,其特征在于, 所述智能卡还包括序列数更新单元,用于按第一算法与所述服务器同步地生成并更新序列数,并将所述 序列数加到所述握手消息的数据中;密钥更新单元,用于与所述服务器同步随机数,并用所述随机数和存储的第一密钥按第二算法生成第二密钥,再用所述第二密钥替代所述第一密钥; 所述服务器还包括序列数更新单元,用于按第一算法与所述智能卡同步地生成并更新序列数,并将所述 序列数加到所述握手消息的数据中;密钥更新单元,用于与所述智能卡同步随机数,并用所述随机数和存储的第一密钥按 第二算法生成第二密钥,再用所述第二密钥替代所述第一密钥。
全文摘要
本发明提供一种建立数据交互通道的方法和系统、智能卡、服务器,属于数据交互技术领域,可解决现有的建立数据交互通道的方法占用设备存储空间过大的问题。本发明的建立数据交互通道的方法中智能卡和服务器同步对握手消息的数据做MAC运算以得到MAC值,再比较该MAC值,其中通过MAC运算得到MAC值的过程包括智能卡和服务器同步地对一条握手消息的数据做MAC运算,并分别保存所得的中间值,以用于对下一条握手消息的数据做MAC运算。本发明的智能卡和服务器包括发送和接收单元、MAC运算单元、比较单元。本发明的用于建立数据交互通道的系统包括智能卡和服务器。本发明可用于建立远程数据交互通道。
文档编号H04L29/06GK101895537SQ201010222528
公开日2010年11月24日 申请日期2010年6月30日 优先权日2010年6月30日
发明者孙婉丽, 张楠 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1