首页> 中国专利> 用于在NFC设备中产生真随机数的方法及NFC通讯系统

用于在NFC设备中产生真随机数的方法及NFC通讯系统

摘要

本发明提出一种用于在多个NFC设备或NFC通讯系统中生成真随机数的方法,以此来实现真正实际安全的验证和数据交互,此类方法包括:在多个彼此相互独立设置并且通讯的NFC设备上产生至少两种随机字串,并根据这些NFC设备中被触发NFC通讯的其中一个NFC设备生成和发送的验证请求给其余NFC设备来以第一通讯协议传递所述至少两种随机字串;以及将所述至少两种随机字串通过第二通讯协议发送给处理器以执行混合加密算法以生成至少一个真随机数,将所述真随机数返回至上述被触发NFC通讯的NFC设备端用于所述验证。本发明还涉及一种NFC通讯系统用于实现上述方法。

著录项

  • 公开/公告号CN110830238A

    专利类型发明专利

  • 公开/公告日2020-02-21

    原文格式PDF

  • 申请/专利权人 易兆微电子(杭州)有限公司;

    申请/专利号CN202010011836.7

  • 发明设计人 伍生雁;黎佳;何济柔;

    申请日2020-01-07

  • 分类号H04L9/06(20060101);H04L9/08(20060101);H04B5/00(20060101);

  • 代理机构33261 杭州橙知果专利代理事务所(特殊普通合伙);

  • 代理人贺龙萍

  • 地址 310051 浙江省杭州市滨江区浦沿街道伟业路3号A幢707室

  • 入库时间 2023-12-17 08:08:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-03

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L9/06 变更前: 变更后: 申请日:20200107

    专利权人的姓名或者名称、地址的变更

  • 2020-05-19

    授权

    授权

  • 2020-03-17

    实质审查的生效 IPC(主分类):H04L9/06 申请日:20200107

    实质审查的生效

  • 2020-02-21

    公开

    公开

说明书

技术领域

本发明主要是针对近场通讯(NFC)系统中的真随机数产生的方法及其系统。

背景技术

NFC通讯技术由于其便利性和多功能性被越来越广泛地使用,在使用NFC通讯设备作为商业环境的系统组成部分时需要设计合适加密方式来确保通讯的安全性,通常在这种加密中使用随机数来执行编码,而真随机数主要在此类编码密码算法中密钥的产生以及算法的安全性方面起到重要作用,同时也是计算机和互联网安全的重要组成部分。目前由计算机产生的随机数都是伪随机数,它是由可确定性的函数通过一个种子产生随机数序列,但是如果知道种子和函数,便可以获得接下来的随机数序列信息,因此存在安全性漏洞。另外,使用单一设备执行软件密码生成存在容易被复制和破解的隐患。

发明内容

本发明旨在解决以上缺陷,提出一种用于在多个NFC设备或NFC通讯系统中生成真随机数的方法,以此来实现真正实际安全的验证和数据交互,此类方法包括:在多个彼此相互独立设置并且通讯的NFC设备上产生至少两种随机字串,并根据这些NFC设备中被触发NFC通讯的其中一个NFC设备生成和发送的验证请求给其余NFC设备来以第一通讯协议传递所述至少两种随机字串;以及将所述至少两种随机字串通过第二通讯协议发送给处理器以执行混合加密算法以生成至少一个真随机数,将所述真随机数返回至上述被触发NFC通讯的NFC设备端用于所述验证。

在上述方法的一个具体方案中,所述至少两种随机字串中的一种的生成是包括以下步骤:通过对两个彼此独立计算的NFC设备内随机触发器对振荡器信号执行采样以产生两彼此不同的振荡采样值;以及对所述振荡采样值经过所述混合加密算法处理获得一随机字串。

