掌桥专利:专业的专利平台
掌桥专利
首页

基于IIC多主一从通信的密码认证自协商切换系统及方法

文献发布时间:2023-06-19 09:26:02


基于IIC多主一从通信的密码认证自协商切换系统及方法

技术领域

本发明涉及密码认证技术领域,更具体的说是涉及一种基于IIC多主一从通信的密码认证自协商切换系统及方法。

背景技术

目前,随着密码卡的不断普及应用,密码卡启动认证作为密码卡应用过程中的一个重要环节,受到越来越多的重视。由于安全认证设备数量和使用受到严格限制和管理,经常出现单个安全认证设备为众多密码卡依次启动认证的应用场景。传统的多块密码卡的启动认证是需要人工手动认证实现的,具体通过管理员将安全认证设备人工插拔或操作开关复用器等物理切换方式依次完成所有密码卡认证。随着互联网加密数据的普及,密码卡需求数量日益激增,通过人工插拔的切换方式实现密码卡启动、维护认证的工作量增大,传统的手动认证方式具体存在如下问题:

1)由于密码卡增多,需要定期维护重启密码卡,管理人员逐个插拔安全认证设备工作量巨大,加密卡从启动到完成正常工作时间较长;

2)管理人员手动插拔操作,经常会遗漏未插加密卡,造成该卡无启动认证,手动认证过程出错率高;

3)无法实现无人值守,耗费人力物力;

4)由于需要长期多次插拔操作,会降低安全认证设备和密码卡接口的使用寿命;

5)手动认证过程中,还会增加密码卡或安全认证设备受人体静电损坏的机率。

