【技术实现步骤摘要】
本专利技术涉及POS安全传输领域,尤其涉及一种实现国密算法的方法。
技术介绍
在POS机上,如果需要支持国密算法,通常会使用一块支持国密算法的芯片(简称:国密芯片)。POS机的MCU通过SPI等通讯接口,把密钥或数据同时发送给国密芯片,国密码芯片计算完成后,再把计算结果返回POS机。两者交互的数据一般都是明文形式。基于传输过程的安全,现有利用MCU的安全机制,把国密芯片、MCU与国密芯片通讯通道保护起来。当国密芯片或通讯通道受到攻击时,MCU立即检测到攻击,停止数据交互,防止重要数据泄露,如:密钥。上述POS机上的国密算法,避免了重要数据的泄露,但是,当POS机上国密芯片宕机或坏掉,则会导致国密算法无法使用;或检测到国密芯片或通讯通道受到攻击时,为了保证重要数据安全,也不能使用国密芯片;或在旧版本的机器中,没有国密芯片,国密算法也无法使用。国密算法的无法应用直接导致POS机存在泄漏信息的风险,故,需要提供一种在国密芯片不能使用的条件下,依旧能够实现国密算法的软件方法。
技术实现思路
本专利技术的目的在于提供一种实现国密算法的方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术所述实现国密算法的方法,所述方法包括:S1,判断POS机中是否安装国密芯片,如果是,则进入S2;如果否,则进入S4;S2,判断国密芯片和/或通信通道是否被攻击,如果是,则进入S4;如果否,则进入S3;S3,设置国密芯片可使用标识,使用国密芯片实现国密算法的使用;S4,设置国密芯片不可使用标识,同时,调用国密软件程序实现国密算法的使用;所述国密软件程序为SM2算法软件程序、 ...
【技术保护点】
一种实现国密算法的方法,其特征在于,所述方法包括:S1,判断POS机中是否安装国密芯片,如果是,则进入S2;如果否,则进入S4;S2,判断国密芯片和/或通信通道是否被攻击,如果是,则进入S4;如果否,则进入S3;S3,设置国密芯片可使用标识,使用国密芯片实现国密算法的使用;S4,设置国密芯片不可使用标识,同时,调用国密软件程序实现国密算法的使用;所述国密软件程序为SM2算法软件程序、SM3算法软件程序或SM4算法软件程序。
【技术特征摘要】
1.一种实现国密算法的方法,其特征在于,所述方法包括:S1,判断POS机中是否安装国密芯片,如果是,则进入S2;如果否,则进入S4;S2,判断国密芯片和/或通信通道是否被攻击,如果是,则进入S4;如果否,则进入S3;S3,设置国密芯片可使用标识,使用国密芯片实现国密算法的使用;S4,设置国密芯片不可使用标识,同时,调用国密软件程序实现国密算法的使用;所述国密软件程序为SM2算法软件程序、SM3算法软件程序或SM4算法软件程序。2.根据权利要求1所述方法,其特征在于,步骤S1具体按照下述实现:通过ADC采集POS机MCU硬件引脚的ADC值,然后根据调用的module_is_exist函数,在预先设置的ADC值表中查询采集到的ADC值与ADC值表中的ADC值是否匹配,如果是,则POS机上已安装国密芯片;如果否,则POS机上未安装国密芯片。3.根据权利要求1所述方法,其特征在于,步骤S3中,使用国密芯片实现国密算法的使用过程中还包括以下步骤,具体按照下述实现:MCU发送数据包后,判断MCU是否在预定的超时时间内收到国密芯片返回的运算结果,如果是,则继续使用国密芯片保护数据传输安全;如果否,则所述国密芯片工作不正常,通讯失败,进入S4。4.根据权利要求1所述方法,其特征在于,所述国密软件程序为SM2算法软件程序,具体按照下述步骤实现:A1,初始化首先申请分配用于椭圆曲线算法的内存空间,并初始化为素域椭圆曲线的仿射坐标表示形式;使用在仿射坐标系下简化的椭圆曲线方程:y2=x3+ax+b;接着申请并初始化用于大数算法的内存空间;两个内存空间用于保存SM2算法的工作环境;两个内存空间的地址保存在全局变量中,不释放;然后,使用SM2算法推荐的椭圆曲线参数:域规模q、第一参数a、第二参数b、基点G的坐标及其点的阶n,进一步初始化SM2算法的工作环境,最后,预存乘法结果,所述乘法结果用于加速后续使用的点的乘法;A2,生成公私钥对首先,调用MCU的硬件随机函数,产生32字节随机数的私钥;利用A1中已初始化的椭圆曲线,计算与所述私钥对应的公钥;然后,检验公私钥是否有效,如果是,则清除缓存的公私钥,并返回公私钥生成成功的消息;如果否,则清除缓存的密钥对,并返回公私钥生成不成功;A3,计算用户与消息的杂凑值在用户信息ID、用户信息长度、初始化后的椭圆曲线的第一参数a、第二参数b、公钥与用户输入的消息的基础上,使用杂凑算法,计算并得到用户与消息的杂凑值;A4,对用户数据进行签名;A5,验证接收到的数据上的签名是否合法。5.根据权利要求4所述方法,其特征在于,A4中,对用户数据进行签名,具体按照下述步骤实现:A41,依据用户信息与用于签名的消息,计算杂凑值e,A42,调用MCU的硬件随机函数,生成32字节的随机数k;判断k是否符合0≤k≤n;如果是,则返回A41;如果否,则进入A43;A43,利用A1中已初始化的椭圆曲线,计算椭圆曲线上获得随机数k与基点G的乘积结果所对应的点(x1,y1);A44,将所述杂凑值e和点的...
【专利技术属性】
技术研发人员:廖泽才,
申请(专利权)人:艾体威尔电子技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。