中国有自己原创的非对称密码体制吗

2024-02-20 00:59

本文主要是介绍中国有自己原创的非对称密码体制吗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:http://blog.sina.com.cn/s/blog_185c43eee0102yrxq.html

苏盛辉  2018-07-21

 

 在软芯片上 落后国家相对容易赶上或超过先进国家

    什么是软芯片,我们在5月29日的博文中谈到了,它是一种关键核心算法。

    作为网络安全的关键核心技术之一,非对称密码体制(包括三个算法)就是一种软芯片。自1976年其架构被首次提出以来,它历来是各国学者重点研究的对象。不像硬芯片CPU要依赖于蚀刻机等高精度物理设备,软芯片主要依赖于人的大脑。因此,只要肯努力、肯坚持、肯尝试,在软芯片上,落后国家是相对容易赶上甚至超过先进国家的。

    在7月19日的博文中,我们谈到非对称密码体制的设计有三个层次,即概念层次、难题层次和算法层次,并且要能保证从公钥推导不出私钥,从公钥与密文的联合推导不出私钥,从密文推导不出明文,从密文与公钥的联合推导不出明文,从密文与已知明文的联合推导不出另一个明文。由此可知,设计一个安全的非对称密码体制是非常困难的。这里的安全也分为两个层次,一是在电子计算机上是安全的,二是在量子计算机上是安全的。当然,后者包含了前者。

 

 原创非对称密码体制的标准

   在7月19日的博文中,我们谈到了关于原创的标准。

   一个非对称密码体制是否原创,主要要看三个方面:(1) 是否引入了新的关键概念和其性质,或是否首次使用已有关键概念;(2) 是否引入了新的难题,或是否首次使用已有难题;(3) 是否设计了三个新算法。

 

 目前中国有两个原创的非对称密码体制

    根据上述标准和公开资料来衡量,中国原创的非对称密码体制目前有两个,或两个系列。

 

3.1  学者陶仁骥和陈世华的基于有限自动机的非对称密码体制

    该项工作始于上个世纪80年代初,1997年推出成熟版本FAPKC 3体制[1][2],它是基于计算机科学中有限自动机理论的,利用了有限自动机的弱可逆性(图1)。不过,该体制以密文作为反馈来构造状态转移函数,存在一定安全风险[3]。

 中国有自己原创的非对称密码体制吗
图1: 有限自动机密码体制论著

 

    在同样的安全性下,其速度应该比RSA体制快,但与ECC体制相比如何,尚未见有关文献做讨论。另外,它是否抗量子计算攻击亦未见有关文献做分析。

 

3.2  学者苏盛辉和吕述望的基于杠杆函数的非对称密码体制

    该项工作始于上个世纪90年代末,2001年推出REESSE1非对称密码体制,并申请第一个发明专利(专利号ZL011101636,2001年4月2日),2003年在《计算机工程与科学》杂志上发表相应论文,2004年提出REESSE2,2005年提出REESSE1-E,并受邀在Crypto 2005会议上报告和讨论它(图2)(后因签证问题而未成行),2006年提出REESSE1+,并在国际密码学会电子文库公布了它[4]。其后,REESSE1+被不断改进和完善。

中国有自己原创的非对称密码体制吗
图2: Crypto 2005大会主席邀请函

 

    2011年REESSE1+被国际著名期刊《Theoretical Computer Science》接收(图3),2012年4月被出版发行[5]。《Theoretical Computer Science》之所以出名,是因为它曾刊登的文章是作者后来被授予图灵奖的成果依据。

 中国有自己原创的非对称密码体制吗
图3: REESSE1+非对称密码体制

 

    REESSE1+是一个原型体制,包括加密和数字签名两部分,基于三个新难题,即多变量排列难题(Multivariate Permutation Problem,MPP(内含杠杆函数))、非范子集积难题Anomalous Subset Product problem,ASPP)和超越对数难题(Transcendental Logarithm Problem,TLP)。自2009年8月起,这三个难题在国际上被公开悬赏破解,每个10万美金(图4),至今无人能破,仍是指数时间安全的[6]。

    杠杆函数简单地讲,它会导致破译非常非常困难(面临排列问题),而解密很容易(只是面临累加和问题)。

 中国有自己原创的非对称密码体制吗
图4: 三个新难题的公开悬赏破解

 

    2016年12月,源自REESSE1+加密部分的JUOAN非对称密码体制被《Theoretical Computer Science》发表,它是一个有实用价值的加密体制[7]。JUOAN是可证安全的,在同等安全性下,其运行速度比RSA快,但比ECC慢。另外,目前的分析表明它是抗量子计算攻击的

    为了获得更快的运行速度,目前,我们正研制JUOAN2,已有初步方案。它可能成为世界上最快的量子安全的非对称密码体制之一

    REESSE1+/JUOAN体制获得了著名密码学家Ronald L. Rivest 、蔡吉人、周仲义、魏正耀、郑建华等院士的书面好评。

 

