一种数字签名方法、装置、移动设备及存储介质与流程

文档序号:16149390发布日期:2018-12-05 17:14阅读:133来源:国知局

本发明涉及信息安全技术领域,尤其涉及一种数字签名方法。

背景技术

传统数字签名过程中,分组密码的多次迭代循环操作,导致电子设备中硬件的执行时间、功率消耗、电磁辐射等参数成某种特征规律变化,因此,若攻击者通过监测数字签名过程中电子设备硬件的执行时间曲线、功耗曲线、电磁辐射曲线,则可能根据上述曲线的特征变化规律,利用统计方法对功耗曲线进行分析处理,从而窃取私钥,导致算法的安全性受到攻击。



技术实现要素:

本发明实施例提供一种数字签名方法,利用随机数对用于进行数字签名的关键信息进行掩码处理,以解决现有技术中攻击者通过监测功耗曲线,根据曲线的特征变化规律,利用统计方法对功耗曲线进行分析处理,从而窃取私钥,导致算法的安全性受到攻击的问题。

本发明实施例还提供一种数字签名装置、移动设备及存储介质,用于解决现有技术中攻击者通过监测功耗曲线,根据曲线的特征变化规律,利用统计方法进行分析处理,从而窃取私钥,导致算法的安全性受到攻击的问题。

具体地,本发明实施例采用下述技术方案:

一种数字签名方法,包括:

确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数;

根据所述第二参数依次对私钥以及所述第一参数进行随机化处理,分别得到随机化后的私钥以及随机化后的第一参数;

根据所述随机化后的私钥以及随机化后的第一参数计算数字签名结果。

一种数字签名装置,其特征在于,包括:

确定模块,用于确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数;

随机化模块,用于根据所述第二参数依次对私钥以及所述第一参数进行随机化处理,分别得到随机化后的私钥以及随机化后的第一参数;

计算模块,用于根据所述随机化后的私钥以及随机化后的第一参数计算数字签名结果。

一种智能设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数字签名方法的步骤。

一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数字签名方法的步骤。

本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:

采用本发明实施例提供的方法,由于利用随机数对用于进行数字签名的关键信息进行了掩码处理,比如:对用于进行数字签名的私钥、随机数进行随机化处理,以掩盖真实的私钥、随机数。这样,即使攻击者通过监测功耗曲线,并根据曲线的特征变化规律,采用统计方法对功耗曲线进行分析处理,最终窃取到的私钥,也并非真正的私钥,而是经过随机化处理过的私钥,并不会对算法的安全性造成影响。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明的一个实施例提供的一种数字签名方法的实现流程示意图;

图2是本发明的一个实施例提供的一种确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数的实现流程示意图;

图2a是本发明的一个实施例提供的一种确定第一随机数是否满足特定条件的具体实现流程示意图;

图3是本发明的一个实施例提供的一种私钥、第一参数随机化的实现流程示意图;

图4是本发明的一个实施例提供的数字签名方法的实现流程示意图;

图5是本发明实施例提供的一种数字签名装置的具体结构示意图;

图6是本发明的一个实施例提供的一种移动设备的硬件结构示意图。

具体实施方式

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

实施例1

为解决现有技术中由于攻击者通过监测功耗曲线,进而根据曲线的特征变化规律,采用统计方法对功耗曲线进行分析处理,最终窃取私钥,导致算法的安全性受到攻击的问题,本发明实施例提供一种数字签名方法。

该方法的执行主体,可以是各种类型的计算设备,或者,可以是安装于计算设备上的应用程序或应用(application,app)。所述的计算设备,比如可以是手机、平板电脑、智能可穿戴设备等用户终端,也可以是服务器等。

为便于描述,本发明实施例以该方法的执行主体为服务器密码机为例,对该方法进行介绍。本领域技术人员可以理解,本发明实施例以该服务器密码机为例对方法进行介绍,仅是一种示例性说明,并不对本方案对应的权利要求保护范围构成限制。

具体地,本发明实施例提供的该方法的实现流程如图1所示,包括如下步骤:

步骤11,确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数;

这里所说的第一参数是指用于进行数字签名过程中的随机数,其中,本发明实施例中用k表示用于进行数字签名的随机数,且k∈[1,n-1],n表示椭圆曲线上的阶。需要说明的是,在本申请实施例中仅对随机数k的取值范围进行限定,而对所述随机数的生成方式不作限定,生成方式比如可以是直接由随机数机随机生成,也可以通过数学方法生成,其中用数学方法生成随机数的方法又可以分为多种,例如,混合同余法、均匀分布法、正态分布法、对数正态分布法等。

