一种混合型的多变量数字签名系统及方法
【专利摘要】本发明公开了一种混合型的多变量数字签名系统,包含用于对待签名的消息进行签名处理的签名模块和用于对消息及其签名进行验证处理的验证模块,签名模块包括数据输入输出端、单刀双掷开关、处理器、仿射变换部件、随机生成器、解线性方程组部件和仿射变换求逆部件,验证模块包括数据输入输出端、单刀双掷开关、处理器和公钥验证部件。本发明的系统及方法,在选择适当参数下可以抵御多变量公钥密码目前已知的代数攻击,如分离攻击、秩攻击、直接攻击和穷举攻击等,其安全性高,可达284以上的安全水平,且签名速度较快。
【专利说明】一种混合型的多变量数字签名系统及方法
【技术领域】
[0001]本发明涉及信息安全领域,特别涉及一种混合型的多变量数字签名系统及方法。【背景技术】
[0002]多变量公钥密码是一类非常重要的后量子密码,它的公钥是一组有限域F上多变量二次(或以上)多项式方程,它的安全性依赖于解有限域F上多变量二次多项式方程组是一类NP困难问题。
[0003]多变量公钥密码(包括加密系统和数字签名系统)主要分为双极型系统、混合型系统和IP系列系统。
[0004]目前大部分的多变量公钥密码系统都是双极型系统,而大部分方案都是不安全的,如著名的MI系统(或称Cf方案)被线性化方程攻击和Kipnis-Shamir攻击所打破,基本的Oil-Vinegar系统被分离攻击所打破,四层的Rainbow系统也被高秩攻击和分离带攻击所打破,PMI系统也被差分攻击所打破……。另外,混合型系统存量稀少,仅有的Dragon系统也是不安全的。这些现有的多变量公钥密码系统之所以受到代数攻击的主要原因是它们在结构上存在漏洞或缺陷,也就是说,它们所基于的陷门函数是不安全的。
[0005]因此人们需要一种更加安全的数字签名系统,以满足需求。
【发明内容】
[0006]本发明的目的在于克服现有技术的缺点与不足,提供一种混合型的多变量数字签名系统,其结构是混合型的,能够克服现有系统在设计上的缺陷,安全性和运算效率高,同时也可用于认证场合。
[0007]本发明的另一目的在于提供一种混合型的多变量数字签名方法。
[0008]本发明的目的通过以下的技术方案实现:
[0009]一种混合型的多变量数字签名系统,包含:
[0010]A、签名模块,用于对待签名的消息进行签名处理,其包括数据输入输出端、单刀双掷开关、处理器、仿射变换部件、随机生成器、解线性方程组部件和仿射变换求逆部件,当单刀双掷开关第2端处于通路时,签名模块工作,处理器首先存储输入端传输过来的消息数据,然后再将消息数据传输给仿射变换部件进行仿射变换运算,接着仿射变换部件输出的数据触发随机生成器工作,随机生成器生成一组随机数,然后随机生成器将仿射变换部件输出的数据和随机数一起传输给解线性方程组部件进行线性方程组求解操作,若线性方程组无解或多解,则 系统继续将仿射变换部件输出的数据返回给随机生成器,再次触发随机生成器产生新一轮的随机数,直到解线性方程组部件能够产生唯一一组解,接下来解线性方程组部件将该组解和对应的随机数一起传输给仿射变换求逆部件进行仿射变换求逆运算,产生所要的签名并返回给处理器,处理器最终将原先存储的消息数据及其签名一起输出到终端用户,整个过程的调度由处理器中的调度器进行处理;
[0011]B、验证模块,用于对消息及其签名进行验证处理,其包括数据输入输出端、单刀双掷开关、处理器和公钥验证部件,当单刀双掷开关第I端处于通路时,验证模块工作,处理器首先将输入端传输过来的数据存储起来,该数据包含消息数据和签名数据,然后将消息数据及其签名数据传输给公钥验证部件进行验证操作,若验证成功,则公钥验证部件输出“I”并返回给处理器,否则,则公钥验证部件输出“O”并返回给处理器,最终处理器将“I”或“O”输出到终端用户,其中“I”表示该签名有效,“O”表示该签名无效,整个过程的调度由处理器中的调度器进行处理。
[0012]本发明的另一目的是通过以下的技术方案来实现的:
[0013]一种混合型的多变量数字签名方法,包含:
[0014](I)签名过程:
[0015]a、处理器收到消息数据后将其存储起来并传输给仿射变换部件进行仿射变换运算,产生新数据结果;
[0016]b、仿射变换部件产生的数据传输到随机生成器并触发随机生成器产生一组随机数;
[0017]C、随机生成器将仿射变换部件输出的数据和随机数一起传输给解线性方程组部件进行线性方程求解操作,若线性方程组无解或多解,则系统继续将仿射变换部件输出的数据返回给随机生成器,再次触发随机生成器产生新一轮的随机数,即不断重复步骤b和c直到解线性方程部件能够产生唯一一组解;
[0018]d、解线性方程组 部件将方程解和对应的随机数一起传输到仿射变换求逆部件进行仿射变换求逆运算,产生新数据结果;
[0019]e、仿射变换求逆部件产生的数据返回给处理器并作为原消息的签名,处理器将原先存储的消息及其签名一起传输给终端用户;
[0020](2)验证过程:
[0021]a、收到消息数据和签名数据后,处理器存储这些数据并将它们传输到公钥验证部件进行验证操作,并输出“ I”或“ O ” ;
[0022]b、公钥验证部件将“I”或“O”返回给处理器,处理器最终向终端用户输出“I”或“O”。
[0023]所述混合型的多变量数字签名方法,具体包含以下步骤:
[0024](I)签名过程:
[0025]a、处理器收到消息数据Y’ = (y/ ,..., y; ) e Fr后将其存储起来并传输给仿射变换部件进行仿射变换运算.K = 6',,..., V,) = 5,(K'),产生新数据结果?;
[0026]b、仿射变换部件产生的数据? = G1,...,h)传输到随机生成器并触发随机生成器产生一组随机数V,...,tb’ e F ;
[0027]C、随机生成器将仿射变换部件输出的数据P = (.--和随机数t/,...,tb’ 一起传输给解线性方程组部件进行线性方程组兄.4,...,\4V) = (0,...,0)求解操作,其中Z1,...,Zg是未知变量,若线性方程组if...,zg,V,...,V) = (0,...,0)无解或多解,则系统继续将仿射变换部件输出的数据P = (>',...,Λ)返回给随机生成器,再次触发随机生成器产生新一轮的随机数t/,...,tb’ e F,即不断重复步骤b和c直到解线性方程部件能够产生唯一一组解Z’ = (z/ ,..., z;);
[0028]d、解线性方程组部件将方程解Z’ = (Z1',…,zg’)和对应的随机数V,...,tb’ 一起传输到仿射变换求逆部件进行仿射变换求逆运算Xt = (X1UMwZ) = KkK/CC),产生新数据结果X’ = (xi’,...,xg+b,);
[0029]e、仿射变换求逆部件产生的数据X’ = (x/ xg+b,)返回给处理器并作为原消息的签名,处理器将原先存储的消息Y’ = (y/,...,y/ )及其签名X’ = (χ/,...,xg+b’) 一起传输给终端用户;
[0030](2)验证过程:
[0031]a、收到消息数据 Y’ = (y/,...,yr’)和签名数据 X’ = (x/,...,xg+b’)后,处理器存储这些数据并将它们传输到公钥验证部件进行验证操作
Wiyl ',...,ν/,Λ-, ?,...,'|//)^0,...,0),若方程组中的每个方程左边都等于其右边,则输出“1”,
否则输出“O”;
[0032]b、公钥验证部件将“I”或“O”返回给处理器,处理器最终向终端用户输出“I”或“ O ”,其中“ I ”表示该签名有效,“ O ”表示该签名无效。
[0033]本发明所述的混合型的多变量数字签名系统及方法,涉及到的数学知识与工具如下:
[0034](I)系统所有的运算都是建立在具有q个元素的有限域F上,r、g和b均为正整数,且 r+g+b = η ;
[0035](2)两个可逆仿射变换S1: F — Fr和S2: Fg+b — Fg+b,一个可逆线性变换S3: Fg — Fg ;
[0036](3) 一个中心映射W:Fn — Fg,它的定义如下:
[0037]W (y”..., yr, Z1,..., zg, t1;..., tb) = (W1,..., wg),
[0038]这里的W1,...,wg e Fty1,..., yr, Z1,..., zg, t1;..., tb],它们的形式为
【权利要求】
1.一种混合型的多变量数字签名系统,其特征在于,包含: A、签名模块,用于对待签名的消息进行签名处理,其包括数据输入输出端、单刀双掷开关、处理器、仿射变换部件、随机生成器、解线性方程组部件和仿射变换求逆部件,当单刀双掷开关第2端处于通路时,签名模块工作,处理器首先存储输入端传输过来的消息数据,然后再将消息数据传输给仿射变换部件进行仿射变换运算,接着仿射变换部件输出的数据触发随机生成器工作,随机生成器生成一组随机数,然后随机生成器将仿射变换部件输出的数据和随机数一起传输给解线性方程组部件进行线性方程组求解操作,若线性方程组无解或多解,则系统继续将仿射变换部件输出的数据返回给随机生成器,再次触发随机生成器产生新一轮的随机数,直到解线性方程组部件能够产生唯一一组解,接下来解线性方程组部件将该组解和对应的随机数一起传输给仿射变换求逆部件进行仿射变换求逆运算,产生所要的签名并返回给处理器,处理器最终将原先存储的消息数据及其签名一起输出到终端用户,整个过程的调度由处理器中的调度器进行处理; B、验证模块,用于对消息及其签名进行验证处理,其包括数据输入输出端、单刀双掷开关、处理器和公钥验证部件,当单刀双掷开关第I端处于通路时,验证模块工作,处理器首先将输入端传输过来的数据存储起来,该数据包含消息数据和签名数据,然后将消息数据及其签名数据传输给公钥验证部件进行验证操作,若验证成功,则公钥验证部件输出“I”并返回给处理器,否则,则公钥验证部件输出“O”并返回给处理器,最终处理器将“I”或“O”输出到终端用户,其中“ I”表示该签名有效,“O”表示该签名无效,整个过程的调度由处理器中的调度器进行处理。
2.一种混合型的多变量数字签名方法,其特征在于,包含: (1)签名过程: a、处理器收到消息数据后将其存储起来并传输给仿射变换部件进行仿射变换运算,产生新数据结果; b、仿射变换部件产生的数据传输到随机生成器并触发随机生成器产生一组随机数; C、随机生成器将仿射变换部件输出的数据和随机数一起传输给解线性方程组部件进行线性方程求解操作,若线性方程组无解或多解,则系统继续将仿射变换部件输出的数据返回给随机生成器,再次触发随机生成器产生新一轮的随机数,即不断重复步骤b和c直到解线性方程部件能够产生唯一一组解; d、解线性方程组部件将方程解和对应的随机数一起传输到仿射变换求逆部件进行仿射变换求逆运算,产生新数据结果; e、仿射变换求逆部件产生的数据返回给处理器并作为原消息的签名,处理器将原先存储的消息及其签名一起传输给终端用户; (2)验证过程: a、收到消息数据和签名数据后,处理器存储这些数据并将它们传输到公钥验证部件进行验证操作,并输出“1”或“O”; b、公钥验证部件将“1”或“O”返回给处理器,处理器最终向终端用户输出“ 1”或“O”。
3.根据权利要求2所述混合型的多变量数字签名方法,其特征在于,具体包含以下步 骤: (I)签名过程:a、处理器收到消息数据Y’= (y/ ,..., y; ) e Fr后将其存储起来并传输给仿射变换部件进行仿射变换运算?=仏,…,),)=^i(Tt),产生新数据结果f ; b、仿射变换部件产生的数据?= (&,传输到随机生成器并触发随机生成器产生一组随机数V,...,V e F; C、随机生成器将仿射变换部件输出的数据? = (%,...,〖V)和随机数t/,...,tb’ 一起传输给解线性方程组部件进行线性方程组妒(.U,.= (0,...,O)求解操作,其中 Z1,...,Zg 是未知变量,若线性方程组HzXvl,.,Z1,...,Z,.,Z11 ',...,V) = (0,...,0)无解或多解,则系统继续将仿射变换部件输出的数据^ = Gp...,Λ)返回给随机生成器,再次触发随机生成器产生新一轮的随机数t/,...,tb’ e F,即不断重复步骤b和c直到解线性方程部件能够产生唯--组解Z’ = (z/ , ,Zg'); d、解线性方程组部件将方程解Z’= (Z1',...,<)和对应的随机数V,...,tb’ 一起传输到仿射变换求逆部件进行仿射变换求逆运算Χ' = (ν,...,\+6') = *52—^’,…,^,…,。,产生新数据结果父’ =(X1',...,xg+b’); e、仿射变换求逆部件产生的数据X’= (Xl’,...,Xg+b’)返回给处理器并作为原消息的签名,处理器将原 先存储的消息Y’ = (y/ ,..., y;)及其签名X’ = (χ/ xg+b’) 一起传输给终端用户; (2)验证过程: a、收到消息数据Y’= (y/ ,..., y;)和签名数据X’ = (x/ xg+b’)后,处理器存储这些数据并将它们传输到公钥验证部件进行验证操作Fbl ',...,Vr Ui ?,…,λ;ι/ι -)=(0,...,0),若方程组中的每个方程左边都等于其右边,则输出“1”,否则输出“O” ; b、公钥验证部件将“I”或“O”返回给处理器,处理器最终向终端用户输出“ I”或“O”,其中“ I”表示该签名有效,“O”表示该签名无效。
【文档编号】H04L9/32GK104009848SQ201410225208
【公开日】2014年8月27日 申请日期:2014年5月26日 优先权日:2014年5月26日
【发明者】唐韶华, 沈伍强 申请人:华南理工大学