安全芯片的通信方法与流程

文档序号:18164404发布日期:2019-07-13 09:30阅读:426来源:国知局
安全芯片的通信方法与流程

本发明是关于安全芯片,特别是关于一种安全芯片的通信方法。



背景技术:

随着微电子技术的发展,安全芯片的应用越来越广泛。例如pos机、银行atm、电动汽车充电桩,这些涉及交易数据安全的终端设备普遍内置安全芯片进行用户数据的运算操作。而在工业控制领域各种监控、采集、测量设备为了验证设备身份,进行加解密运算更是广泛装备安全芯片。

现有的安全芯片大多具备iso/iec7816接口,以dip8的方式安装在主控设备电路板中。安全芯片iso/iec7816接口是一种慢速串行接口,默认速率为9.6kbps,每次通信的数据包小于255字节。iso/iec7816系列规范将安全芯片可以执行的操作规范化为apdu指令,例如文件读写、取随机数、文件选择等。主控芯片通过7816接口向安全芯片发送apdu指令来操作安全芯片。

基于此,本申请的发明人发现,现有基于iso/iec7816标准的安全芯片通信方案,在进行大数据处理时,需要将数据分包传输,形成级联的命令序列,这将导致安全芯片执行效率进一步下降。

并且由于现在人们安全意识的提升,各行业都提出数据保护的应用需求,导致安全芯片需要处理的数据量极大增加。相应的,与安全芯片对应的后台服务器,由于数据多导致处理速度降低,安全芯片的处理效率也随之下降。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

本发明的目的在于提供一种安全芯片的通信方法,其能够提高安全芯片的处理效率。

为实现上述目的,本发明提供了一种安全芯片的通信方法,其中,安全芯片与主控芯片通过spi接口进行通信,所述通信方法包括:主控芯片对spi接口进行初始化;所述主控芯片将sip接口的片选信号置低,向安全芯片发送指令信息,发送完成后将该片选信号置高,其中,所述指令信息包括起始标识以及指令内容;所述安全芯片执行所述指令内容,在执行完成后,发送响应信息,其中,所述响应信息包括:起始标识以及响应状态字;所述主控芯片将所述片选信号置低,获取安全芯片的响应信息;所述主控芯片判断所述响应信息的起始标识是否为第一预设标识,若是则读取响应信息,并将所述片选信号置高。

在一优选的实施方式中,所述指令信息中还包括第一数据信息。

在一优选的实施方式中,所述响应信息中还包括第二数据信息。

在一优选的实施方式中,所述指令信息还包括第一校验值;所述第一校验值为对指令信息中除起始标识以外的所有字节进行异或计算,并对所述异或计算的结果取反后的值。

在一优选的实施方式中,所述响应信息还包括第二校验值;所述第二校验值为对响应信息中除起始标识以外的所有字节进行异或计算,并对所述异或计算的结果取反后的值。

在一优选的实施方式中,所述获取安全芯片的响应信息之后,还包括:主控芯片判断所述响应信息的起始标识是否为第二预设标识;若是则重发指令信息,并将片选信号置高。

在一优选的实施方式中,所述安全芯片执行所述指令内容包括:所述安全芯片根据指令信息中的第一数据信息以及预存的算法进行计算;若根据指令信息中的第一数据信息以及预存的算法进行计算的结果与指令信息中的第一校验值相同,则执行所述指令内容。

在一优选的实施方式中,所述读取响应信息中的内容之后,还包括:根据响应信息中的第二数据信息以及预存的算法进行计算;若根据响应信息中的第二数据信息以及预存的算法进行计算的结果与响应信息中的第二校验值不相同,则重新启动接收流程。在一优选的实施方式中,所述重新启动接收流程包括:将片选信号置高,保持高电平10us后,再将片选信号置低。

与现有技术相比,根据本发明的安全芯片的通信方法,利用spi接口实现安全芯片的数据通信,避免传统安全芯片需要发送过程字节的操作,简化数据交互流程,在大数据传输时提高了执行效率,降低安全芯片对应的后台服务器的处理压力,进一步提高安全芯片的处理效率,提高数据传输的安全性。

附图说明

图1是根据本发明一实施方式的安全芯片接收数据信号图。

图2是根据本发明一实施方式的安全芯片发送数据信号图。

图3是根据本发明一实施方式的安全芯片的通信方法的流程图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

串行外设接口(英文全称:serialperipheralinterface,英文缩写:spi)总线系统是一种同步串行外设接口,它可以使mcu与各种外围设备以串行方式进行通信以交换信息。本实施例中,通过在主控芯片和安全芯片上设置spi接口,使主控芯片和安全芯片使用spi进行通信。

