基于标识的密码算法


随着物联网、5G通信应用的快速扩张,遭受类型多样化的网络攻击、数据极易被截获或破解等安全风险也逐渐凸显。但是近年来各种安全认证逐步完善、各种密码算法一一标准化,也体现出了企业和政府对安全的重视。为了解决在互联网环境中身份伪造等攻击,在安全体系架构中常常会引入PKI/CA证书体系来保证数据源认证,确保通信双方都是可信的。除了PKI/CA证书体系,近年来我们也看到了基于标识的密码算法也在各种应用领域中逐渐被应用。

基于标识的密码算法是一门新兴的且正在不断快速发展中的公钥密码算法分支。为了降低公开密钥系统中密钥和证书管理的复杂性,以色列科学家、RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Cryptography)的理念。这种密码算法的设计目标是让通信双方在不需要交换公私钥信息不需要保存密钥的目录服务等基础设施不需要使用第三方提供认证服务的情况下保证信息交换的安全性并可以验证相互之间的签名

传统的PKI(Public Key Infrastructure)技术


要了解基于标识的密码算法,首先来回顾下传统的PKI (Public Key Infrastructure)技术。

PKI使用经典的公钥密码算法如RSA/ECDSA等。此时每个用户拥有一对密钥,其中一个是公钥,可以公开发布给其他人,另一个则是私钥,仅自己保留,不可公开。

随之而来的问题是,拿到一个用户,如A用户的公钥后,如何确认该公钥就是A用户的?如果不进行确认,直接用该公钥加密消息后发送给用户A,则是很危险的,假若攻击者B用其公钥替换了A的公钥,则只有他能解密密文,而真正的接收者A恐怕收不到加密的消息,即使收到,解密后只会得到一堆乱码。

可见,身份认证是个大问题,而PKI可以有效解决该问题。具体的,PKI引入了CA CA(Certification Authority)的角色,使用证书机制解决认证,CA负责颁发用户证书,对证书进行查询,验证等管理。同一CA下可以有很多用户,CA给其用户颁发证书,不同用户之间通过证书完成身份认证。如下是一个典型的例子。

图片来源:深圳奥联官网

PKI的加密过程

  1. 用户Bob向CA申请证书。

  2. CA收到申请,审核通过后,向其颁发证书(证书中包含CA的信息,用户个人信息,用户公钥等),Bob收到后,可将其证书公开发布。

  3. Alice要对Bob发送加密消息,首先申请向CA查询Bob的证书,确认该证书的有效性

  4. CA验证该证书(包含数字签名验证过程),给出证书有效性结论。

  5. Alice得到有效性确认后,从Bob的证书中提取Bob的公钥,进行加密,并把密文发送给Bob。

  6. Bob接收到密文后,用自己的私钥进行解密,获得明文。

    PKI的缺点是过程复杂,步骤较多,且需要与CA的交互。对于不具备相关知识的用户来说不够简洁,在很多应用场景下,如此多的步骤和计算量也是个负担。

基于标识的密码技术IBC (Identity-Based Cryptography)


为了降低公钥系统中密钥管理和使用的复杂性,Shamir在1984年提出了基于标识的密码技术(Identity-Based Cryptography - IBC):即用户的标识就可以用做用户的公钥(更加准确地说是用户的公钥可以从用户的标识和系统指定的一个方法计算得出)

图片来源:深圳奥联官网

如上图所示,如果使用PKI技术,用户的公钥可能是一堆乱码,或者多个用户有一样的公钥(如RSA算法,公钥通常都选取65537),不论是哪种情况,都很难直观且唯一地把公钥和用户直接联系起来。

而采用IBC,则用户的公钥可以直接取用户的唯一特征信息即可(即用户标识),如邮件地址,手机号等。并且用户的公钥可以先于用户私钥生成(当然了,只要是用户的唯一标识且被用户认可就可以了,此时同一用户公钥可以有多个)。