这里所说随机化处理是指通过随机产生一些数值,然后用这些数值对用于进行数字签名的关键信息按照预设方式进行处理,以掩盖原始的关键信息。

步骤12,根据所述第二参数依次对私钥以及所述第一参数进行随机化处理,分别得到随机化后的私钥以及随机化后的第一参数;

需要说明的是,本发明中所述的第二参数是指随机生成的随机数值;本发明实施例中用r1、r2、r3表示用于进行随机化处理的第二参数。其中,第二参数的生成方式不作限定,比如可以采用上述步骤11中提及的生成方式。此外,第二参数的范围以及数据长度也均不作限定,其数据长度可以根据具体的实际需求进行设定,比如,为了提高数据签名的安全性,可以优先选取数据长度较长的随机数,假设在三组数据长度分别为256比特、128比特、64比特的随机数中,可以优先选取数据长度为256比特的随机数作为第二参数。再比如,为了降低计算过程中的复杂程度,可以优先选取数据长度相对短一些的随机数,沿用上例,在以上三组随机数中,则可以优先选取数据长度为64比特或者128比特的随机数作为第二参数。

步骤13,根据所述随机化后的私钥以及随机化后的第一参数计算数字签名结果。

采用本发明实施例提供的方法,由于利用随机数对用于进行数字签名的关键信息进行了掩码处理,比如:对用于进行数字签名的私钥、随机数进行随机化处理,以掩盖真实的私钥、随机数。这样,即使攻击者通过监测功耗曲线,并根据曲线的特征变化规律,采用统计方法对功耗曲线进行分析处理,最终窃取到的私钥,也并非真正的私钥,而是经过随机化处理过的私钥,并不会对算法的安全性造成影响。

本发明提供的一个或多个实施例中,基于以上实施例详细叙述了本发明的发明构思,为了便于更好的理解本申请的技术特征、手段和效果,下面对本发明中确定第一参数以及第二参数的方法进一步说明。

具体地,本发明实施例提供的确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数方法的实现流程如图2所示,包括如下步骤:

步骤21,随机生成第一随机数;

本发明实施例中用k表示用于进行数字签名的随机数,且k∈[1,n-1],n表示椭圆曲线上的阶。需要说明的是,在本申请实施例中仅对随机数k的取值范围进行限定,而对所述随机数的生成方式不作限定,生成方式比如可以是直接由随机数机随机生成,也可以通过数学方法生成,其中用数学方法生成随机数的方法又可以分为多种,例如,混合同余法、均匀分布法、正态分布法、对数正态分布法等。

步骤22,确定所述第一随机数是否满足特定条件;

需要说明的是,并非任意的第一随机数都可以作为第一参数,用于计算数字签名;第一随机数需满足一定条件才可以作为第一参数用于数字签名,具体判别方法如下图2a所示,包括如下子步骤:

子步骤221,根据椭圆曲线点乘算法以及所述第一随机数,确定椭圆曲线点的坐标(x1,y1);

具体地可以采用如下公式[1]确定椭圆曲线点的坐标:

(x1,y1)=[k]g[1]

其中,g为椭圆曲线的基点坐标,x1为椭圆曲线点的横坐标,y1为椭圆曲线点的纵坐标,[k]g表示k与g相乘;椭圆曲线点可以是椭圆曲线上的任意一个随机有效点。

若假设椭圆曲线基点g的坐标为(x,y),随机数为k0,则椭圆曲线点的坐标(x,y)=(k0x,k0y)。

子步骤222,可以采用如下公式[2]对所述椭圆曲线点的横坐标值进行取模运算,确定用于进行数字签名的中间参数;

r=x1modn[2]

其中,n表示椭圆曲线的阶;r=x1modn表示对椭圆曲线点的横坐标值x1进行取模运算,即获取x1除以n的余数的过程,计算得到的余数表示用于进行数字签名的中间参数。比如,设x1为8,n为3,则x1modn=8mod3=2。

子步骤223,当所述中间参数为非零值时,则确定所述第一随机数满足特定条件。

当所述中间参数为非零值时,也就是说当椭圆曲线的阶不能被椭圆曲线点的横坐标整除时,则说明满足椭圆曲线横坐标条件的第一随机数满足特定条件。

步骤23,将满足特定条件的第一随机数确定为所述第一参数。

