一种基于倒排技术的智能安全芯片的指令分发方法和系统转让专利

申请号 : CN201410691480.0

文献号 : CN105608022B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赖宇阳张明明赵云钱斌林伟斌张乐平胡珊珊陈华军

申请人 : 南方电网科学研究院有限责任公司

摘要 :

本发明公开了一种基于倒排技术的智能安全芯片的指令分发方法和系统,其中,该方法包括:建立包含指令分发所需要的基本信息的指令记录;根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步。

权利要求 :

1.一种基于倒排技术的智能安全芯片的指令分发方法,其特征在于,包括:建立包含指令分发所需要的基本信息的指令记录;

根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;

建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;

自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;

根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步;

所述根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址的步骤包括:生成指令记录容器,为所述指令记录的每个基本信息分配空间;

将所述指令记录容器存储到本地;

获取指令记录在所述指令记录容器中的唯一偏移地址。

2.根据权利要求1所述的方法,其特征在于,在接收所述指令数据域后,判断所述指令是否允许被分发,如果是,则进行指令跳转和执行,并返回执行结果;如果否,则返回错误信息。

3.根据权利要求1或2所述的方法,其特征在于,所述指令分发所需要的基本信息包括:芯片类型、应用类型、指令锁定标志、指令属性、指令类型、指令字、指令数据域标志、指令函数指针,所述指令属性表示指令适用的智能安全芯片的生命周期阶段。

4.根据权利要求1所述的方法,其特征在于,所述指令字长度为1字节,范围为16进制

0x00-0xFF,共256个值。

5.一种基于倒排技术的智能安全芯片的指令分发系统,其特征在于,包括:记录建立模块,用于建立包含指令分发所需要的基本信息的指令记录;

地址分配模块,用于根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;

倒排表建立模块,用于建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;

记录定位模块,用于自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;

接收判断模块,用于根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步;

所述地址分配模块包括:

分配子模块,用于生成指令记录容器,为所述指令记录的每个基本信息分配空间;

存储子模块,用于将所述指令记录容器存储到本地;

获取子模块,用于获取指令记录在所述指令记录容器中的唯一偏移地址。

6.根据权利要求5所述的系统,其特征在于,还包括:分发判断模块,用于在接收所述指令数据域后,判断所述指令是否允许被分发,如果是,则进行指令跳转和执行,并返回执行结果;如果否,则返回错误信息。

7.根据权利要求5或6所述的系统,其特征在于,所述指令分发所需要的基本信息包括:芯片类型、应用类型、指令锁定标志、指令属性、指令类型、指令字、指令数据域标志、指令函数指针,所述指令属性表示指令适用的智能安全芯片的生命周期阶段。

8.根据权利要求5所述的系统,其特征在于,所述指令字长度为1字节,范围为16进制

0x00-0xFF,共256个值。

说明书 :

一种基于倒排技术的智能安全芯片的指令分发方法和系统

技术领域

[0001] 本发明涉及通信领域指令分发技术领域,具体地,涉及一种基于倒排技术的智能安全芯片的指令分发方法和系统。

背景技术

