一种在单片机上生成并存储密钥的方法及其装置制造方法及图纸

技术编号:3502855 阅读:239 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及信息安全领域。本发明专利技术提出一种安全生成密钥的方法及其实现装置,其中密钥生成采用若干种随机因子生成随机数,所获得的随机数经过变换后作为密钥;其中所采用的随机因子包括在一定频率下采集无线噪声信号电平的模拟量。由于密钥是在密钥设备内生成的,因此厂商无法保留密钥副本的方法,能有效保障密钥的安全性。

【技术实现步骤摘要】

本专利技术涉及信息安全
,具体的涉及一种安全生成密钥的方法,以及使用这种方法获得密钥的装置。
技术介绍
随着计算机技术的发展,全球人类都享受到信息网络化带来的方便。而信息技术的发展,其先决条件就是要有完善的安全保密技术。而缺乏保密性可能会导致严重的后果,个人和企业都会受到严重影响。而无论是网络信息还是本地资料的安全保密技术,都是建立在数据加密技术上面。加密技术的2个关键分别是加密算法和密钥。许多加密算法都是国际公开的,而其使用的密钥则必需安全,密钥安全的一个基本保证就是密钥的生成,有效的生成方法应该确保密钥不可重复或至少极难重复,并且密钥的副本严格受控。密钥产生时要避免使用不安全的随机数,随机数的产生需要种子,种子是一个变量,随机数相当于它的函数,用y=f(x)表示,x是种子,y就是随机数,y可以直接用来做对称性算法中密钥,种子的安全性决定了随机数的安全性。例如下使用C语言的库函数生成随机数srand((unsigned int)time(NULL)); //用当前的时间作种子int y=rand(); //获得一个随机数可见,这里时间就是种子,y是由它产生的随机数,它是不安全的,因为攻击者可以根据计算机上残留的时间信息,配合代码分析推算出产生随机数时的时间。生成一个安全的、即不可重现的随机数往往要用到多种不可重覆的种子,如从温度传感器读取到的当前温度,鼠标当前的横、纵坐标,麦克风获得的声音采样数据等等,即y=F(x,a,b)。这里,x、a、b为种子,即随机因子,联合多种随机因子通过一些换算关系f(x,a,b)获得y,y就可以作为密钥。另一方面,在现有技术中,密钥设备的密钥生成方法是,在设备出厂前,将已经由其他设备(如计算机)生成好的密钥存储或烧制在设备中。这种方法的明显缺点是,一方面对用户来说,用户不能确定厂家是否留存密钥的副本,从而威胁用户的安全;另一方面对厂商来说,一旦用户密钥丢失,可能会给厂商带来责任与麻烦。
技术实现思路
(一)要解决的技术问题本专利技术的目的是要克服目前现有技术的缺陷,提出一种安全的、采用难以重复获得的随机因子生成密钥的方法,以及为实现这种方法而设计的装置。(二)技术方案本专利技术提出一种在单片机上使用无线电接收模块采集密钥并保存密钥的方法,它采用一种或多种随机因子生成随机数,所获得的随机数经过变换后作为密钥;其中所采用的随机因子包括在一定频率下采集无线噪声信号电平的模拟量。上述的在单片机上生成并存储密钥的方法,一种优选的方案是使用无线电接收器采集信号,将采集到的信号电平输入到单片机作为随机数发生源;在一个不定长的时间段内,单片机中的计数器不断累加,同时不断地判断无线电电平是否发生了变化,如果变化的次数到达一定的量,即停止累加,将这个计数器的值作为长随机数的一个字节,然后开始下一个字节的采集,直至密钥生成全部完成。上述的在单片机上生成并存储密钥的方法,一种优选的方案是所述的计数器为8位计数器。上述的在单片机上生成并存储密钥的方法,一种优选的方案是所述随机因子还包括用户输入因子,时钟计数器值因子;其中,用户输入因子是采集用户按键时,从按下按钮到松开按钮之间的时间长度;时钟计数器值因子是采集设备从上电到用户按下按钮之间的时间长度。本专利技术还提出一种在单片机上生成并存储密钥的装置,包括以下部分(1)单片机,用于生成和存储生成的密钥;其中密钥生成时采用至少一种随机因子,这些随机因子包括单片机在一定频率下采集无线噪声信号电平的模拟量;(2)无线电接收模块,在通讯时用于传输数据,在采集密钥时作为随机数的发生源;(3)电源模块,用于为单片机、无线电接收模块供电。上述的在单片机上生成并存储密钥的装置,一种优选的方案是单片机采集多种随机数作为随机因子,包括单片机上电到开始采集的计时器值,该计时器从上电开始自动累加。上述的在单片机上生成并存储密钥的装置,一种优选的方案是于单片机采集多种随机数作为随机因子,包括单片机采集从按下按钮时的计时器的值,该计时器从上电开始自动累加。上述的在单片机上生成并存储密钥的装置,一种优选的方案是所述的计时器的频率大于1MHz,长度为16位。上述的在单片机上生成并存储密钥的装置,一种优选的方案是单片机的寄存器内有一个标识符,这个标识符用于标识密钥设备是否处于出厂状态;当密钥设备上电后,判断该设备是否处于出厂状态,如果是,密钥设备开始生成密钥,然后标示符的值发生跳变,标识密钥设备处理用户使用状态;如果否,允许用户进行正常的操作。上述的在单片机上生成并存储密钥的装置,一种优选的方案是单片机采用若干种随机因子生成随机数,所获得的随机数经过变换后作为密钥;其中所采用的随机因子包括在一定频率下采集无线噪声信号电平的模拟量。上述的在单片机上生成并存储密钥的装置,一种优选的方案是电源模块的输出端接有电压检测电路,该电路用于把电池电量低信号传给计算机以通知用户更换电池;当电压降到一限定值时,复位单片机,以保护存储器中的数据。(三)有益效果采用本专利技术的提出的生成密钥的方法及其装置,所生成的密钥具有极高的安全性;而且能保证厂商无法保留密钥副本,有效保障用户的权益。附图说明图1为本专利技术提出的生成密钥的装置的模块图;图2为密钥设备中无线电传输芯片的连接图;图3为密钥设备中电源模块所选用的芯片的连接图;图4为用户操作的流程图。其中,1、单片机;2、传输模块;3、电源模块;5、指示灯;U3、RF芯片;U4、DC-DC升压电路;U5、稳压电路; 具体实施例方式本专利技术提出,结合附图和实施例说明如下。以下实施方式仅用于说明本专利技术,而并非对本专利技术的限制,有关
的普通技术人员,在不脱离本专利技术的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本专利技术的范畴,本专利技术的专利保护范围应由各权利要求限定。(实施例一)根据本专利技术提出的安全生成密钥的方法,联合采用多种随机因子作为生成密钥的种子。其中的一种随机因子是采集空气中无线电噪声电平的模拟量。由于空气中的无线电噪声是随机而无序的,因此它的电平表示也是随机而无序的,正符合作为生成密钥所用的种子的要求。采集的过程可以用C伪代码描述为以下语言,其中一些定义如下R是一个待采集的随机数数组,元素为一个字节,长度为n;Frx是无线接收模块电平变化的最小频率;Fcpu是单片机的时钟频率;Irx是无线电模块电平的数字量输入,其值为1或0,1为高电平,0为低电平。C伪代码描述#xdefine n 64 //定义随机数长度#define LOOPS 64 //定义接收模块的输入电平变化LOOPS次后停止当前随机数的计数unsigned char R; //定义随机数的数组MakeRandom() //随机数生成的函数{int index; //随机数组的索引 int loops;//电平变化计数int PrevIrx;//用于保存上一次电平的状态PrevIrx=Irx; //保存电平状态for(index=0;index<n;index++)//循环产生每一个随机数数组的元素{R=0;loops=0;while(loops<LOOPS) //循环增加R,直到电平变化了64次{R++; //此处可溢出,即255+1=本文档来自技高网
...

【技术保护点】
一种在单片机上生成并存储密钥的方法,其特征在于采用一种或多种随机因子生成随机数,所获得的随机数经过变换后作为密钥;其中所采用的随机因子包括在一定频率下采集无线噪声信号电平的模拟量。

【技术特征摘要】

【专利技术属性】
技术研发人员:张正新
申请(专利权)人:北京兆维电子集团有限责任公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利