4  SM2非对称密码体制为何不是原创的

    SM2在国内鼎鼎有名[8],并被说成是国产密码,为何它不是原创的呢?

    打开文献[8]一看题目,就知SM2其实是椭圆曲线公钥密码算法(图5)。

 中国有自己原创的非对称密码体制吗
图5: SM2椭圆曲线仿制密码(来自网络)

 

    椭圆曲线公钥密码算法常简称为椭圆曲线密码,根据其英文叫法Elliptic Curve Cryptography或Elliptic Curve Cryptosystem,它又进一步简称为ECC。

    ECC是ElGamal体制在椭圆曲线加法群上的类似,而ElGamal又受示于Diffie-Hallman体制,因此,ElGamal体制没有被申请专利,同样,ECC也不能被申请专利。这样,诞生于美国的ECC就可以超脱专利限制而被其它国家使用。因此,严格来讲SM2是一种国产仿制密码,就像国家药品监督管理局的仿制药配方一样

    我们国家使用ECC作为公钥体制标准不是不可以,但它也有不利的一面:

    首先,它抑制了绝大部分网络(信息)安全企业的创新,尤其,不像硬芯片需要花钱购买,SM2作为一种软芯片,无需花钱就可以得到,这样,企业自然不愿意来搞耗钱、耗时的关键技术创新了。

    其次,绝大部分网络安全企业做应用开发时,底层都是使用SM2,这样,大家面对市场或项目竞标时,彼此之间是一种同质竞争,为了拿下某个客户或项目,是否会导致正常竞争手段之外的其它手段?

    再次,由于SM2是仿制ECC的,因此,SM2的应用范围就不可能超越ECC,即ECC不能做的事情,SM2也不能做,这样,我们的企业只能亦步亦趋,在国际上无竞争力。即使名义上把SM2弄成国际标准也没有实际意义,不会带来国际竞争力和经济效益,因为别的国家完全可以选择ECC做替代,完全可以不用SM2

    再再次,由于ECC不能抗量子计算攻击,因此,SM2也不能抗量子计算攻击,这样,目前我国的网络安全局势整体面临很大的风险,为此,国家理应赶紧制订新的抗量子计算的密码标准,但有技术储备吗?我们这样一个大国,倡导“一带一路”,不能再拿美国的东西作为自己的标准了吧?

    最后,由于有SM2的存在,因此,导致有关领导不重视、甚至打压国产原创非对称密码体制的研发,减缓了国产原创密码体制的实用步伐,加重了量子计算机对我国网络安全产业的威胁。

 

 结束语

    中国人并不笨,关键要有一个好的体制机制、一个好的法律体系、一个好的创新生态,以便让全体国人的聪明才智和创新创造热情得到最大的释放。

    在当前形势下,我们要有一种紧迫感,凡是不利于创新创造的体制机制、不利于成果转化的条条框框都得改,要彻底地改。创新创造不是高级别单位的专利、不是高级别学官的专利、不是“高帽子”学者的专利,谁的成果经得起实践检验,谁的成果就是过硬,就要尽快用上。

    谁为了个人或小团体利益阻碍创新,谁就是跟中央唱反调,谁就是人民的敌人。

 

参考文献

[1] 陶仁骥, 陈世华. 一种有限自动机公开钥密码体制和数字签名. 计算机学报, v8(6), 1985, pp: 401-409.

[2] R. Tao, S. Chen, and X. Chen. FAPKC3: A New Finite Automaton Public Key Cryptosystem. Computer Science and Technology, v4(12), 1997, pp: 289-305.

[3] 尤春光. 基于自动机理论的公钥密码学研究. 南京理工大学硕士论文(导师: 叶有培), 2005年06月.

[4] S. Su and S. Lü. The REESSE1+ Public Key Cryptosystem. http://eprint.iacr.org/2006/420.pdf, 15 Nov 2006.

[5] S. Su and S. Lü . A Public Key Cryptosystem Based on Three New Provable Problems. Theoretical Computer Science, v426-427, Apr 2012, pp: 91-117.

[6] S. Su and S. Lü. REESSE1+ • Reward • Proof by Experiment • A New Approach to Proof of P ≠ NP. http://arxiv.org/pdf/0908.0482, Aug 2009.

[7] S. Su, S. Lü, M. Xu, and T. Xie. A Semantically Secure Public Key Cryptoscheme Using Bit-pair Shadows. Theoretical Computer Science, v654, May 2016, pp: 113–127.

[8] 国家商密办. SM2椭圆曲线公钥密码算法. 国家密码管理局公告(第21号), 2010年12月17日.

这篇关于中国有自己原创的非对称密码体制吗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726551

相关文章

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.