[0002] 在智能安全芯片尚未大规模使用之前,在相关领域被大量使用的产品主要有各种接口的存储卡、接口芯片、磁条卡。这些产品不具备对访问者的识别能力,存储数据不安全,易被伪造复制,访问者通过公开的协议可直接读取里面的数据。
[0003] 在智能安全芯片行业兴起后,传统的产品渐渐被取代,目前智能安全芯片被广泛应用到了电信、银行、电力等领域,用于数据的安全存储、身份识别、安全控制等方面。智能安全芯片中包含了CPU、存储器、安全协处理器,其产品形态包括卡片、嵌入式模块、USB设备等,对外提供的唯一接口可以是符合7816协议的接口、USB从接口、SPI接口、符合14443协议的感应接口中的一种。访问者通过接口进行应用层的指令流交互进行数据和控制的交换,指令流符合约定的传输协议。指令通常包含指令类型、指令字、参数、属性、数据域等部分组成,智能安全芯片接收指令时,进行轮询判别,确定指令是否支持,然后进行相应的解析执行。当智能安全芯片进行功能扩展时,需要对轮询机进行修改。
[0004] 目前智能安全芯片领域的指令分发多采用指令轮询方式,指令分发的时间与指令被轮询到的顺序相关,对于指令数目多的系统,最后被轮询到的指令分发时间长。对于实时性要求较高、时间敏感度较高的应用,如部分电表、终端,这种时间开销会导致指令响应失败。
[0005] 现有技术通过指令轮询方式的分发,指令分发时间与轮询顺序线性相关,最先被轮询到的指令分发时间短,最后被轮询到的指令分发时间最长,这种差异性不仅带来了较多的时间开销,也会带来通过分析指令分发时间差异进行攻击的隐患,降低了安全性。
[0006] 现有技术在指令分发时,往往需要为每条指令的分发维护一个例程,包含了条件的判别、针对不同属性的处理、指令跳转。当智能安全芯片的指令扩展或删减时,需要增加或删除例程,而例程之间的相关性带来了维护工作的复杂,同时这些例程组成的轮询机制也比较繁冗。

发明内容

[0007] 为了解决现有技术中存在的指令分发时间开销大、安全性差的问题,本发明提出了一种基于倒排技术的智能安全芯片的指令分发方法和系统。
[0008] 根据本发明的基于倒排技术的智能安全芯片的指令分发方法,包括:
[0009] 建立包含指令分发所需要的基本信息的指令记录;
[0010] 根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;
[0011] 建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;
[0012] 自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;
[0013] 根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步。
[0014] 本发明的基于倒排技术的智能安全芯片的指令分发方法,对接收指令后的分发机制进行特别设计,进行指令的倒排查找、解析、跳转、返回,使得维护简单,指令分发的速度和安全性得以提高。解决了现有的指令分发过程中,轮询模式带来的分发时间不固定,开销大的问题。采用倒排技术,通过指令字、指令类型、指令属性等关键字查找指令记录,对于任意来自终端设备的指令请求,在相同的常数时间内快速完成指令分发,并根据指令记录进行指令跳转执行。通过设计指令记录和记录容器,吸取了构件化设计的优点,将指令的增删转化为对指令容器中指令记录的增加和删减,不需要修改指令分发器,便于系统维护。既满足了分发的需求,也有效防止了通过分析指令分发时间进行的攻击。
[0015] 根据本发明的基于倒排技术的智能安全芯片的指令分发系统,包括:
[0016] 记录建立模块,用于建立包含指令分发所需要的基本信息的指令记录;
[0017] 地址分配模块,用于根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;
[0018] 倒排表建立模块,用于建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;
[0019] 记录定位模块,用于自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;
[0020] 接收判断模块,用于根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步。
[0021] 本发明的基于倒排技术的智能安全芯片的指令分发系统,对接收指令后的分发机制进行特别设计,进行指令的倒排查找、解析、跳转、返回,使得维护简单,指令分发的速度和安全性得以提高。解决了现有的指令分发过程中,轮询模式带来的分发时间不固定,开销大的问题。采用倒排技术,通过指令字、指令类型、指令属性等关键字查找指令记录,对于任意来自终端设备的指令请求,在相同的常数时间内快速完成指令分发,并根据指令记录进行指令跳转执行。通过设计指令记录和记录容器,吸取了构件化设计的优点,将指令的增删转化为对指令容器中指令记录的增加和删减,不需要修改指令分发器,便于系统维护。既满足了分发的需求,也有效防止了通过分析指令分发时间进行的攻击。
[0022] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0023] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0024] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0025] 图1为本发明实施例的方法工作流程;
[0026] 图2为本发明实施例的指令记录容器实例化示意图;
[0027] 图3为本发明实施例的指令字与指令记录对应示意图;
[0028] 图4为本发明实施例的系统结构示意图。

具体实施方式