spi接口一般包括:时钟信号(sck)由主设备产生、主机输入/从机输出数据线miso、主机输出/从机输入数据线mosi和片选信号ssn。ssn为安全芯片片选信号输入端当芯片处于工作状态时,本端口有高电平及低电平两种逻辑状态,低电平表示芯片使能。

spi工作方式可以采用mode3,时钟极性(cpol=1),串行同步时钟的空闲状态为高电平,时钟相位(cpha=1),在串行同步时钟的下降沿转换数据,上升沿采样数据。

如图1所示,其为根据本发明的安全芯片接收数据信号图,主设备发送数据,安全芯片接收数据。主设备在发送数据时,miso引脚需保持接收状态。本实施例中spi接口收、发依次单工进行,主设备使用mosi引脚发送数据时,miso引脚上的数据为无效数据,主设备无需做处理,直接舍弃或不接收。

如图2所示,其为根据本发明的安全芯片发送数据信号图,主设备接收数据,安全芯片发送数据。主设备在接收数据时,mosi引脚应始终保持低电平。当芯片处于非通信状态时,mosi应处于高阻态。

如图3所示,其为根据本发明优选实施方式的安全芯片的通信方法的流程图,其中,安全芯片作为从设备,主控芯片作为主设备,安全芯片在主控芯片的控制下与所述主控芯片通过spi接口进行通信,本实施例中的所述通信方法包括:步骤s1-步骤s6。

步骤s1,主控芯片对spi接口进行初始化。

步骤s2,主控芯片将spi接口的片选信号置低,也就设置是ssn=0。向安全芯片发送指令信息,发送完成后将片选信号置高,也就设置是ssn=1。其中,所述指令信息包括起始标识以及指令内容。

具体的,指令信息还可以包括命令输出参数以及指令分级。表1为spi通信的安全芯片的指令信息格式,请参阅表1。spi的数据包以一个字节的起始标识为数据开始标识,可以为0x55。cla和ins组合表示指令内容,p1和p2是一个指令代码的参数,len1表示后续cmd_data的长度,用2字节表示。在一种实现方式中,指令信息还可以包括第一数据,数据长度由len1指定。在一种实现方式中,指令信息还可以包括第一校验值,第一校验值为对指令信息中除起始标识以外的所有字节进行异或计算,并对所述异或计算的结果取反后的值。第一校验值为本包数据的校验和,其结果为1字节。本实施例将数据包长度扩展至64k。

表1spi通信的安全芯片的指令信息格式

其中,起始标识、指令分级、指令内容、参数1、参数2以及数据长度为命令头,每个指令信息中必须包括指令头。第一数据可以为空。

步骤s3,所述安全芯片执行所述指令内容,在执行完成后,发送响应信息,其中,所述响应信息包括:起始标识以及响应状态字。

在步骤s3之前,还可以包括:步骤s30,判断所述指令信息的起始标识是否为第一预设标识,若是则读取指令信息;其中,第一预设标识可以为0x55。通过在指令信息中设置起始标识,可以判断该信息是否为主控芯片发送的指令。

其中,所述安全芯片执行所述指令内容具体包括:

步骤s31,所述安全芯片根据指令信息中的第一数据信息以及预存的算法进行计算。

步骤s32,若根据指令信息中的第一数据信息以及预存的算法进行计算的结果与指令信息中的第一校验值相同,则执行所述指令内容。

由此,实现对接收的命令信息进行校验,提高了数据传输的安全性。

步骤s4,主控芯片将片选信号置低,获取安全芯片的响应信息。

具体的,表2为spi通信的安全芯片的响应信息格式,请参阅表2。当安全芯片执行完指令后需要将命令执行结果也就是响应信息返回给主控芯片。响应信息包括一个字节的起始标识作为数据开始标识,响应状态字。还可以包括响应长度以及第二数据信息。sw1是指令执行完毕后,从设备返回的状态字的高字节;sw2是指令执行完毕后,从设备返回的状态字的低字节。在一种实现方式中,响应信息还可以包括第二数据,第二数据是安全芯片处理数据完毕后,返回的输出数据。len2是第二数据rsp_data的长度。在一种实现方式中,响应信息还可以包括第二校验为对指令信息中除起始标识以外的所有字节进行异或计算,对所述异或计算的值取反。

表2spi通信的安全芯片的响应信息格式

步骤s5,主控芯片判断所述响应信息的起始标识是否为第一预设标识,若是则读取响应信息中的信息;其中,第一预设标识可以为0x55。