在进一步的改进中,所述至少两种随机字串的一种的生成还包括以下步骤:通过对两个彼此独立计算的NFC设备的实时时钟信号或者每一NFC设备的预设时间随机计数获得时间数;从其中一个NFC设备的系统随机函数中随机抽取的一个时间随机整数;将上述时间数和时间随机整数通过加密签名算法计算获得随机字串;以及将通过所述加密签名算法处理的该随机字串执行二次加密签名以获得随机字串随机字串。

在上述方法进一步的改进中,所述至少两种随机字串的生成是包括以下步骤:通过对两个彼此独立的NFC设备的加密芯片写入加密芯片算法;通过任一NFC设备产生随机字串,通过另一个或多个NFC设备的加密芯片执行加密签名以生成加密随机字串。

将上述至少两种随机字串以作为种子通过一个或多个线性反馈寄存器LSFR执行128x1+126x2+101x3+99x4多项式算法处理得到真随机数,其中xi(i={1,2,3,4})表示至少两种随机字串中之任一个。

附图说明

图1是本发明NFC通讯系统的示例性描绘示意框图。

具体实施方式

本发明的具体实施方案将结合提供附图说明的方式来详细体现,其中在本说明书中提供了对于实现真随机数产生的硬件电路和实现方法,“真随机数”是表示由例如一个或多个随机型触发器产生的随机数序列是从一个或多个实体硬件/固件产生的,并且由于硬件设计的存在,该随机数不易被仿照、跟随或逻辑推算而破解。在本发明实施方案所列系统运行期间,各NFC设备内/外部的一个或多个通讯协议可用于真随机数的特定发送和编/解码。图1示例性描绘出了实现产生此类真随机数的系统,总的来说,该系统包括在一个家居系统环境100中布置的多个彼此独立设置的NFC设备(以此构成一封闭通讯加密系统)以及一个处理器300,该处理器300与至少一个此类NFC设备建立安全通讯连接。其中图1作为示例性描述,多个NFC设备彼此通过总线式依次电力串接在一起,例如图中所示的NFC设备101、103、105和107依次串接,在任意两NFC设备和处理器300之间设有逻辑编码器(为了简化描绘目的,一些接线方式和数量被省略),例如在示例性方案中,NFC设备101、107通过逻辑编码器102通讯和电连接所示的处理器300,而NFC设备103、105在此基础上又通过逻辑编码器104通讯和电连接所示的处理器300。

在本发明一些实施例中,逻辑编码器较佳地是用于接收来自任意两个NFC设备的例如采样信号或通过每一NFC设备的加密芯片生成的例如随机数、数字代码/掩码或逻辑算符等数字化代码指令,同样地,该逻辑编码器也可被设置为作为一双向信号选通通路来使用,即处理器300可通过该逻辑编码器向任一NFC设备馈送数字信号和/或通过逻辑编码器运算后向NFC设备发送数字信号。此类逻辑编码器可较佳地电子集成的门电路或信号处理电路,诸如加法器、乘法器和/或反相器等。

在以上所列方法的实施例中,可通过与一用户移动设备200触发NFC通讯的NFC设备101产生一硬件随机字串HardwareRandom,在一个实施例中,产生该硬件随机字串HardwareRandom的方法包括:

S100、通过该逻辑编码器设置的随机触发器把两个独立设置的NFC设备101、107各自的振荡器信号执行采样以产生彼此不同的振荡采样值OscValue1和OscValue2。

S200、对所采样的两振荡采样值经过一混合加密算法得到一硬件随机值HardwareRandomMixValue,例如,这个混合加密算法可通过处理器或任一NFC设备被自由定义。举例来说,该混合加密算法是满足用于将所述振荡采样值执行拼装,即满足使得

(1)

进一步来说,可通过NFC设备105将该振荡采样值OscValue1和/或OscValue2执行所述混合逻辑算法以进一步获得硬件随机值 HardwareRandomMixValue’:

(2)