[0029] 下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
[0030] 为了解决现有技术中存在的指令分发时间开销大、安全性差的问题,本发明提出了一种基于倒排技术的智能安全芯片的指令分发方法和系统。
[0031] 智能安全芯片与终端设备进行通信时,通过APDU命令进行信息交换,命令进入智能安全芯片时首先通过指令分发器,将指令分发到相应应用的功能模式完成指令的解析执行并返回。即接收到指令后,根据指令中的指令字和倒排表中唯一表征指令记录的偏移地址,确定相应的指令记录,然后分发到相应的功能模式进行执行。
[0032] 如图1所示,该方法包括:
[0033] 步骤S101:建立包含指令分发所需要的基本信息的指令记录;
[0034] 具体的,根据终端设备与智能安全芯片的指令交换协议,设计满足指令分发的指令记录。指令记录包含了指令分发所需要的基本信息:芯片类型、应用类型、指令锁定标志、指令属性、指令类型、指令字、指令数据域标志、指令函数指针等信息。
[0035] Chip:芯片类型,智能安全芯片的功能类型,如“0”表示用户卡、“1”表示嵌入式模块、“2”表示母卡等;
[0036] App:应用类型,智能安全芯片的应用类型,用于区分多应用芯片,如“0”表示电力、“1”表示金融、“2”表示电动汽车等;
[0037] A_lock:指令锁定标志,表示该指令是否由于特定原因被锁定,如“0”表示未锁定、“1”表示已锁定;
[0038] A_att:指令属性,表示该指令适用的智能安全芯片的生命周期阶段,如“0”表示出厂正式态指令、“1”表示出厂前开发者调试指令、“2”表示出厂测试态指令;
[0039] A_cla:指令类型,表示该指令所属的传输类型,如“0x00”和“0x80”表示明文传的指令、“0x04”和“0x84”表示带保护的指令传输;
[0040] A_ins:指令字,用于唯一识别一条指令的关键字,长度为一个字节,表示范围为16进制的“0x00”-“0xFF”,共256个值;
[0041] A_data:指令数据域标志,用于标识指令流数据域是否为空,如“0”表示该指令只有固定长度的命令头、“1”表示该指令包含一定长度的数据体;
[0042] Func:指令函数指针,表示指令的执行入口;
[0043] 步骤S102:根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;具体的,生成指令记录容器,为所述指令记录的每个基本信息分配空间;将所述指令记录容器存储到本地;获取指令记录在所述指令记录容器中的唯一偏移地址。
[0044] 指令记录容器包含了根据指令记录格式实例化的全部指令记录实例,包括:对记录的每个属性分配空间,为容器分配空间,容器中的记录长度相同;将指令记录容器下载到智能安全芯片的受保护的安全存储区;获取指令记录在容器中的唯一偏移地址,作为指令跳转的依据。如图2所示为指令记录容器实例化示意图。
[0045] 步骤S103:建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;
[0046] 每个指令字对应多个唯一的偏移地址,偏移地址的个数与芯片类型的个数相同,每种芯片类型的指令记录具有对应的唯一偏移地址。
[0047] 指令倒排表,是一种通过指令字在指令记录容器中反向查找指令记录的数据结构。指令字,长度为1字节,其范围为“0x00”~“0xFF”,共256个值;在倒排表中只记录2上述的唯一偏移地址。
[0048] 建立指令字与指令记录之间的对应关系,指令字具有唯一性,每个指令字对应的指令记录数与支持的芯片类型数相同;针对不同的应用类型设计不同的倒排表,下载到芯片的受保护存储区,在智能安全芯片与不同的应用设备连接时,加载相对应的倒排表。如图3所示为指令字与指令记录对应示意图。
[0049] 步骤S104:自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;
[0050] 具体的,智能安全芯片上电工作时,根据与智能安全芯片相连的终端的应用类型,加载对应的倒排表;接收来自终端设备的指令,根据指令头中的指令字和芯片类型在倒排表中唯一定位指令记录。
[0051] 步骤S105:根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步;
[0052] 具体的,根据A_data标志判断是否需要接收数据域,如果是,则接收数据域,完成指令接收;如果否,则跳过此步。
[0053] 步骤S106:如果在步骤S105中,接收所述指令数据域,则判断所述指令是否允许被分发,如果是,则进行指令跳转和执行,并返回执行结果;如果否,则返回错误信息。
[0054] 具体的,根据指令中的其他字节是否与指令记录的A_lock、A_type、A_cla等属性是否匹配,判别指令是否允许被分发,如果允许分发则,根据确定的指令记录的唯一偏移地址和指令记录容器的地址,进行指令跳转、执行,并返回执行结果;如果禁止分发,则返回错误信息。
[0055] 本发明的基于倒排技术的智能安全芯片的指令分发方法,对接收指令后的分发机制进行特别设计,进行指令的倒排查找、解析、跳转、返回,使得维护简单,指令分发的速度和安全性得以提高。解决了现有的指令分发过程中,轮询模式带来的分发时间不固定,开销大的问题。采用倒排技术,通过指令字、指令类型、指令属性等关键字查找指令记录,对于任意来自终端设备的指令请求,在相同的常数时间内快速完成指令分发,并根据指令记录进行指令跳转执行。通过设计指令记录和记录容器,吸取了构件化设计的优点,将指令的增删转化为对指令容器中指令记录的增加和删减,不需要修改指令分发器,便于系统维护。既满足了分发的需求,也有效防止了通过分析指令分发时间进行的攻击。
[0056] 如图4所示,本发明的基于倒排技术的智能安全芯片的指令分发系统包括:
[0057] 记录建立模块10,用于建立包含指令分发所需要的基本信息的指令记录;
[0058] 地址分配模块20,用于根据不同的芯片类型,为每种芯片类型的指令记录分配对应的唯一偏移地址;
[0059] 倒排表建立模块30,用于建立包含指令字和所述唯一偏移地址的指令倒排表,所述指令字对应多个唯一偏移地址,所述唯一偏移地址的个数与芯片类型数相同;
[0060] 记录定位模块40,用于自终端设备接收指令,根据所述指令的指令字和芯片类型确定对应的指令记录;
[0061] 接收判断模块50,用于根据所述指令的指令数据域标志和对应的指令记录,判断是否需要接收所述指令的数据域,如果是,则接收所述指令数据域,如果否,则跳过此步。
[0062] 分发判断模块60,用于在接收所述指令数据域后,判断所述指令是否允许被分发,如果是,则进行指令跳转和执行,并返回执行结果;如果否,则返回错误信息。
[0063] 在上述技术方案中,所述指令分发所需要的基本信息包括:芯片类型、应用类型、指令锁定标志、指令属性、指令类型、指令字、指令函数指针。
[0064] 在上述技术方案中,所述倒排表建立模块30包括:
[0065] 分配子模块301,用于生成指令记录容器,为所述指令记录的每个基本信息分配空间;
[0066] 存储子模块302,用于将所述指令记录容器存储到本地;
[0067] 获取子模块303,用于获取指令记录在所述指令记录容器中的唯一偏移地址。
[0068] 在上述技术方案中,所述指令字长度为1字节,范围为16进制0x00-0xFF,共256个值。
[0069] 本发明的基于倒排技术的智能安全芯片的指令分发系统,对接收指令后的分发机制进行特别设计,进行指令的倒排查找、解析、跳转、返回,使得维护简单,指令分发的速度和安全性得以提高。解决了现有的指令分发过程中,轮询模式带来的分发时间不固定,开销大的问题。采用倒排技术,通过指令字、指令类型、指令属性等关键字查找指令记录,对于任意来自终端设备的指令请求,在相同的常数时间内快速完成指令分发,并根据指令记录进行指令跳转执行。通过设计指令记录和记录容器,吸取了构件化设计的优点,将指令的增删转化为对指令容器中指令记录的增加和删减,不需要修改指令分发器,便于系统维护。既满足了分发的需求,也有效防止了通过分析指令分发时间进行的攻击。
[0070] 本发明能有多种不同形式的具体实施方式,上面以图1-图4附图对本发明的技术方案作举例说明,这并不意味着本发明所应用的具体实例只能局限在特定的流程或实施例结构中,本领域的普通技术人员应当了解,上文所提供的具体实施方案只是多种优选用法中的一些示例,任何体现本发明权利要求的实施方式均应在本发明技术方案所要求保护的范围之内。
[0071] 最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。