步骤s6,将片选信号置高。

具体的,通过判断所述响应信息的起始标识是否为第一预设标识来判断指令是否执行完成,当收到0x55时,表示指令执行完成可以获取执行结果。需要说明的是,ssn每次拉低以后需要等待一段时间后才可以进行spi通讯,该等待时间大于10tclock。每次spi通讯结束后,需等待一段时间才可以将ssn拉高,该等待时间大于3tclock。ssn每次拉高必须维持一定的时间大于10tclock。查询时,spi主设备每隔一段时间接收一个数据,并判断是否为0x55,该间隔时间大于15tclock。总的查询时间大于3s。

由此,本实施例提供的安全芯片的通信方法,利用spi接口实现安全芯片的数据通信,避免传统安全芯片需要发送过程字节的操作,简化数据交互流程,在大数据传输时提高了执行效率,降低安全芯片对应的后台服务器的处理压力,进一步提高安全芯片的处理效率,提高数据传输的安全性。

并且为提升安全芯片的工作效率及快速推广安全芯片在不同领域的应用打下了坚实基础。

在一种实现方式中,步骤s4之后还可以包括:步骤s61-步骤s62。

步骤s61,主控芯片判断所述响应信息的起始标识是否为第二预设标识,其中,第二预设标识可以为6a90。

步骤s62,若是则重发指令信息,并将片选信号置高。

由此,通过主控芯片发送指令信息后,如果芯片返回的错误码为6a90,表明数据在传输时出现错误,此时终端可以重发指令。

在一种实现方式中,步骤s5之后还可以包括:步骤s71-72。

步骤s71,根据响应信息中的第二数据信息以及预存的算法进行计算。

步骤s72,若根据响应信息中的第二数据信息以及预存的算法进行计算的结果与响应信息中的第二校验值不相同,则重新启动接收流程。

主控芯片收到数据后,需校验从芯片接收的lrc2与根据响应信息中第二数据计算的校验值是否一致,具体通过对响应信息中除起始标识以外的所有字节进行异或计算,并对所述异或计算的值取反,将取反后的结果与从芯片接收的lrc2进行对比。

如果不一致,说明芯片数据在传输过程中出现错误,此时终端重新启动接收流程。其中,重新启动接收流程包括:将ssn置高,高电平保持时间至少10us以上,再将ssn置低,保持mosi置高或低,进入指令查询和接收流程。

若执行步骤s71-73,则无需执行步骤s6。

本实施例将apdu指令传输的交互过程分为以下几种情况进行详细说明。

第一种指令信息格式:控制芯片发送的指令中无数据域,芯片返回的响应信息中也没有响应数据。

在此种情况下,控制芯片发送命令信息包括:0x55,cla,ins,p1,p2,len1=0,lrc1;安全芯片返回的响应信息包括:0x55,sw1,sw2,len2=0,lrc2。

第二种指令信息格式:控制芯片发送的指令中有数据域,芯片返回的响应信息中没有响应数据。

在此种情况下,控制芯片发送命令信息包括:0x55,cla,ins,p1,p2,len1,cmd_data,lrc1;安全芯片返回的响应信息包括:0x55,sw1,sw2,len2=0,lrc2。

第三种指令信息格式:控制芯片发送的指令中无数据域,芯片返回的响应信息中有响应数据。

在此种情况下,返回数据的长度可以由cmd_data表示(即len1表明有2个数据,cmd_data表示响应应该返回的数据长度)。控制芯片发送命令信息包括:0x55,cla,ins,p1,p2,len1=2,cmd_data,lrc1;安全芯片返回的响应信息包括:0x55,sw1,sw2,len2,rsp_data,lrc2。

返回数据的长度还可以由命令头的p1、p2字段决定。控制芯片发送命令信息包括:0x55,cla,ins,p1,p2,len1=0,lrc1;安全芯片返回的响应信息包括:0x55,sw1,sw2,len2,rsp_data,lrc2。

第四种指令信息格式:控制芯片发送的指令中有数据域,芯片返回的响应信息中也有响应数据。

在此种情况下,控制芯片发送命令信息包括:0x55,cla,ins,p1,p2,len1,cmd_data,lrc1;安全芯片返回的响应信息包括:0x55,sw1,sw2,len2,rsp_data,lrc2。

本实施例提供的通信方法,同时兼容spi和iso/iec7816通信接口,在spi工作模式下,传输速率可以达到10mbps以上。安全芯片作为终端数据处理单元可以以较低成本实现工业领域终端设备的方案防护,极大扩展现有安全芯片的应用范围。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1