将通过执行上述步骤221~223确定的满足特定条件的第一随机数确定为所述第一参数,即用于进行数字签名的随机数k。

需要说明的是,本发明中所述的第二参数是指随机生成的随机数值;本发明实施例中用r1、r2、r3表示用于进行随机化处理的第二参数。其中,第二参数的生成方式不作限定,比如可以采用上述步骤11中提及的生成方式,此外,第二参数的范围以及数据长度均不作限定,其数据长度可以根据具体的实际需求进行设定,比如,为了提高数据签名的安全性,可以优先选取数据长度较长的随机数,假设在三组数据长度分别为256比特、128比特、64比特的随机数中,可以优先选取数据长度为256比特的随机数作为第二参数。再比如,为了降低计算过程中的复杂程度,可以优先选取数据长度相对短一些的随机数,沿用上例,在以上三组随机数中,则可以优先选取数据长度为64比特或者128比特的随机数作为第二参数。

采用本发明实施例提供的方法,产生的随机数满足进行数字签名的特定条件,采用本发明实施例中产生的随机数,结合上述实施例中的发明构思,可以生成一套完整的数字签名方法,采用这种数字签名方法,可以解决现有技术中攻击者通过监测功耗曲线,进而根据曲线的特征变化规律,采用统计方法对功耗曲线进行分析处理,最终窃取私钥,导致算法的安全性受到攻击的问题。

本发明提供的一个或多个实施例中,基于以上实施例详细叙述了本发明的发明构思,为了便于更好的理解本申请的技术特征、手段和效果,下面对本发明中根据所述第二参数依次对私钥以及所述第一参数进行随机化处理,分别得到随机化后的私钥以及随机化后的第一参数的具体实施方法进一步说明。

具体地,本发明实施例提供的根据所述第二参数依次对私钥以及所述第一参数进行随机化处理的实现流程如图3所示,包括如下步骤:

步骤31,根据所述第二参数、所述中间参数以及所述椭圆曲线的阶,按照如下公式[3],对所述私钥进行随机化处理:

d’=(rd+r1n)modr3n[3]

其中,d’表示随机化后的私钥,d表示所述私钥,r表示所述中间参数,r1、r3表示所述第二参数。

具体地,对所述私钥进行随机化处理的方式不仅限于上述计算方式,由于第二随机数可以由随机数机随机产生,且数值长度、数值范围没有特定要求,因此,私钥随机化方式比如还可以是d’=(rd+r3n)modr1n;或者是将第二随机数位置上的数替换成r2,例如替换成d’=(rd+r2n)modr2n。

步骤32,根据以下公式[4]计算待签名消息的哈希值;

e=h(m)[4]

其中,m表示待签名消息。

步骤33,根据所述待签名消息的哈希值、所述第一参数、第二参数以及所述椭圆曲线的阶,按照以下公式[5]对所述第一参数进行随机化处理:

k’=(ke+r2n)modr3n[5]

其中,k’表示随机化后的第一参数,k表示所述第一参数。需要说明的是,步骤31与步骤33,在实际操作过程中,私钥和随机数的随机化过程没有明确的先后顺序,比如,私钥和随机数可以同时进行随机化,也可以按照先后顺序进行随机化,本发明仅仅是为了方便描述,特将步骤31作为私钥随机化过程,将步骤33作为第一参数随机化过程。

采用本发明实施例提供的方法,由于利用随机数对用于进行数字签名的私钥以及第一参数等关键信息进行了掩码处理,即使攻击者通过监测功耗曲线,进而根据曲线的特征变化规律,采用统计方法进行分析处理,从而窃取到私钥,也并非真正的私钥,而是经过随机化处理过的私钥,并不会对算法的安全性造成影响,解决了算法安全性的问题。

本发明提供的一个或多个实施例中,为了便于更好的理解本申请的技术特征、手段和效果,具体地,如下图4所示,本发明实施例提供的根据所述随机化后的私钥、所述中间参数计算数字签名结果的实现流程,包括如下步骤:

步骤41,根据以下公式[6]计算出随机化后的数字签名值s’:

s’=[(rd+r1n)(ke+r2n)]modr3n[6]

步骤42,根据以下公式[7]对所述随机化后的数字签名值s’进行脱随机化处理,得到脱随机化结果;

s=s’modn[7]

其中,数字签名过程中先计算随机化后的数字签名值s’是为了保护私钥安全性,接着对随机化后的数字签名值进行脱随机化处理,其目的是为了保证数字签名结果的正确性。