图片来源:深圳奥联官网

如此一来,上面的加密过程可得到简化,如上图所示。

IBC的加密过程

  1. Alice要发送加密消息给Bob,直接用Bob的邮件地址作为Bob的公钥进行加密,将密文发送给Bob。

  2. Bob接收到后,向KGC申请基于其邮件地址的私钥。

  3. KGC接收到申请后,生成Bob的私钥,并安全分发给Bob。

  4. Bob用该私钥解密,恢复消息。

    在这种情况下,用户不需要申请和交换证书,从而极大地简化了密码系统管理的复杂性。用户的私钥由系统中的一受信任的第三方KGC(密钥生成中心)使用标识私钥生成算法计算生成。这样的系统具有天然的密码委托功能,适合于有监管的应用环境。

标识算法虽然可以降低密码系统管理的复杂度,但是由于其本身算法的原因,运算速度依然比较缓慢,这也是目前阻碍标识算法大规模应用的主要原因之一。

我国推出基于用户标识的密码算法-SM9


我国近年来也在大力推动基于标识的密码算法的标准化,SM9算法是国密局颁布的一种基于用户标识的密码算法。2008年,标识密码算法正式获得国家密码管理局颁发的商密算法型号:SM9(商密九号算法),为我国标识密码技术的应用奠定了坚实的基础。之后,SM9算法逐渐完善和标准化,2016年,作为密码行业标准GM/T 0044-2016正式发布。

为了解决该性能瓶颈的问题,OSR推出了SM9加速算法IP,在原有的PKE的基础上,通过软件算法库来调用底层硬件来加速SM9,API完全支持GM/T 0044-2016。除此之外,OSR也有SM9专用加速器IP,该加速器针对双线性对运算进行,极大地提高了SM9的运算性能,使得SM9可以应用于各种高速服务场景中。

万物互联 安全赋能

关于纽创信安OSR

深圳市纽创信安科技开发有限公司(Open Security Research Inc.,OSR),成立于2014年,总部在深圳,在北京设有研发中心。是一家专注于安全攻防技术的国家高新技术企业,为客户提供高安全IP和攻击测试服务。

纽创信安以领先的硬件安全攻防技术和创新的硬件安全方法学,致力于把金融级别的安全攻击与防御技术自动化、智能化、产品化、可视化,形成开放的方法学,为万物智联的各垂直行业做安全赋能,并致力于成为新时代安全技术的领跑者。

OSR产品和服务涵盖硬件安全检测设备、安全算法加速、硬件安全解决方案和安全咨询服务,典型客户与合作伙伴包括国家电网、南方电网、泰尔实验室、汇顶、泰凌微电子、得一微电子、云天励飞、C-Sky、Synopsys等。

浅谈商密SM9的发展与应用相关推荐

  1. 浅谈×××技术的应用与发展

    浅谈×××技术的应用与发展 前言 虚拟专用网络(Virtual Private Network ,简称×××)指的是在公用网络上建立专用网络的技术.其之所以称为虚拟网,主要是因为整个×××网络的任意两 ...

  2. 基于商密SM9算法的物联网安全平台设计与应用

    物联网普遍存在遭受网络攻击类型多样化.没有安全保护标准.数据极易被截获或破解等安全风险,核心问题在于缺乏设备.服务提供者.应用.数据.交易等物的安全认证机制.因此,有必要建立一种提供认证鉴权和数据保护 ...

  3. 计算机网络数据通信论文,浅谈计算机网络与数据通信的发展

    浅谈计算机网络与数据通信的发展 随着计算机网络技术与多媒体通信技术的广泛运用,数据通信是行业发展的必然趋势,下面是小编搜集整理的一篇探究计算机网络与数据通信发展的论文范文,欢迎阅读查看. 摘 要:数据 ...

  4. mysql系统研究现状_浅谈数据库的现状和发展 毕业论文.doc

    浅谈数据库的现状和发展 摘 要 学生学籍管理系统是一个教育单位不可缺少的部分,它的对于学校管理至关重要学生学籍管理系统能够为用户提供信息和快捷的查询手段.使用传统人工方式管理文件学籍,这种管理方式存在 ...

  5. 浅谈国密算法 SM1、SM2、SM3、SM4

    浅谈国密算法 国密算法是我国自主研发创新的一套数据加密处理系列算法.从SM1-SM4分别实现了对称.非对称.摘要等算法功能.特别适合应用于嵌入式物联网等相关领域,完成身份认证和数据加解密等功能.当然, ...

  6. 浅谈区块链数字货币发展现状

    浅谈区块链数字货币发展现状 前言 因为自己这学期在学习金融学的相关知识,在通过两门课,即区块链以及货币银行学的比较,对于区块链技术产生的数字货币对当前传统金融体系的冲击有自己的一点看法,故本次作业主要 ...

  7. 浅谈个人对互联网未来发展的见解

    最近几天,听了国防科技大学窦勇教授关于大数据与人工智能的讲座,今天又看了2016绿公司年会马云等人的演讲,充分阐述对未来各行各业发展的见解.我个人对此感受颇深,虽然对很多东西不是了解很多技术的关键点, ...

  8. 浅谈成都物流现状及其发展方向

    一.浅谈成都物流现状 成都市区域物流发展现状概览自2005年以来,成都市物流业产值持续增加,四川省对于成都市物流行业的投入不断增大.2015年成都市交通运 输.仓储和邮政业增加值为 470.14 亿元 ...

  9. 浅谈中国数字电视增值应用发展

    2010年(第三届)"中国数字电视增值业务论坛"于2010年3月23日下午在北京中旅大厦二层举办.本次论坛以"三网融合背景下增值业务布局与系统支撑"为主题,共同 ...

最新文章

  1. 对话框编程之非模态对话框 [04]
  2. case when用法java_Oracle CASE WHEN 用法介绍
  3. Eclipse 部分快捷键
  4. mybatis查询缓存——(十三)
  5. 超越“迁移”的思考:应用程序该如何被Kubernetes接管?
  6. Java——集合的基本功能测试
  7. 乒乓球(洛谷-P1042)
  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 02 了解大厂面试基本套路及每一轮的重点
  9. 5个数中取三个数组合 不重复 php,PHP产生不重复随机数的5个方法总结
  10. java中的泛型(E)
  11. 烽火戏诸侯于计算机相关联系,烽火戏诸侯的成语典故
  12. CCF201712-5 商路(60分题解链接)
  13. MT4API跟单、外汇API跟单接口详解
  14. 动力电池集成关键技术及电池测试与验证
  15. 用python爬取拉勾网招聘信息并以CSV文件存储
  16. sap增加税码注意事项
  17. postMan中文修改
  18. scratch编程大炮打幽灵
  19. bert模型中的[CLS]、[UNK]、[SEP]是什么意思?
  20. -webkit-border-radius和-moz-border-radius

热门文章

  1. 概率论与数理统计 | 知识点总结(下)
  2. Machine Learning:Computing Parameters Analytically
  3. 解决Mac下使用python绘图出现中文乱码的情况
  4. OKR 和绩效考核:可以一起进行吗?
  5. Java项目:超市收银管理系统(java+SSM+HTML+maven+mysql)
  6. 如何高效进行OA系统选型
  7. 模拟实验室合成器插件-Arturia Analog Lab v5.2.0 WiN
  8. android女手机弹唱take a bow,黑科技!不会乐器也能钢琴弹唱,手机上就能练习,你应该知道...
  9. Windows电脑桌面透明云便签怎么自定义设置便签快捷键?
  10. 【软件】[Qt\C++] 使用qt c++写一个进程终结者程序 ——qt关闭外部进程