CN105809063A - 一种数据处理方法及安全芯片装置 - Google Patents
一种数据处理方法及安全芯片装置 Download PDFInfo
- Publication number
- CN105809063A CN105809063A CN201410848252.XA CN201410848252A CN105809063A CN 105809063 A CN105809063 A CN 105809063A CN 201410848252 A CN201410848252 A CN 201410848252A CN 105809063 A CN105809063 A CN 105809063A
- Authority
- CN
- China
- Prior art keywords
- calculating process
- password
- true
- operating instruction
- algoritic module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开一种数据处理方法及安全芯片装置。所述方法包括:获取对于所述第一密码算法模块的运行指令;响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。采用本发明的方法或装置,可以提高安全芯片装置的安全性。
Description
技术领域
本发明涉及安防领域,特别是涉及一种数据处理方法及安全芯片装置。
背景技术
目前,带有密码算法的安全芯片装置已经在银行、电信、金融、证券、军工、政府等多个领域得到广泛应用。
例如,USBKey就是一种带有密码算法的安全芯片装置。它是一种USB接口的硬件设备。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USBKey内置的公钥算法可以实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。
但是,现有技术中,有一种方法可以破解安全芯片装置。该方法可以称为能量攻击方法。能量攻击方法主要是通过仪器设备对芯片的能量消耗信息进行采集和分析,根据不同指令运算、不同密钥操作时芯片所呈现的不同能量波形,经过统计分析,判断出当前正在进行什么样的运算,输入的密钥值是“0”还是“1”;经过逐级监测分析,最终破解得到运算密钥。
可以看出,现有技术中的安全芯片装置,由于易于被能量攻击方法破解,所以安全性有待提高。
发明内容
本发明的目的是提供一种数据处理方法及安全芯片装置,能够改变芯片在进行运算的过程中呈现出的能量波形,使波形复杂化,从而提高采用能量攻击方法进行破解时的难度,提高安全芯片装置的安全性。
为实现上述目的,本发明提供了如下方案:
一种数据处理方法,所述方法应用于至少具有第一密码算法模块和第二密码算法模块的安全芯片装置;所述方法包括:
获取对于所述第一密码算法模块的运行指令;
响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
可选的,所述第一密码算法模块用于执行第一运算,所述第二密码算法模块用于在所述第一密码算法模块的运算过程中,执行第二运算,所述第二算法模块与第一算法模块具有相同的运算功能。
可选的,所述在第一时刻启动所述第一密码算法模块执行所述运行指令之后,还包括:
识别所述运行指令对应的真运算过程的类型;
随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
随机确定所述真运算过程在所述运算过程中的第一执行次序;
在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
可选的,所述在第一时刻启动所述第一密码算法模块执行所述运行指令之后,还包括:
解析所述运行指令对应的真运算过程的个数;
对于每个所述真运算过程,执行以下步骤:
识别所述运行指令对应的真运算过程的类型;
随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
随机确定所述真运算过程在所述运算过程中的第一执行次序;
在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
可选的,所述随机确定需要执行的运算过程的数目,具体包括:
获取随机数发生模块生成的第一随机数;
将所述第一随机数确定为所述需要执行的运算过程的数目。
可选的,所述随机确定所述真运算过程在所述运算过程中的第一执行次序,具体包括:
获取随机数发生模块生成的第二随机数;
将所述第二随机数确定为所述真运算过程在所述运算过程中的第一执行次序。
一种安全芯片装置,所述装置至少具有第一密码算法模块和第二密码算法模块;所述装置包括:
运行指令获取单元,用于获取对于所述第一密码算法模块的运行指令;
第一密码算法模块启动单元,用于响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
第二密码算法模块启动单元,用于在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
第一判断单元,用于判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
第二密码算法模块停止单元,用于当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
可选的,所述第一密码算法模块用于执行第一运算,所述第二密码算法模块用于在所述第一密码算法模块的运算过程中,执行第二运算,所述第二算法模块与第一算法模块具有相同的运算功能。
可选的,还包括:
运算过程类型识别单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,识别所述运行指令对应的真运算过程的类型;
运算过程数目确定单元,用于随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
第一执行次序确定单元,用于随机确定所述真运算过程在所述运算过程中的第一执行次序;
运算过程执行单元,用于在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
可选的,还包括:
真运算过程个数解析单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,解析所述运行指令对应的真运算过程的个数;
运算过程类型识别单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,识别所述运行指令对应的真运算过程的类型;
运算过程数目确定单元,用于随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
第一执行次序确定单元,用于随机确定所述真运算过程在所述运算过程中的第一执行次序;
第一运算过程执行单元,用于在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程;
其中,所述运算过程类型识别单元,所述运算过程数目确定单元,所述第一执行次序确定单元和所述运算过程执行单元,对于每个所述真运算过程均执行对应的步骤。
可选的,所述运算过程数目确定单元,具体包括:
第一随机数获取子单元,用于获取随机数发生模块生成的第一随机数;
运算过程数目确定子单元,用于将所述第一随机数确定为所述需要执行的运算过程的数目。
可选的,所述第一执行次序确定单元,具体包括:
第二随机数获取子单元,用于获取随机数发生模块生成的第二随机数;
第一执行次序确定子单元,用于将所述第二随机数确定为所述真运算过程在所述运算过程中的第一执行次序。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明的数据处理方法及安全芯片装置,通过在第一时刻启动所述第一密码算法模块执行所述运行指令;在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,停止所述第二密码算法模块的运算过程;可以在所述第一密码算法模块的运算过程中,利用所述第二密码算法模块的运算过程,形成另外的能量波形,使得所述第一密码算法模块的运算过程形成的真实能量波形与所述另外的能量波形相互叠加,从而改变芯片在只采用第一密码算法模块进行运算的过程中呈现出的能量波形,使波形复杂化,提高了采用能量攻击方法进行破解时的难度,进而提高了安全芯片装置的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的数据处理方法实施例1的流程图;
图2为本发明的数据处理方法实施例2的流程图;
图3为本发明的安全芯片装置实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
首先需要说明的是,本发明的数据处理方法,应用于安全芯片装置。所述安全芯片装置是指内部具有安全芯片的装置。所述安全芯片装置内部至少具有第一密码算法模块和第二密码算法模块。所述第一密码算法模块和所述第二密码算法模块可以是由安全芯片的制造方制作的芯片。所述第一密码算法模块和第二密码算法模块具体可以执行的密码算法,一旦被设置完成,通常就不可以被更改。
图1为本发明的数据处理方法实施例1的流程图。如图1所示,该方法可以包括:
步骤101:获取对于所述第一密码算法模块的运行指令;
所述运行指令可以是指示所述第一密码算法模块执行数据加密或解密操作的指令。
步骤102:响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
接收到所述运行指令后,所述第一密码算法模块可以启动并执行相应的加密或解密操作。
步骤103:在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
所述第一预设阈值可以根据实际需求进行设置。所述第一预设阈值应当设置的尽量小。需要说明的是,所述第一预设阈值最小可以设置为零。
当所述第一预设阈值为零时,表示所述第一密码算法模块与所述第二密码算法模块可以同时启动。
所述第二密码算法模块所执行的指令,可以是预先设置的。即所述第二密码算法模块所执行的运算过程可以与所述第一密码算法模块所接收到的运行指令无关。
步骤104:判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
当所述第一密码算法模块执行完毕所述运行指令,可以得到第一运算结果。所述第一运算结果是所述安全芯片装置在加密或解密过程中需要输出的结果。
步骤105:当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
当所述第一密码算法模块执行完毕所述运行指令,可以控制所述第二密码算法模块也停止所述第二密码算法模块的运算过程。
综上所述,本实施例中,通过在第一时刻启动所述第一密码算法模块执行所述运行指令;在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,停止所述第二密码算法模块的运算过程;可以在所述第一密码算法模块的运算过程中,利用所述第二密码算法模块的运算过程,形成另外的能量波形,使得所述第一密码算法模块的运算过程形成的真实能量波形与所述另外的能量波形相互叠加,从而改变芯片在只采用第一密码算法模块进行运算的过程中呈现出的能量波形,使波形复杂化,提高了采用能量攻击方法进行破解时的难度,进而提高了安全芯片装置的安全性。
实际应用中,所述第一密码算法模块可以用于执行第一运算,所述第二密码算法模块可以用于在所述第一密码算法模块的运算过程中,执行第二运算,所述第二算法模块与第一算法模块可以具有相同的运算功能。
需要说明的是,本发明实施例中,所述第一密码算法模块用于执行真实的加密或解密运算,所述第二密码算法模块用于在所述第一密码算法模块的运算过程中,利用所述第二密码算法模块的伪密码运算过程形成的干扰能量波形对所述第一密码算法模块的加密或解密运算过程形成的真实能量波形进行掩饰。
即,所述第一密码算法模块所执行的加密解密过程,才包含有真正用于对当前数据进行加密解密的操作,最终的加密解密结果也可以设置成只能由所述第一密码算法模块输出。所述第二密码算法模块执行的运算过程为伪运算过程。即,所述第二密码算法模块执行的运算过程,不是对于当前数据进行的实际的加密或解密操作,而是为了形成另外的能量波形所进行的运算过程。因此,所述伪密码运算过程具体采用的运算方式,也可以根据实际需求,选择任意的运算过程。
当所述第二密码算法模块的伪密码运算过程形成干扰能量波形后,所述干扰能量波形会与所述第一密码算法模块的运算过程形成的能量波形混叠在一起。外界的仪器设备此时采集到的安全芯片装置的能量波形,是两个密码算法模块同时进行运算得到的,因此,即使采用现有技术中的能量攻击方法,也无法从一个混合的能量波形中分辨出第一密码算法模块所执行的运算过程。
实际应用中,为了进一步提高安全芯片装置的安全性,本发明还提供了下面的实施例。
图2为本发明的数据处理方法实施例2的流程图。如图2所示,该方法可以包括:
步骤201:获取对于所述第一密码算法模块的运行指令;
步骤202:响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
步骤203:识别所述运行指令对应的真运算过程的类型;
本发明实施例中,将所述运行指令对应的运算过程称为真运算过程。
所述真运算过程的类型,可以表示加密或解密算法中的运算过程的类型。算法至少可以包括3DES(三重数据加密算法,英文名称为TDEA,TripleDataEncryptionAlgorithm),RSA公钥加密算法,AES(高级加密标准,英文名称为AdvancedEncryptionStandard)算法,国密SM1(SM1cryptographicalgorithm)算法,SM2算法,SM3算法等等。
步骤204:随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
所述伪运算过程与所述真运算过程的类型相同。当所述真运算过程为3DES算法中的运算过程时,可以采用符合3DES算法的运算过程作为所述伪运算过程。这样可以使伪运算过程呈现出的能量波形与所述真运算过程呈现出的能量波形更加相似。
可以采用随机数发生器产生随机数。根据所述随机数确定需要执行的运算过程的数目。假设随机数为10,则可以构造9个伪运算过程。
步骤205:随机确定所述真运算过程在所述运算过程中的第一执行次序;
所述真运算过程在所述运算过程中的第一执行次序,也可以由随机数发生器产生的随机数进行确定。当然,所述第一执行次序需要小于或等于所述需要执行的运算过程的数目。当需要执行的运算过程的数目为10个时,如果随机数发生器产生的另一个随机数为7,则可以将所述真运算过程在第7次运算过程中执行。其他的执行次序执行所述伪运算过程即可。
步骤206:在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
步骤207:在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
步骤208:判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
步骤209:当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
本实施例中,通过随机确定需要执行的运算过程的数目;随机确定所述真运算过程在所述运算过程中的第一执行次序;在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程;一方面可以控制所述第一密码算法模块除了执行所述真运算过程,还执行所述伪运算过程,增加破解算法的难度;另一方面,由于所述伪运算过程与所述真运算过程的总数是随机确定的,并且所述真运算过程的执行次序也是随机确定的,因此外部设备在破解时,很难确定真正的运算过程的执行次序,这进一步提高了破解本实施例的加密解密算法的难度。
此外,所述伪运算过程为与所述真运算过程的类型相同的运算过程;可以使伪运算过程呈现出的能量波形与所述真运算过程呈现出的能量波形更加相似,进而使外部设备难以识别出真运算过程,从另一方面提高了安全芯片装置的安全性。
实际应用中,有些算法中包括多个运算过程。例如,通常情况下,3DES密码算法可以包含48轮运算过程。对于每个运算过程(这里的每个运算过程都为真运算过程),均可以采用图2所示的实施例中的方式,构造伪运算过程,随机确定真运算过程的执行次序,从而提高加解密过程的安全性。
本发明还公开了一种安全芯片装置。所述装置至少具有第一密码算法模块和第二密码算法模块。
图3为本发明的安全芯片装置实施例的结构图。如图3所示,该装置可以包括:
运行指令获取单元301,用于获取对于所述第一密码算法模块的运行指令;
第一密码算法模块启动单元302,用于响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
第二密码算法模块启动单元303,用于在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
第一判断单元304,用于判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
第二密码算法模块停止单元305,用于当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
本实施例中,通过在第一时刻启动所述第一密码算法模块执行所述运行指令;在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,停止所述第二密码算法模块的运算过程;可以在所述第一密码算法模块的运算过程中,利用所述第二密码算法模块的运算过程,形成另外的能量波形,使得所述第一密码算法模块的运算过程形成的真实能量波形与所述另外的能量波形相互叠加,从而改变芯片在只采用第一密码算法模块进行运算的过程中呈现出的能量波形,使波形复杂化,提高了采用能量攻击方法进行破解时的难度,进而提高了安全芯片装置的安全性。
实际应用中,所述第一密码算法模块302用于执行第一运算,所述第二密码算法模块303用于在所述第一密码算法模块的运算过程中,执行第二运算,所述第二算法模块与第一算法模块具有相同的运算功能。。
实际应用中,还可以包括:
运算过程类型识别单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,识别所述运行指令对应的真运算过程的类型;
运算过程数目确定单元,用于随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
第一执行次序确定单元,用于随机确定所述真运算过程在所述运算过程中的第一执行次序;
运算过程执行单元,用于在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
实际应用中,还可以包括:
真运算过程个数解析单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,解析所述运行指令对应的真运算过程的个数;
运算过程类型识别单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,识别所述运行指令对应的真运算过程的类型;
运算过程数目确定单元,用于随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
第一执行次序确定单元,用于随机确定所述真运算过程在所述运算过程中的第一执行次序;
第一运算过程执行单元,用于在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程;
其中,所述运算过程类型识别单元,所述运算过程数目确定单元,所述第一执行次序确定单元和所述运算过程执行单元,对于每个所述真运算过程均执行对应的步骤。
具体的,假设有多个需要按照顺序执行的真运算过程,则可以从第一个真运算过程开始,对第一个真运算过程执行以下步骤:
识别所述运行指令对应的真运算过程的类型;
随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
随机确定所述真运算过程在所述运算过程中的第一执行次序;
在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
之后,可以继续对第二个真运算过程执行上述步骤,直至执行完所有的真运算过程。
实际应用中,所述运算过程数目确定单元,具体可以包括:
第一随机数获取子单元,用于获取随机数发生模块生成的第一随机数;
运算过程数目确定子单元,用于将所述第一随机数确定为所述需要执行的运算过程的数目。
实际应用中,所述第一执行次序确定单元,具体可以包括:
第二随机数获取子单元,用于获取随机数发生模块生成的第二随机数;
第一执行次序确定子单元,用于将所述第二随机数确定为所述真运算过程在所述运算过程中的第一执行次序。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法应用于至少具有第一密码算法模块和第二密码算法模块的安全芯片装置;所述方法包括:
获取对于所述第一密码算法模块的运行指令;
响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
2.根据权利要求1所述的方法,其特征在于,所述第一密码算法模块用于执行第一运算,所述第二密码算法模块用于在所述第一密码算法模块的运算过程中,执行第二运算,所述第二算法模块与第一算法模块具有相同的运算功能。
3.根据权利要求1所述的方法,其特征在于,所述在第一时刻启动所述第一密码算法模块执行所述运行指令之后,还包括:
识别所述运行指令对应的真运算过程的类型;
随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
随机确定所述真运算过程在所述运算过程中的第一执行次序;
在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
4.根据权利要求1所述的方法,其特征在于,所述在第一时刻启动所述第一密码算法模块执行所述运行指令之后,还包括:
解析所述运行指令对应的真运算过程的个数;
对于每个所述真运算过程,执行以下步骤:
识别所述运行指令对应的真运算过程的类型;
随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
随机确定所述真运算过程在所述运算过程中的第一执行次序;
在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
5.根据权利要求3或4所述的方法,其特征在于,所述随机确定需要执行的运算过程的数目,具体包括:
获取随机数发生模块生成的第一随机数;
将所述第一随机数确定为所述需要执行的运算过程的数目。
6.根据权利要求3或4所述的方法,其特征在于,所述随机确定所述真运算过程在所述运算过程中的第一执行次序,具体包括:
获取随机数发生模块生成的第二随机数;
将所述第二随机数确定为所述真运算过程在所述运算过程中的第一执行次序。
7.一种安全芯片装置,其特征在于,所述装置至少具有第一密码算法模块和第二密码算法模块;所述装置包括:
运行指令获取单元,用于获取对于所述第一密码算法模块的运行指令;
第一密码算法模块启动单元,用于响应所述运行指令,在第一时刻启动所述第一密码算法模块执行所述运行指令;
第二密码算法模块启动单元,用于在第二时刻启动所述第二密码算法模块执行预设运算指令;所述第一时刻与所述第二时刻的差值小于第一预设阈值;
第一判断单元,用于判断所述第一密码算法模块是否执行完毕所述运行指令并获得第一运算结果,得到第一判断结果;
第二密码算法模块停止单元,用于当所述第一判断结果表示所述第一密码算法模块执行完毕所述运行指令时,输出所述第一运算结果,停止所述第二密码算法模块的运算过程。
8.根据权利要求7所述的装置,其特征在于,所述第一密码算法模块用于执行第一运算,所述第二密码算法模块用于在所述第一密码算法模块的运算过程中,执行第二运算,所述第二算法模块与第一算法模块具有相同的运算功能。
9.根据权利要求7所述的装置,其特征在于,还包括:
运算过程类型识别单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,识别所述运行指令对应的真运算过程的类型;
运算过程数目确定单元,用于随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
第一执行次序确定单元,用于随机确定所述真运算过程在所述运算过程中的第一执行次序;
运算过程执行单元,用于在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程。
10.根据权利要求7所述的装置,其特征在于,还包括:
真运算过程个数解析单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,解析所述运行指令对应的真运算过程的个数;
运算过程类型识别单元,用于在第一时刻启动所述第一密码算法模块执行所述运行指令之后,识别所述运行指令对应的真运算过程的类型;
运算过程数目确定单元,用于随机确定需要执行的运算过程的数目;所述运算过程包括至少一个伪运算过程与一个所述真运算过程;所述伪运算过程为与所述真运算过程的类型相同的运算过程;
第一执行次序确定单元,用于随机确定所述真运算过程在所述运算过程中的第一执行次序;
第一运算过程执行单元,用于在所述第一执行次序执行所述真运算过程,在另外的执行次序执行所述伪运算过程;
其中,所述运算过程类型识别单元,所述运算过程数目确定单元,所述第一执行次序确定单元和所述运算过程执行单元,对于每个所述真运算过程均执行对应的步骤。
11.根据权利要求9或10所述的装置,其特征在于,所述运算过程数目确定单元,具体包括:
第一随机数获取子单元,用于获取随机数发生模块生成的第一随机数;
运算过程数目确定子单元,用于将所述第一随机数确定为所述需要执行的运算过程的数目。
12.根据权利要求9或10所述的装置,其特征在于,所述第一执行次序确定单元,具体包括:
第二随机数获取子单元,用于获取随机数发生模块生成的第二随机数;
第一执行次序确定子单元,用于将所述第二随机数确定为所述真运算过程在所述运算过程中的第一执行次序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410848252.XA CN105809063B (zh) | 2014-12-29 | 2014-12-29 | 一种数据处理方法及安全芯片装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410848252.XA CN105809063B (zh) | 2014-12-29 | 2014-12-29 | 一种数据处理方法及安全芯片装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105809063A true CN105809063A (zh) | 2016-07-27 |
CN105809063B CN105809063B (zh) | 2019-01-15 |
Family
ID=56421525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410848252.XA Active CN105809063B (zh) | 2014-12-29 | 2014-12-29 | 一种数据处理方法及安全芯片装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105809063B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123792A (zh) * | 2017-12-19 | 2018-06-05 | 武汉瑞纳捷电子技术有限公司 | 一种sm4算法电路的功耗加扰方法 |
CN108737073A (zh) * | 2018-06-22 | 2018-11-02 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050207571A1 (en) * | 2004-03-16 | 2005-09-22 | Ahn Kyoung-Moon | Data cipher processors, AES cipher systems, and AES cipher methods using a masking method |
CN1835207A (zh) * | 2005-03-17 | 2006-09-20 | 联想(北京)有限公司 | 防止对rsa算法进行能量分析攻击的方法 |
CN101025771A (zh) * | 2006-02-17 | 2007-08-29 | 联想(北京)有限公司 | 一种安全芯片 |
JP2007251390A (ja) * | 2006-03-14 | 2007-09-27 | Sony Corp | 半導体集積回路 |
US20080212776A1 (en) * | 2006-11-07 | 2008-09-04 | Kabushiki Kaisha Toshiba | Encryption processing circuit and encryption processing method |
CN101729241A (zh) * | 2008-10-23 | 2010-06-09 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN102447556A (zh) * | 2010-10-14 | 2012-05-09 | 上海华虹集成电路有限责任公司 | 一种基于随机偏移的抗差分功耗分析des加密方法 |
CN102970132A (zh) * | 2011-08-31 | 2013-03-13 | 北京中电华大电子设计有限责任公司 | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 |
CN103634102A (zh) * | 2013-12-16 | 2014-03-12 | 国家电网公司 | 一种侧信道攻击和故障攻击的防护方法 |
CN103647637A (zh) * | 2013-11-19 | 2014-03-19 | 国家密码管理局商用密码检测中心 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
CN104092533A (zh) * | 2014-07-02 | 2014-10-08 | 上海交通大学 | 一种抵御能量分析攻击的aes对称互补型硬件实现方法 |
-
2014
- 2014-12-29 CN CN201410848252.XA patent/CN105809063B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050207571A1 (en) * | 2004-03-16 | 2005-09-22 | Ahn Kyoung-Moon | Data cipher processors, AES cipher systems, and AES cipher methods using a masking method |
CN1835207A (zh) * | 2005-03-17 | 2006-09-20 | 联想(北京)有限公司 | 防止对rsa算法进行能量分析攻击的方法 |
CN101025771A (zh) * | 2006-02-17 | 2007-08-29 | 联想(北京)有限公司 | 一种安全芯片 |
JP2007251390A (ja) * | 2006-03-14 | 2007-09-27 | Sony Corp | 半導体集積回路 |
US20080212776A1 (en) * | 2006-11-07 | 2008-09-04 | Kabushiki Kaisha Toshiba | Encryption processing circuit and encryption processing method |
CN101729241A (zh) * | 2008-10-23 | 2010-06-09 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN102447556A (zh) * | 2010-10-14 | 2012-05-09 | 上海华虹集成电路有限责任公司 | 一种基于随机偏移的抗差分功耗分析des加密方法 |
CN102970132A (zh) * | 2011-08-31 | 2013-03-13 | 北京中电华大电子设计有限责任公司 | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 |
CN103647637A (zh) * | 2013-11-19 | 2014-03-19 | 国家密码管理局商用密码检测中心 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
CN103634102A (zh) * | 2013-12-16 | 2014-03-12 | 国家电网公司 | 一种侧信道攻击和故障攻击的防护方法 |
CN104092533A (zh) * | 2014-07-02 | 2014-10-08 | 上海交通大学 | 一种抵御能量分析攻击的aes对称互补型硬件实现方法 |
Non-Patent Citations (1)
Title |
---|
刘人杰,周玉洁: ""抗功耗攻击的随机插入式分组密码系统"", 《信息技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123792A (zh) * | 2017-12-19 | 2018-06-05 | 武汉瑞纳捷电子技术有限公司 | 一种sm4算法电路的功耗加扰方法 |
CN108737073A (zh) * | 2018-06-22 | 2018-11-02 | 北京智芯微电子科技有限公司 | 分组加密运算中抵抗能量分析攻击的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105809063B (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10419217B2 (en) | Security information configuration method, security verification method, and related chip | |
WO2017041603A1 (zh) | 数据加密方法、装置及移动终端、计算机存储介质 | |
EP2907067B1 (en) | Method and system for smart card chip personalization | |
CN109040091A (zh) | 深度神经网络模型的加密方法及装置 | |
TWI809292B (zh) | 資料的加解密方法、裝置、存儲介質及加密文件 | |
TW201810109A (zh) | 防止拷貝攻擊的處理方法、伺服器及用戶端 | |
CN109460639A (zh) | 一种license授权控制方法、装置、终端及存储介质 | |
CN104573549A (zh) | 一种可信的数据库机密性保护方法及系统 | |
CN111177693B (zh) | 一种验证终端根证书的方法、装置、设备和介质 | |
CN104639332A (zh) | 一种固态硬盘加密密钥的保护方法 | |
CN109543423A (zh) | 控制板加密和解密方式、终端设备及计算机可读存储介质 | |
CN112528236B (zh) | 基于虚拟机的应用软件授权方法 | |
US20100011221A1 (en) | Secured storage device with two-stage symmetric-key algorithm | |
CN108537048B (zh) | 一种加密固态硬盘与授权计算机的安全关联方法及系统 | |
CN108540457A (zh) | 一种安全设备及其生物认证控制方法和装置 | |
CN110046489B (zh) | 一种基于国产龙芯处理器的可信访问验证系统,计算机及可读存储介质 | |
CN104023009B (zh) | 一种Web系统许可证验证方法 | |
CN113722741A (zh) | 数据加密方法及装置、数据解密方法及装置 | |
CN103336918B (zh) | 电子盘系统授权方法和装置 | |
CN105809063A (zh) | 一种数据处理方法及安全芯片装置 | |
WO2018033017A1 (zh) | 一种授信的终端状态转换方法和系统 | |
CN107135074A (zh) | 一种高级安全方法和装置 | |
CN109255225A (zh) | 基于双重身份认证的硬盘数据安全管理装置 | |
Kovalchuk et al. | A practical proposal for ensuring the provenance of hardware devices and their safe operation | |
CN105227312A (zh) | 智能密码钥匙密码验证提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |