一种基于交互式曲线的随机数产生方法及产生系统与流程

文档序号:15930652发布日期:2018-11-14 01:35阅读:203来源:国知局

本发明涉及信息安全技术领域,具体地说是一种基于交互式曲线的随机数产生方法及产生系统。

背景技术

移动互联网时代,移动设备越来越普及,安全要求也越来越高,所以需要密码算法的参与保证用户设备的安全性,但是密码算法又依赖于随机数的安全性,而随机数的产生主要依赖于加密机等硬件噪声源设备。现有的随机数产生方案中,鉴于客户端不方便使用大型设备,客户端通过伪随机的方式产生随机数,服务端使用加密机或者随机源硬件。很显然,加密机采集随机数的方式不适用于日益增长的移动安全的需求。

如何在保证安全性和方便性的前提下,产生移动设备随机数是需要解决的技术问题。



技术实现要素:

本发明的技术任务是针对以上不足,提供一种基于交互式曲线的随机数产生方法及产生系统,来解决如何在保证安全性和方便性的前提下、产生移动设备随机数的问题。

本发明的技术任务是按以下方式实现的:

一种基于交互式曲线的随机数产生方法,通过获取的物理随机源生成随机曲线,用户沿着随机曲线画屏,通过对画屏轨迹与随机曲线之间的坐标误差进行hash计算生成随机数,包括如下步骤:

s100、设置屏幕的指定区域,所述指定区域为由几何图形围成的封闭区域;

s200、获取多种移动设备传感器的实时信息作为物理随机源,基于上述随机源生成多个拐点,将上述拐点拟合为随机曲线,并在屏幕的指定区域显示随机曲线;

s300、用户沿着随机曲线在屏幕上滑动手指,并根据手指滑动轨迹与随机曲线之间的坐标误差选取随机数种子;

s400、对随机数种子进行hash计算,得到随机数;

所述屏幕为具有触摸显示功能的屏幕。

进一步的,步骤s100中屏幕的指定区域为矩形区域,设置屏幕的指定区域的方法为:在屏幕上指定两个坐标点,且两个坐标点呈对角设置,通过上述两个坐标点构建一个矩形区域,上述矩形区域为指定区域。

进一步的,步骤s200包括如下步骤:

s210、设定拐点的数量;

s220、依据设定的拐点数量,获取多种移动设备传感器的实时信息,每种移动设备传感器的实时信息均包括多组数据,并对上述多种移动设备传感器的实时信息中对应的每组数据进行乘运算及拼接计算生成随机数,随机数的数量为拐点数量的两倍;

s230、将上述随机数两两组合形成用于确定拐点位置的坐标点,对上述拐点进行二次弥合生成随机曲线;

s240、在屏幕的指定区域上显示上述随机曲线。

进一步的,步骤s300包括如下步骤:

s310、用户沿着随机曲线的走线方向在屏幕上滑动手指;

s320、根据容差判断手指滑动轨迹是否合格,如果手指滑动轨迹合格,则进入步骤s330,如果手指滑动轨迹不合格,则重复步骤s310;

s330、计算手指滑动轨迹与随机曲线之间对应点的坐标误差,并选取预定数量的坐标误差差值进行拼接计算,生成随机数种子。

一种基于交互式曲线的随机数产生系统,能够实现上述任一项所述的一种基于交互式曲线的随机数产生方法,包括用户交互模块、数据采集模块、随机曲线生成模块、随机数生成模块和存储模块,用户交互模块包括用户交互单元和触摸显示屏,用户交互单元和触摸显示屏配合能够支持用户设置触摸显示屏的指定区域,并支持用户设定拐点的数量;数据采集模块能够与移动设备传感器连接,用于采集移动设备传感器的实时信息;随机曲线生成模块分别与数据采集模块和触摸显示屏连接,用于对实时信息进行数据处理生成随机曲线,所述随机曲线能够显示在触摸显示屏上;随机数生成模块与触摸显示屏连接,能够读取用户在触摸显示屏上的手指滑动轨迹,并能够根据手指滑动轨迹与随机曲线之间的坐标误差生成随机数;存储模块分别与上述用户交互模块、数据采集模块、随机曲线生成模块和随机数生成模块连接,用于存储上述用户交互模块、数据采集模块、随机曲线生成模块和随机数生成模块中产生的数据。

进一步的,数据采集模块用于依据设定的拐点的数量,获取多种移动设备传感器的实时信息,每种移动设备传感器的实时信息包括多组数据;随机曲线生成模块为具有如下功能的模块:

对上述多种移动设备传感器的实时信息中对应的每组数据进行乘运算及拼接计算生成随机数,随机数的数量为拐点数量的两倍;

将上述随机数两两组合形成对应拐点的坐标点,对上述拐点进行二次弥合生成随机曲线;

在屏幕的指定区域上显示上述随机曲线。

进一步的,随机数生成模块为具有如下功能的模块:

读取用户在触摸显示屏上沿着随机曲线的手指滑动轨迹;

根据容差判断手指滑动轨迹是否合格,如果手指滑动轨迹合格,则进入下一个步骤,如果手指滑动轨迹不合格,则重复上一个步骤;

计算手指滑动轨迹与随机曲线之间对应点的坐标误差,并选取预定数量的坐标误差差值进行拼接计算,生成随机数种子;

对随机数种子进行hash计算,得到随机数。

本发明的一种基于交互式曲线的随机数产生方法及产生系统具有以下优点:用户设置屏幕的指定区域以及拐点数量,通过采集的物理随机源产生预定数量的随机数作为拐点以拟合成随机曲线,用户在屏幕上沿着随机曲线的走向滑动手指,根据滑动手指与随机曲线之间的坐标误差得到随机数,该随机数的产生由用户参与操作才可以产生,类似于二代key技术,避免了黑客恶意操作,且该随机数是基于对用户手指滑动轨迹与随机曲线之间的坐标误差进行hash计算产生的,具有随机性及不可预测性。

附图说明

下面结合附图对本发明进一步说明。

附图1为实施例1一种基于交互式曲线的随机数产生方法的流程框图;

附图2为实施例2一种基于交互式曲线的随机数产生系统的结构框图;

具体实施方式

参照说明书附图和具体实施例对本发明的一种基于交互式曲线的随机数产生方法及产生系统作以下详细地说明。

实施例1:

如附图1所示,本发明的一种基于交互式曲线的随机数产生方法,通过获取的物理随机源生成随机曲线,用户沿着随机曲线画屏,通过对画屏轨迹与随机曲线之间的坐标误差进行hash计算生成随机数,包括如下步骤:

s100、设置屏幕的指定区域,所述指定区域为由几何图形围成的封闭区域;

s200、获取多种移动设备传感器的实时信息作为物理随机源,基于上述随机源生成多个拐点,将上述拐点拟合为随机曲线,并在屏幕的指定区域显示随机曲线;

s300、用户沿着随机曲线在屏幕上滑动手指,并根据手指滑动轨迹与随机曲线之间的坐标误差选取随机数种子;

s400、对随机数种子进行hash计算,得到随机数。

步骤s100中的屏幕为具有触摸显示功能的屏幕,屏幕的指定区域为矩形区域,设置方式为:选取屏幕的左上角坐标点(x0,y0)以及右下角坐标点(x1,y1),通过左上角坐标点(x0,y0)和右下角坐标点(x1,y1)构建矩形区域作为屏幕的指定区域。

步骤s200通过获取的物理随机源构建随机曲线,用于实现与用户的交互,具体包括如下步骤:

s210、设定拐点的数量为3;

s210、获取三种移动设备传感器的实时信息,每一种移动设备传感器的实时信息均包括三组数据,每组数据包括三个数据,分别为:

传感器a:(ax1,ay1,az1),(ax2,ay2,az2),(ax3,ay3,az3);

传感器b:(bx1,by1,bz1),(bx2,by2,bz2),(bx3,by3,bz3);

传感器c:(cx1,cy1,cz1),(cx2,cy2,cz2),(cx3,cy3,cz3);

s220、对上述三种移动设备传感器的实时信息中每组数据进行乘运算及拼接计算得到2个指定比特长度的随机数,分别为:

第一组对应的随机数m11为:

m11=(ax1*bx1*cx1)||(ay1*by1*cy1)||(az1*bz1*cz1);

第一组对应的随机数m12为:

m12=(ax1*bx1*cx1)||(az1*bz1*cz1)||(ay1*by1*cy1);

第二组对应的随机数m21为:

m21=(ax2*bx2*cx2)||(ay2*by2*cy2)||(az2*bz2*cz2);

第二组对应的随机数m22为:

m22=(ax2*bx2*cx2)||(az2*bz2*cz2)||(ay2*by2*cy2);

第三组对应的随机数m31为:

m31=(ax3*bx3*cx3)||(ay3*by3*cy3)||(az3*bz3*cz3);

m32=(ax3*bx3*cx3)||(az3*bz3*cz3)||(ay3*by3*cy3);

s230、将上述6个随机数两两组合形成对应拐点的坐标点,得到3个拐点,如果拐点位于屏幕的指定区域的外侧,则对坐标点进行取模运算,直至坐标点位于屏幕的指定区域内,然后对上述三个拐点进行贝塞尔曲线运算,生成随机曲线;

s240、在屏幕的指定区域上显示上述随机曲线。

本实施例中步骤s200中,每一种移动设备传感器的实时信息包括3组数据,对上述三种移动设备传感器的实时信息中对应的每组数据进行乘运算和拼接计算,共得到2*3个随机数,两个点可确定一个坐标点,则将上述2*3个随机数两两组合可形成3个拐点,通过3个拐点可拟合为一条随机曲线。

在实际应用中,移动设备传感器的实时信息包含的数据不限于3组,可选取m组数据,通过对m组数据进行相关运算得到2*m个随机数,鉴于至少两个拐点确定一条曲线,此种情况下,需满足m≥2;或者,通过对m组数据进行相关运算得到4*m个随机数,鉴于至少两个拐点确定一条曲线,此种情况下,需满足m≥1。

步骤s300中,根据随机曲线的走向用户画屏,并根据用户画屏轨迹与随机曲线之间的坐标误差得到随机数种子,具体包括如下步骤:

s310、用户沿着随机曲线的走线方向在屏幕上滑动手指;

s320、根据容差判断手指滑动轨迹是否合格,如果手指滑动轨迹合格,则进入步骤s330,如果手指滑动轨迹不合格,则重复步骤s310;

s330、计算手指滑动轨迹与随机曲线之间对应点的坐标误差,并选取100个坐标误差差值进行拼接计算,生成随机数种子。

随机曲线上包含多个坐标点,手指滑动轨迹包含多个坐标点,随机曲线上的点和手指滑动轨迹上对应的点之间会产生误差,从上述对应点中选取100个无坐标误差的点进行拼接计算得到一个值,该值作为随机数种子。

通过步骤s400对步骤s330中得到的随机数种子进行hash计算,得到一组随机数,该随机数为随性的、不可预测的。

本实施例中移动设备为手机,在实际应用也可通过该方法在pad等其他移动设备上产生产生随机数。

实施例2:

如附图2所示,本发明的一种基于交互式曲线的随机数产生系统,包括用户交互模块、数据采集模块、随机曲线生成模块、随机数生成模块和存储模块,

包括用户交互模块、数据采集模块、随机曲线生成模块、随机数生成模块和存储模块,用户交互模块包括用户交互单元和触摸显示屏,用户交互单元和触摸显示屏配合能够支持用户设置触摸显示屏的指定区域,并支持用户设定拐点的数量;数据采集模块能够与移动设备传感器连接,用于采集移动设备传感器的实时信息;随机曲线生成模块分别与数据采集模块和触摸显示屏连接,用于对实时信息进行数据处理生成随机曲线,所述随机曲线能够显示在触摸显示屏上;随机数生成模块与触摸显示屏连接,能够读取用户在触摸显示屏上的手指滑动轨迹,并能够根据手指滑动轨迹与随机曲线之间的坐标误差生成随机数;存储模块分别与上述用户交互模块、数据采集模块、随机曲线生成模块和随机数生成模块连接,用于存储上述用户交互模块、数据采集模块、随机曲线生成模块和随机数生成模块中产生的数据。

其中,通过用户交互单元和触摸显示屏的配合设置触摸显示屏的指定区域的方法为:用户通过触摸显示屏选取两个呈对角的坐标点,分别为左上角坐标点(x0,y0)以及右下角坐标点(x1,y1),由左上角坐标点(x0,y0)以及右下角坐标点(x1,y1)构建的矩形区域作为指定区域。

通过用户交互单元和触摸显示屏的配合设置拐点数量的方法为:用户通过触摸显示屏选取数字3作为拐点的数量,三个拐点之间两两通过圆滑的直线连接可组成一条曲线。

本实施例中数据采集模块获取三种手机传感器的实时信息,每一种手机传感器的实时信息均包括三组数据,每组数据包括三个数据,分别为:

传感器a:(ax1,ay1,az1),(ax2,ay2,az2),(ax3,ay3,az3);

传感器b:(bx1,by1,bz1),(bx2,by2,bz2),(bx3,by3,bz3);

传感器c:(cx1,cy1,cz1),(cx2,cy2,cz2),(cx3,cy3,cz3)。

随机曲线生成模块通过对上述实时信息进行乘运算以及拼接计算得到指定长度的随机,并对随机数进行二次弥合生成随机曲线,具体流程如下:

(1)对上述实时信息进行乘运算及拼接计算得到指定长度的随机数,得到三个随机数,分别为:

第一组对应的随机数m11为:

m11=(ax1*bx1*cx1)||(ay1*by1*cy1)||(az1*bz1*cz1);

第一组对应的随机数m12为:

m12=(ax1*bx1*cx1)||(az1*bz1*cz1)||(ay1*by1*cy1);

第二组对应的随机数m21为:

m21=(ax2*bx2*cx2)||(ay2*by2*cy2)||(az2*bz2*cz2);

第二组对应的随机数m22为:

m22=(ax2*bx2*cx2)||(az2*bz2*cz2)||(ay2*by2*cy2);

第三组对应的随机数m31为:

m31=(ax3*bx3*cx3)||(ay3*by3*cy3)||(az3*bz3*cz3);

m32=(ax3*bx3*cx3)||(az3*bz3*cz3)||(ay3*by3*cy3);

(2)将上述6个随机数两两组合形成对应拐点的坐标点,得到3个拐点,如果拐点位于屏幕的指定区域的外侧,则对上述相关数据进行取模运算,直至坐标点位于屏幕的指定区域内,然后对上述三个拐点进行贝塞尔曲线运算,生成随机曲线;

(3)在触摸显示屏的指定区域上显示上述随机曲线。

随机数生成模块内工作流程为:

读取用户在触摸显示屏上沿着随机曲线的手指滑动轨迹;

根据容差判断手指滑动轨迹是否合格,如果手指滑动轨迹合格,则进入下一个步骤,如果手指滑动轨迹不合格,则重复上一个步骤;

计算手指滑动轨迹与随机曲线之间对应点的坐标误差,并选取100个坐标误差差值进行拼接计算,生成随机数种子;

对随机数种子进行hash计算,得到一组随机数。

通过本实施例的一种基于交互式曲线的随机数产生系统可执行实施例1公开的一种基于交互式曲线的随机数产生方法,从而产生不可预测的、随机的随机数。

本实施例中移动设备为手机,在实际应用也可将该系统配置与pad等其他移动设备上用于产生随机数。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。除说明书所述的技术特征外,均为本专业技术人员的已知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1