为此,依靠IIC(又称I2C或I

因此,如何提供一种高效可靠的密码认证自协商切换方法是本领域技术人员亟需解决的问题。

发明内容

有鉴于此,本发明提供了一种基于IIC多主一从通信的密码认证自协商切换系统及方法,该系统解决了人工逐个密码卡插拔安全认证方式效率低、出错率高、影响设备使用寿命等问题以及IIC总线上多主设备存在同时发送启动信号造成冲突的技术问题。

为了实现上述目的,本发明采用如下技术方案:

一方面,本发明提供了一种基于IIC多主一从通信的密码认证自协商切换系统,该系统包括:安全认证设备、IIC总线、上拉电阻以及多个密码卡,所述安全认证设备、上拉电阻以及多个密码卡分别与所述IIC总线连接;

所述密码卡内设有认证接口模块和自协商切换模块,所述认证接口模块与所述IIC总线连接,所述IIC总线与所述认证接口模块连接的线路上设有IIC开关,所述自协商切换模块用于检测所述IIC总线中SCL信号线的占用状态并控制所述IIC开关的开闭状态。

进一步地,所述自协商切换模块包括自协商处理单元、SCL信号检测单元、开关控制单元以及随机数发生器;

所述SCL信号检测单元用于检测所述IIC总线中SCL信号线的占用状态,并将检测结果发送至所述自协商处理单元,所述随机数发生器用于生成随机数并发送至所述自协商处理单元,所述自协商处理单元用于根据接收到的所述随机数控制所述SCL信号检测单元的检测时间间隔,还用于根据所述检测结果协商占用IIC总线,统计协商占用IIC总线成功的次数并与预设阈值进行比较,在所述协商占用IIC总线成功的次数大于或等于预设阈值时,发送控制信号至所述开关控制单元,所述开关控制单元控制所述IIC开关闭合。

本发明提供的上述系统通过密码卡内的自协商切换模块控制待认证的密码卡逐一进行自协商认证,具体通过自协商处理单元控制认证过程中任意时刻有且只有一个密码卡与安全认证设备相连接通信,从而避免了多主设备存在同时发送启动信号造成冲突的问题。

另一方面,本发明还提供了一种基于IIC多主一从通信的密码认证自协商切换方法,该方法包括:

步骤1:待认证的密码卡上电并对相关变量进行初始化;

步骤2:进行第一次定时计数,第一次定时结束后,设置SCL信号为输入状态;

步骤3:读取SCL信号线的占用状态,如果所述SCL信号线被占用,执行步骤4;如果所述SCL信号线空闲,执行步骤6;

步骤4:进行第二次定时计数,并判断第二次定时是否结束,如果第二次定时结束,执行步骤1;如果第二次定时未结束,执行步骤5;

步骤5:读取SCL信号线的占用状态,如果所述SCL信号线空闲,再次判断第二次定时是否结束;如果所述SCL信号线被占用,执行步骤4;

步骤6:确定所述SCL信号线空闲后,设置SCL信号为输出状态,输出值为0,尝试占用IIC总线;

步骤7:进行第三次定时计数,第三次定时结束后,设置SCL信号为输入状态;

步骤8:读取SCL信号线的占用状态,如果所述SCL信号线空闲,此次协商占用IIC总线操作成功,执行步骤9;如果所述SCL信号线被占用,放弃此次协商占用IIC总线操作,并执行步骤4;

步骤9:判断尝试占用IIC总线成功的次数是否到达预设阈值N,如果尝试占用IIC总线成功的次数到达预设阈值N,执行步骤10;如果尝试占用IIC总线成功的次数未到达预设阈值N,进行下一轮的尝试总线占用协商,执行步骤2;

步骤10:连续N轮尝试IIC总线占用协商成功后,获取IIC总线的控制权,将认证接口模块连接至IIC总线,完成安全认证设备与密码卡的连接;

步骤11:等待认证结束标志,在获得认证结束确认后,释放所述认证接口模块,IIC总线重新处于空闲状态,其他待认证的密码卡依次重复步骤1至步骤10,直至全部完成认证过程,认证结束。

进一步地,上述步骤2中,第一次定时计数通过读取预先生成的随机数T

进一步地,所述步骤4中,第二次定时计数的过程通过再次读取预先生成的随机数T

进一步地,所述步骤7中,第三次定时计数的过程通过再次读取预先生成的随机数T

经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于IIC多主一从通信的密码认证自协商切换系统及方法,该方法通过自定义协商协议方案来实现安全认证设备与多个密码卡之间IIC总线接口的随机切换认证,保证认证过程中任意时刻有且只有一个密码卡与安全认证设备相连接通信,避免了多主设备发送启动信号存在冲突的问题,并最终在无需人工干预的前提下自动完成所有密码卡的启动认证任务,认证效率大大提高,且认证过程更加安全可靠。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明提供的一种基于IIC多主一从通信的密码认证自协商切换系统的整体结构架构示意图;

图2为本发明实施例中自协商切换模块的结构架构示意图;

图3为本发明提供的一种基于IIC多主一从通信的密码认证自协商切换方法的实现流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一方面,参见附图1,本发明实施例公开了一种基于IIC多主一从通信的密码认证自协商切换系统,该系统包括:安全认证设备3、IIC总线2、上拉电阻1以及多个密码卡4,安全认证设备3、上拉电阻1以及多个密码卡4分别与IIC总线2连接;

密码卡4内设有认证接口模块6和自协商切换模块5,认证接口模块6与IIC总线2连接,自协商切换模块5通过信号线8与IIC总线2中SCL信号线连接,IIC总线2与认证接口模块6连接的线路上设有IIC开关12,自协商切换模块5用于检测IIC总线2中SCL信号线的占用状态并控制IIC开关12的开闭状态。

本实施例中,安全认证设备2可以理解为IIC从设备,密码卡4可以理解为IIC主设备,密码卡4内部的自协商切换模块5通过自协商协议控制切换,IIC总线2包括SCL信号线和SDA信号线,假设密码卡4有n个,n个密码卡4分别与SCL信号线和SDA信号线连接,且每个密码卡4中认证接口模块6与SCL信号线和SDA信号线连接的两条线路上均设有一个带使能控制的IIC开关12,安全认证设备3也分别与SCL信号线和SDA信号线连接,IIC总线规范中规定的上拉电阻1设有两个,两个上拉电阻1的一端均接至VCC端,一个上拉电阻1的另一端接至SCL信号线,另一个上拉电阻1的另一端接至SDA信号线。

参见附图2,上述自协商切换模块5具体包括自协商处理单元7、SCL信号检测单元9、开关控制单元10以及随机数发生器11;

SCL信号检测单元9用于检测IIC总线2中SCL信号线的占用状态,并将检测结果发送至自协商处理单元7,随机数发生器11用于生成随机数并发送至自协商处理单元7,自协商处理单元7用于根据接收到的随机数控制SCL信号检测单元9的检测时间间隔,还用于根据检测结果协商占用IIC总线2,统计协商占用IIC总线成功的次数并与预设阈值进行比较,在协商占用IIC总线成功的次数大于或等于预设阈值时,发送控制信号至开关控制单元10,开关控制单元10控制IIC开关12闭合。

具体地,各个密码卡4启动后通过获取随机数发生器11产生的随机数作为延时启动定时器的时间初始值,延时启动时间T递减为零后,首先通过SCL信号检测单元9检测SCL信号线是否空闲,如果空闲,通过拉低SCL信号线方式尝试获取IIC总线的控制权,SCL信号线拉低持续时间为随机数生成时间。释放SCL信号线后,立即检测SCL信号线是否仍然空闲,依次以上述方式连续尝试N次成功后,确认控制权自己获得,开关控制单元10控制IIC开关12闭合,连通认证接口模块6至IIC总线,开始通信。

另一方面,参见附图3,本发明实施例还公开了一种基于IIC多主一从通信的密码认证自协商切换方法,该方法具体包括以下步骤:

S1:待认证的密码卡上电,重启初始化相关变量,比如冲突检测计数器初始化,CheckCnt=‘0’,认证OK=‘0’。

S2:读取随机数发成器生成的随机数T

S3;延时定时器的延时时间T递减计数,如果T≠0等待,如果T=0跳转继续执行。

S4:置SCL信号为输入状态,即释放IIC总线的SCL信号线。

S5:读取SCL信号线的状态,判断SCL信号线是否空闲,如果SCL信号线空闲(即读到的值为‘1’),跳转到S9;如果SCL信号线忙(读到的值为‘0’),说明被其他密码卡IIC总线接口占用,跳转到S6。

S6:读取随机数发成器生成的随机数为T

S7:延时定时器T递减计数,如果T=0,说明在最后一次总线占用到空闲经过T

S8:读取SCL信号线状态,如果信号线空闲(读到的值为‘1’),跳转到S7;如果信号线忙(读到的值为‘0’),说明被仍然IIC总线接口被占用。跳转到S6。

S9:在确认总线空闲后,置SCL为输出状态,输出值为0,尝试占用IIC总线操作。

S10:读取随机数发成器的随机数T

S11:延时定时器T递减计数,如果T≠0等待,如果T=0跳转继续执行。

S12:置SCL为输入状态,即释放IIC总线的SCL信号线。

S13:读取SCL信号线的占用状态,如果SCL信号线空闲(即读到的值为‘1’),此次协商占用IIC总线成功,跳转到S14;如果信号线忙(即读到的值为‘0’),说明此次协商有其他密码卡IIC总线接口同时在尝试占用,放弃本次总线占用,跳转到S6。

S14:判断尝试占用IIC总线成功次数的计数器也称为冲突检测计数器,将其计数值CheckCnt加一操作,判断当前的CheckCnt是否到达预设阈值N,为防止两个或多个密码卡同一时刻进入S10后且T=T

如果CheckCnt≥N,跳转到S15;如果CheckCnt

S15:通过连续N轮尝试IIC总线占用协商成功后,获取IIC控制权,连接认证接口模块的SDA和SCL信号到IIC总线,完成了安全认证设备(即IIC从设备)和密码卡(即IIC主设备)的连接。

S16:等待认证结束标志,如果认证结束继续执行。

S17:在获得认证结束确认后,释放IIC主设备,当前密码卡的SDA和SCL信号从IIC总线断开,IIC总线重新处于空闲状态,其他密码卡有机会重复上述步骤,直到全部完成认证过程。

S18:认证结束。

在本实施例中,上述提到的延时定时器、冲突检测计数器可以理解为自协商处理单元内部的功能器件。

本发明实施例公开的上述方法可以在可编程逻辑器件(FPGA/CPLD)上实现,其中有几个关键设计部分,包括:3个位置随机数应用的目的和效果、连续N轮抢占成功的要求以及T

上述S2中的随机数设置的目的是:将所有密码卡开机经过一个随机数延时后开始启动认证,通过随机数的方式刻意造成启动顺序的错乱性,做到先到先抢占的目的,是降低总线抢占竞争的第一个措施;

上述S11中的通过设置随机数延时SCL=‘0’的占用时间,进一步解决万一有两个设备同时抢占,通过占用时间(即T

上述S6、S7中设置的随机数是给未抢占到IIC总线资源的设备下次重启分配延时时间,此为降低总线抢占竞争的第三个措施;

在上述一轮抢占所有不可能或小概率发生的情况下,本实施例设置连续N轮抢占成功的要求进一步降低抢占总线抢占竞争的概率,从而达到总线通信的高可靠性。

在本实施例中,T

经过一轮协商抢占后,绝大多数设备处于T

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 基于IIC多主一从通信的密码认证自协商切换系统及方法
  • 基于混合密码的LTE-R车-地通信非接入层认证密钥协商方法
技术分类

06120112168819