功夫财经网

《指数计算中的窗口法》——中国人发明的公钥签名验证快速算法

首页 > 功夫财经网 > 项目 > > 正文

日期:2022-08-01 18:00:11    来源:    

一、发明背景

1976年美国斯坦福大学的迪菲(Diffie)和赫尔曼(Hellman)两人首先发明的(论文“New Direction in Cryptography”)公钥密码体制,又称为双密钥密码体制。其思想是通过构造陷门单向函数,来实现加密密码和解密密钥的分离,并且不能通过加密密钥获得解密密钥。

单向陷门函数是有一个陷门的一类特殊单向函数,包含两个特征:一是单向性,二是存在陷门。所谓单向性,也称不可逆性,即对于一个函数y=f(x),若已知x要计算出y很容易,但是已知y要计算出x=f-1 (y)则很困难,f-1为f的反函数。单向函数的命名就是源于其只有一个方向能够计算。所谓陷门,也被称为后门。对于单向函数,若存在一个z使得知道z则可以很容易地计算出x=f-1(y),而不知道z则无法计算出x=f-1(y),则称函数y=f(x)为单向陷门函数,而z称为陷门。

1977年MIT教授Ronald L.Rivest,Adi Shamir和Leonard M.Adleman共同提出基于大数据分解的RSA密码体制,为公钥密码体制给出了一个实际可用的范例。

与之前的秘密密钥体制不同,双密钥密码体制的加密密钥和解密密钥分离,并且通常加密密钥公开,只保密解密密钥。公共密钥密码的优点是不需要经安全渠道传递密钥,大大简化了密钥管理。

目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA体制。另一类是基于离散对数问题的,如ElGamal公钥密码体制和影响比较大的椭圆曲线公钥密码体制。

正是基于大整数计算,公钥密码计算非常耗时,在当时RSA公钥密钥计算慢的问题阻碍了其实际应用。

二、算法诞生的过程

自公钥密码诞生起,如何提高快速计算RSA密码就成为一项专门任务。“八五”国家密码基金、电科院的项目基金等就专门设立了快速计算RSA密码的课题。1993年,在西安电子科技大学读研师从张泽增教授的叶季青在这项研究中,获得了突破,在一个小小的赛道取得了世界级的科研应用成果。张教授给叶季青指出了硕士文论的方向,做RSA快速算法研究,并给出的根本指标是,在当时台式桌面计算机上,模长512比特的RSA密码体制加密和解密整个速率小于15秒。

叶季青查阅了大量国内外快速计算RSA密码资料,发现当时国际上RSA密码快速实现研究热点是大整数指数计算的加法链法,即将指数展现出可以分部相加的结果。这个问题有些类似于装箱问题,即在总球数一定的情况下,大小不同球如何正好装成一箱。这个问题有时是无解的,即NP问题(Nondeterministic Polynomially,非确定性多项式),指一个复杂问题不能确定是否在多项式时间内找到答案。也就是说大整数指数加法链方法不一定有解,不实用。

结合过去的实践,叶季青发现可以在指数长度一定时,可以将指数按照一定的长度“分块”,对“块内”的指数进行预先计算,以后只要将“块内”的结果取出来和当前的二进制结果相乘则得到当前位+“分块”长度的指数计算结果。分块成为 “窗口”。这样就是加法链的指数展示不确定变为窗口法指数展示的确定性。

叶季青是在单位工作了几年后去读研究生的,在单位编制过密码程序。密码程序中,往往需要计算一些函数算式。叶季青从老同志那里学到了函数预计算方法。对于2进制的多自变量函数,为提高计算速度,采取预先计算的方式,即在密码程序初始化时就将一些函数按照多自变量从小到最大顺序遍历取值一次,得到函数的所有计算结果。将多变量的各取值与计算结果,对应做成表格,自变量为输入地址,计算结果为表格内容作为输出。

这个快速算法的诞生既与叶季青研究国际上最新的RSA实现算法有关,也与单位的工作经验有关。算法看起来简单,但是包含了将传统密码程序所用的预计算方法转到现代公钥密码计算的灵巧应用。论文答辩会刚刚结束,就有年轻老师问叶季青,是你一个人做出来的吗?论文除了这个快速算法提出、分析和实现对照,还包括RSA密码体制密钥生成的快速方法实现。

三、算法发表与获奖

在硕士论文基本完成后,叶季青将RSA的快速算法的内容整理成为《指数计算中的窗口法》发表在1994年的第三届中国密码学学术会议论文集《密码学进展—CHINACRYPT´94》上。最终硕士论文的开发的RSA密码系统(用汇编语言开发)实现了每秒加密2次的结果,大大高于张教授之前提出完成任务所需的15秒的要求。

回单位后,叶季青继续从事这方面的研究,开发了RSA的并行密码算法,在PC机的机箱里插入5块PCI卡,并行计算RSA密码。窗口法与另外几个算法,以及包含算法的RSA公钥密码系统,联合组成一个项成果目。项目成果鉴定会上,密码界的顶级大专家说,一步在国内将公钥密码推向实用。这个项目同时完成了一个“八五”国家密码专项。项目同时获得部级科技进步二等奖。

《指数计算中的窗口法》简单明了,是一种通用的公钥密码计算方法。2012年国家密码标准中推荐《滑动窗口法》算法,虽然时针对椭圆曲线密码体制,实际上包括其预处理方法的整个算法就是《指数计算中的窗口法》。

当今随着信息化深入发展,公钥密码在信息加密、身份确认、数据签名、区块链等领域得到广泛的应用,与传统秘密密钥密码相比,公钥密码更加符合互联网应用需求。公钥密码是依靠大量计算建立信息安全屏障的,其中我国在公钥密码领域推出的基于预处理的窗口法是其中当前应用最普遍的RSA和椭圆曲线公钥密码最有效的快速计算方法,在世界公钥密码快速计算中应该占有一席之地,是原创性成果。

该算法在实际应用中,提高了公钥密码计算速度,节省了大量的社会时间和电力资源。该算法为目前最常用最为普遍的计算算法之一,可以认为银行系统和与银行具有业务资金联系的网络终端、每部具有支付和银行存款功能的手机都应用了该算法。

下一篇:阿维塔科技CEO谭本宏:坚持长期主义
上一篇:最后一页

推荐图文

推荐城事

栏目排行