步骤43,当结果不为0时,将所述脱随机化结果确定为数字签名结果s。

步骤44,当结果为0时,重新确定用于进行数字签名的第一参数,重复执行上述操作。

当数字签名结果为0时,说明数字签名过程中选择的第一参数不恰当,应该重新确定用于进行数字签名的第一参数,确定好第一参数后,重复执行上述操作,直至获得正确的数字签名结果。

采用本发明是实力提供的方法,由于对私钥和第一参数进行了随机化处理,可以避免攻击者通过监测功耗曲线,进而根据曲线的特征变化规律,采用统计方法进行分析处理,从而窃取私钥,导致算法的安全性受到攻击的问题。

为解决现有技术中,由于攻击者可能通过监测功耗曲线,进而根据曲线的特征变化规律,采用统计方法对功耗曲线进行分析处理,最终窃取私钥,导致算法的安全性受到攻击的问题,本发明实施例提供一种数字签名装置,该装置的具体结构示意图如图5所示,包括确定模块51、随机化模块52、计算模块53,其中:

确定模块51,用于确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数;

随机化模块52,用于根据所述第二参数依次对私钥以及所述第一参数进行随机化处理,分别得到随机化后的私钥以及随机化后的第一参数;

计算模块53,用于根据所述随机化后的私钥以及随机化后的第一参数计算数字签名结果。

优选的,本发明实施例还提供一种移动设备,包括如图6所示的处理器610,存储器609,存储在存储器609上并可在所述处理器610上运行的计算机程序,该计算机程序被处理器610执行时,实现上述实施例中所述的gost数字签名方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

图6为实现本发明各个实施例的一种智能设备的硬件结构示意图,该智能设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、处理器610、以及电源611等部件。本领域技术人员可以理解,图6中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

其中,处理器610,耦合到所述存储器,用于确定用于进行数字签名的第一参数以及用于进行随机化处理的第二参数;根据所述第二参数依次对私钥以及所述第一参数进行随机化处理,分别得到随机化后的私钥以及随机化后的第一参数;根据所述随机化后的私钥以及随机化后的第一参数计算数字签名结果。

存储器609,用于存储可在处理器610上运行的计算机程序,该计算机程序被处理器610执行时,实现处理器610所实现的上述功能。

应理解的是,本发明实施例中,射频单元601可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器610处理;另外,将上行的数据发送给基站。通常,射频单元601包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元601还可以通过无线通信系统与网络和其他设备通信。

移动终端通过网络模块602为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元603可以将射频单元601或网络模块602接收的或者在存储器609中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与移动终端600执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元603包括扬声器、蜂鸣器以及受话器等。

输入单元604用于接收音频或视频信号。输入单元604可以包括图形处理器(graphicsprocessingunit,gpu)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元606上。经图形处理器6041处理后的图像帧可以存储在存储器609(或其它存储介质)中或者经由射频单元601或网络模块602进行发送。麦克6042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元601发送到移动通信基站的格式输出。

移动终端600还包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板6061的亮度,接近传感器可在移动终端600移动到耳边时,关闭显示面板6061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器605还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元606用于显示由用户输入的信息或提供给用户的信息。显示单元606可包括显示面板6061,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板6061。

用户输入单元607可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元607包括触控面板6071以及其他输入设备6072。触控面板6071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板6071上或在触控面板6071附近的操作)。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器610,接收处理器610发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6071。除了触控面板6071,用户输入单元607还可以包括其他输入设备6072。具体地,其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板6071可覆盖在显示面板6061上,当触控面板6071检测到在其上或附近的触摸操作后,传送给处理器610以确定触摸事件的类型,随后处理器610根据触摸事件的类型在显示面板6061上提供相应的视觉输出。虽然在图6中,触控面板6071与显示面板6061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板6071与显示面板6061集成而实现移动终端的输入和输出功能,具体此处不做限定。

接口单元608为外部装置与移动终端600连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元608可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端600内的一个或多个元件或者可以用于在移动终端600和外部装置之间传输数据。

存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器609可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器610是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器609内的软件程序和/或模块,以及调用存储在存储器609内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器610可包括一个或多个处理单元;优选的,处理器610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。

移动终端600还可以包括给各个部件供电的电源611(比如电池),优选的,电源611可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,移动终端600包括一些未示出的功能模块,在此不再赘述。

优选地,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中所述任意一种方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

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