商用密码算法原理与C语言实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

生活中我们提到“密码”,通常想到的是计算机或手机的“开机密码”,电子邮箱、微信、QQ的“登录密码”,银行卡的“支付密码”等。生活中的这些“密码”实际上是口令。口令只是进入个人计算机、手机、电子邮箱、银行账户等的“通行证”,它是一种简单、初级的身份认证手段,是最简单的密码。

密码是指使用特定变换,对信息等进行加密保护或安全认证的产品、技术和服务。密码的主要功能有两个:一个是加密保护,另一个是安全认证。加密保护是指使用数学变换,将原来可读的信息变成不能识别的符号序列。简单来说,加密保护就是将明文变成密文。安全认证是指使用数学变换,确认信息是否被篡改、是否来自可靠信息源以及确认行为是否真实。简单来说,安全认证就是确认主体和信息的真实可靠性。密码可按照不同标准分类,按功能形态可将密码分为密码技术、密码产品和密码服务;按保护信息种类可将密码分为核心密码、普通密码和商用密码。核心密码是用于保护国家绝密级、机密级、秘密级信息的密码;普通密码是用于保护国家机密级、秘密级信息的密码;商用密码是用于保护不涉及国家秘密的信息的密码。公民、法人和其他组织可依法使用商用密码保护网络与信息安全。

密码是保障网络与信息安全的核心技术和基础支撑,是解决网络与信息安全问题最有效、最可靠、最经济的手段。没有网络安全就没有国家安全。密码作为网络安全的核心技术,是维护国家安全和根本利益的战略性资源。在金融等重要领域推进我国商用密码的应用,是建设网络强国、构建安全可控信息技术体系的重要措施。商用密码广泛应用于国民经济发展和社会生产生活的方方面面,涵盖金融、通信、公安、税务、社保、交通、卫生健康、能源、电子政务等重要领域,在维护国家安全,促进经济社会发展,保护公民、法人和其他组织合法权益方面发挥着重要作用。国家对重要领域商用密码的应用提出了明确要求。在社会管理领域,公安部已累计发放使用商用密码芯片的第二代居民身份证超过18亿张,有效杜绝了伪造、变造身份证等违法犯罪行为。商用密码还可用于公民个人敏感信息、隐私和企业商业秘密保护。例如,商用密码在网上银行、支付宝系统中的广泛应用,显著提高了交易数据的安全防护能力,降低了用户身份被仿冒、敏感信息被盗用等风险。

密码算法是最基础、最重要的密码技术。国家密码管理局高度重视密码算法管理工作。近十年来,发布了祖冲之序列密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法和SM9标识密码算法等商用密码系列(SM系列)算法,构成了包含序列密码算法、对称密码算法、非对称密码算法、密码杂凑算法和标识密码算法等在内的完整、自主国产密码算法体系。2019年10月26日,第十三届全国人民代表大会常务委员会第十四次会议表决通过了《中华人民共和国密码法》,并于2020年1月1日起施行。

该法的颁布施行是我国密码发展史上具有里程碑意义的大事,有助于提升我国密码工作的规范化、科学化、法制化水平,对维护我国网络空间安全、促进信息化发展具有重要意义,也直接关系企业商业秘密的依法保护,关系社会公众在网络空间生活的安全和便利。

SM系列算法作为我国大力推广的国产密码算法,尤其是在成为密码行业标准和国家标准后,其应用取得显著成绩,为促进商用密码发展、保障我国信息安全发挥了巨大作用。

为了帮助密码科技工作者更好地理解SM系列算法的原理,进一步推进SM系列算法的广泛应用,我们编著了本书,详细讲解算法原理,分析算法的设计和实现过程,并在C语言环境下编程实现了算法。

本书是一本内容丰富、特色鲜明、实用性强的商用密码算法原理和编程实现的参考用书。书中不仅给出了算法的理论知识,而且在Visual Studio平台上编程实现了算法。读者可以进一步编写和调试SM系列算法代码。书中还附加了密码算法运行的截图,以及算法运行效率分析,以供参考。

本书包含配套教学资源,读者可登录华信教育资源网(www.hxedu.com.cn)注册后免费下载。

全书由李子臣教授编著。北京电子科技学院张卷美、杨亚涛老师参与了本书有关章节的编写和校对工作。本书的编写也得到了北京印刷学院相关领导和师生的帮助,在此对他们致以衷心的感谢。电子工业出版社为本书的编辑和出版也做了大量的工作,在此对责任编辑表示诚挚的感谢。

由于时间仓促以及作者水平有限,我们虽然尽全力对本书进行了校对和检错,但是难免有疏漏之处,恳请广大读者批评指正。

编者