其中OscValueMix1和OscValueMix2分别是例如以十进制编码(例如采用BCD码)为例(有时在加密系统中也可采用简单二进制或十六进制)对应于上述振荡采样值OscValue1和OscValue2的振荡采样混合加密值,其中采用NFC设备101、107各自生成的随机数R1、R2对两振荡采样值执行混合操作(例如标量求和),n是NFC设备101、107根据对应每一随机数R1、R2取的整数值,n∈[1,N],例如是R1=134,R2=578。

作为在此方法S200基础上的一种变型,所述处理器300还包括排序单元,被配置为通过把多个硬件随机值HardwareRandomMixValue按照以下关系式(3)所列的一种混合加密算法获得硬件随机值 HardwareRandomMixValue’:

(3)

其中i,j分别是根据上述每一随机数R1,R2…Rn(当NFC设备数量增加构成阵列后)生成,通过进行排序得到最后的随机字串HardwareRandomValue,应当理解的是这里所列举的排序方法可以多种,例如对于上述硬件随机字串HardwareRandomMixValue里面的每8位按照ASCII代码值大小从大到小执行高位向低位排序以取最大值得到最终随机字串MixValue。

在以上方法实施例中,时间随机字串TimeRandom生成的方法可包括:

S300、通过NFC设备103、105各自的实时时钟(RTC)信号或者根据两NFC设备中每一NFC设备的硬件时钟芯片生成的本征时间随机计数得到两个时间数Timestramp,并且相应地由处理器300产生一时间随机整数TimeRandomValue1,其中这个时间随机整数TimeRandomValue1产生的算法可以是例如由该处理器300从1~65535值中根据本发明NFC通讯系统预设随机函数随机地抽取其中一个整数获得。

S400、选取任一时间数Timestramp并且将该时间数Timestramp和来自处理器300的时间随机整数TimeRandomValue1通过一加密签名算法获取时间随机值TimeRandomFixValue1。其中举例来说,把该时间数Timestramp和随机整数TimeRandomValue1执行的加密签名算法是满足使得

(4)

然后对该时间随机值TimeRandomFixValue1进行例如MD5签名,并执行

(5)

以获得时间随机值TimeRandomFixValue1’,其中G1为固定填充数值,n表示处理器随机生成的一个正整数;

在此基础上,可再通过NFC设备107将经一次加密签名获得的时间随机字串TimeRandomFixValue1’通过所述加密签名算法来获取时间随机值TimeRandomValue,该加密随机算法是例如把时间随机值TimeRandomFixValue1’和一固定数S2执行所述加密签名算法

(6)

然后再进行一次MD5签名以得到时间随机字串TimeRandom。

在以上方法实施例中,软件随机字串SoftwareRandom的生成方法可包括:

S500、通过处理器300随机地产生一软件随机数SoftwareRandom1,例如,该软件随机数SoftwareRandom1可以是由上述每一NFC设备或其它分布式处理器在该处理器300上注册的芯片序列号(SN)、执行上述方法过程的时间戳或用于分配给每一NFC设备一随机地址的流水号执行位合并获得。

S600、再由NFC设备101产生随机整数SoftwareRandomValue1。举例来说,可由该处理器300从1-65535中根据系统随机函数抽取一个随机整数。将时间值SoftwareRandom1和随机整数SoftwareRandomValue1通过上述加密签名算法获取SoftwareRandomFixValue1,加密随机算法是例如把时间值SoftwareRandom1和随机整数SoftwareRandomValue1执行类似加密签名算法,满足使得

(7)

然后对该软件随机值SoftwareRandomFixValue1进行例如MD5加密签名。

S700、将上述经加密签名的时间随机值TimeRandomFixValue1’通过二次加密签名算法获取软件随机字串SoftwareRandom,其中上述加密随机算法例如是把时间值TimeRandomFixValue1和固定数S1(诸如可根据该随机整数长度来对应地设定)执行上述加密签名算法,然后进行MD5签名以得到最终的软件随机字串:

(8)

在以上所列方法的实施例中,加密随机字串EncRandomValue的生成方法可包括:

S800、将一芯片加密算法EncFun写入NFC设备101的加密芯片中,并由该加密芯片中的逻辑算法产生加密随机值EncRandomValue1,将该加密随机值EncRandomValue1通过该加密芯片执行加密签名算法得到加密分段值EncRandomDevValue,将加密随机值EncRandomValue1通过上述加密签名算法得到软件加密随机值EncRandomSoftValue,这个软件加密随机算法可以是例如把该加密随机值EncRandomValue1和固定数S2相加,然后进行MD5签名:

(9)

S900、经一个混合处理算法EnceRandomMix得到软件随机字串EncRandomValue,这个混合处理算法可以是将上述加密分段值EncRandomDevValue及软件加密随机值EncRandomSoftValue执行:

(10)

在以上方法步骤的基础上,将以上方法步骤中生成的四种随机字串作为种子数值,即硬件随机字串HardwareRandomValue、时间随机字串TimeRandom、软件随机字串SoftwareRandom、加密随机字串EncRandomValue等4个随机字串通过一个或多个线性反馈寄存器LSFR执行例如128x1+126x2+101x3+99x4多项式处理得到真随机数。

在以上所列实施例中,所述逻辑编码器是用于执行上述混合加密算法、加密签名算法等逻辑算式的集成电路及其固件程序。值得注意的是,附图中描绘的方式只是示意性体现出来,并不是说固定为这种连接方式,例如NFC设备101和103也可同时接入另外一个此类逻辑编码器中用于传输/接收数字信号指令。

其中在该逻辑编码器连接在处理器300和各个NFC设备101~107间时,在各NFC设备之间构成电力通路以形成总线式网络,这样可在NFC设备101~107之间形成例如单向通路,例如在上述实施例中,NFC设备101产生振荡采样值OscValue1以通过逻辑编码器102传输到NFC设备103,或者NFC设备101和107根据用户移动设备200的近场感应信号触发同时产生振荡采样值OscValue1和OscValue2时通过逻辑编码器102向NFC设备103发送,并且不向NFC设备105传输,从而构成一种单向传输。又例如,当构成为双向通讯时,逻辑编码器可被配置为使得处理器300与某一NFC设备之间构成双向通讯模式。

在一个例子里,对这些NFC设备形成单向通讯总线,该总线可通过提供直流DC供电的方式向这些NFC设备电连接以构成一串接电力通路,例如使用PoE方式形成总线,以提供48V的标准供电和第一通讯协议链路。

具体来说,所述逻辑编码器还包括信号保持电路,被配置为在将上述经加密签名的时间随机值TimeRandomFixValue1’通过二次加密签名算法获取软件随机字串SoftwareRandom时,根据所接收NFC设备103的实时时钟脉冲沿来暂存所述时间随机值TimeRandomFixValue1、TimeRandomFixValue1’用于所述加密签名算法。

本发明在此基础上还设计一种NFC通讯系统,包括在多个彼此相互独立设置并且通讯的NFC设备101、103、105和/或107,所述NFC设备被配置为:产生至少两种随机字串,并根据这些NFC设备中被触发NFC通讯的其中一个NFC设备生成和发送的验证请求给其余NFC设备来以第一通讯协议传递所述至少两种随机字串;以及处理器,被配置为:通过第二通讯协议接收所述至少两种随机字串,以执行混合加密算法以生成至少一个真随机数,将所述真随机数返回至上述被触发NFC通讯的NFC设备端用于所述验证。

较佳地,所述的NFC通讯系统还包括在任意两NFC设备和处理器300之间电力设置的逻辑编码器,例如在示例性方案中,NFC设备101、107通过逻辑编码器102通讯和电连接所示的处理器300,而NFC设备103、105在此基础上又通过逻辑编码器104通讯和电连接所示的处理器300。

本发明技术效果是显著的,由于硬件、时间、软件、加密等多种混合后,无法预测,故变成完全随机的真随机序列。目前该方法产生的1Gbits随机数序列的安全等级极高。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号