随着互联网的飞速发展及广泛应用,密码技术不再只运用在军事领域,政治、经济等领域的网络与信息安全问题逐渐被人们重视,作为核心技术的密码算法研究也不断深入,密码技术开始渗透到人们的日常生活中。只有加密保护功能的密码算法已不能满足人们越来越多的效率和安全需求。
比如,n个用户网络通信时,两两间需一个密钥,则共需n(n-2)/2对密钥。随着用户数量增加,每个用户需要的密钥量也会增加,这为密钥记忆或存储带来很大麻烦,因此需用有密钥协商功能的密码算法,同时,为了避免通信双方的欺骗或骚扰,还需用有认证功能的密码算法。
RSA算法设计基于的数学难题是大整数因子分解问题,即把两个素数相乘是很容易的事,但要找到一个大整数的素因子却非常难,因此可把乘积公开作为密钥。1985年另一个强大而实用的公钥方案被公布,叫做ElGamal算法,它的安全性基于离散对数问题,在密码协议中含大量应用。之后基于其他数学难题的公钥密码算法也陆续登场,它们的安全性都是计算安全而不是无条件安全。
进入21世纪后,计算机运行速度极大的提高了,RSA算法的安全性受到了严重威胁:
随着分解整数能力的增强,RSA算法的密钥现在至少需2048bit才能使其安全。形势更加严峻的是,量子计算机的出现可能将大整数因子分解变得易如反掌。
21世纪初,更难解的椭圆曲线离散对数问题被提上日程,基于此数学难题设计的椭圆曲线公钥密码算法成了研究热点。2005年2月16日,美国国家安全局确定用椭圆曲线密码作政府标准的一部分,用于保护敏感却不保密的信息。
我国学者对椭圆曲线密码的研究从20世纪80年代开始,目前已取得不少成果。国家密码管理局颁布的SM2椭圆曲线公钥密码算法比RSA算法有以下优势:
(1)安全性高:256位的SM2算法密码强度已超过RSA-2048。
(2)密钥短:SM2算法用的密钥长度一般是192-256位,而RSA算法通常需1024-2048位。
(3)签名速度快:同等安全强度下,SM2算法在用私钥签名时,速度远超RSA算法。
对我国公钥密码走向应用、形成自主知识产权的产品而言,SM2算法可以说是一场及时雨,它不只有加密功能,还有数字签名与密钥协商的功能,可方便地服务于电子邮件、转账、商务及办公自动化等系统。
随着应用市场对密码产品的需求不断扩大,密码编码与密码破译的对抗将进一步激化,密码又面临新的考验。