IBC 身份标识密码技术(标识密码算法)

2023-03-20 14:32:58 密语知识 思思

1 标识密码技术的发展

      基于身份标识的密码系统(Identity-Based Cryptograph, 简称IBC),是一种非对称的公钥密码体系。标识密码的概念由Shamir于1984年提出,其最主要观点是系统中不需要证书,使用用户的标识如姓名、IP地址、电子邮箱地址、手机号码等作为公钥。用户的私钥由密钥生成中心(Key Generate Center,简称KGC)根据系统主密钥和用户标识计算得出。用户的公钥由用户标识唯一确定,从而用户不需要第三方来保证公钥的真实性。但那时,标识密码的思想停留在理论阶段,并未出现具体的实施方案。

    直到2000年以后,D. Boneh和M. Franklin , 以及R. Sakai、K. Ohgishi 和 M. Kasahara 两个团队独立提出用椭圆曲线配对(parings)构造标识公钥密码,引发了标识密码的新发展。利用椭圆曲线对的双线性性质,在椭圆曲线的循环子群与扩域的乘法循环子群之间建立联系,构成了双线性DH、双线性逆DH、判决双线性逆DH、q-双线性逆DH和q-Gap-双线性逆DH等难题。当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时,可用椭圆曲线对构造出安全性和实现效率最优化的标识密码。

    基于身份的标识密码是传统的PKI证书体系的最新发展,国家密码局于2006年组织了国家标识密码体系IBC标准规范的编写和评审工作。2007年12月16日国家IBC标准正式通过评审,给予SM9商密算法型号。

2 标识密码的技术原理

    标识密码系统与传统公钥密码一样,每个用户有一对相关联的公钥和私钥。标识密码系统中,将用户的身份标识如姓名、IP地址、电子邮箱地址、手机号码等作为公钥,通过数学方式生成与之对应的用户私钥。用户标识就是该用户的公钥,不需要额外生成和存储,只需通过某种方式公开发布,私钥则由用户秘密保存。IBC密码体系标准主要表现为IBE加解密算法组、IBS签名算法组、IBKA身份认证协议,下面分别介绍。

2.1 标识密码加解密体制

    标识密码的加解密方案由四部分组成, 即包括系统参数生成(Setup)算法、密钥生成(Extract)算法、加密(Encrypt)算法和解密(Decrypt)算法。步骤描述如下:

Setup:给出一个安全参数k,输出系统参数params和主密钥MasterKey。其中,系统参数params是公开的,而主密钥MasterKey只有密钥生成中心知道。

Extract:利用params, MasterKey和任意的,ID∈{0, 1}*, 返回私钥PrivateKeyID。ID是任意长度的字符串,并作为加密公钥,PrivateKeyID是解密用的私钥。

Encrypt:利用params和公钥ID对明文M进行加密,得出密文C, C=Encrypt(params, M, ID)。

Decrypt:利用params和私钥PrivateKeyID对密文C进行解密,得出明文Decrpyt(params, C, PrivateKeyID)=M。

2.2 标识密码签名验证体制

    标识密码的签名验证方案有很多, 但概括起来基本上由四个算法组成, 即系统参数生成(Setup)算法、密钥生成(Extract)算法、签名(Significant)算法和验证(Verify)算法.其算法描述如下:

Setup和Extract同上一小节标识密码加解密机制中的Setup和Extract。

Significant:输入待签的报文M、系统公开参数和用户私钥PrivateKeyID,生成签名(R, S),其中R=r·P ,r 为随机数。

Verify:输入签名(R, S)、系统公开参数和用户身份(ID),输出验证结果。

2.3 标识密码的认证协议

    标识密码算法的身份认证协议步骤如下,以A、B之间的认证为例:

    Step1:A通过计算单元生成一个随机数 R, 通过时钟单元产生一个当前时间戳T, 发送给B;

    Step2:B通过计算单元生成一个随机数r,并计算u=rP,c=H(u, R, T),S=(r+c)·PrivateKeyID,把u, S发送给A;

    Step3:A通过计算单元验证如下公式是否成立;如果成立则A认证通过,否则A认证未通过。

3 IBC与PKI的对比

3.1 体系对比

    传统的PKI体系与IBC体系都是以公钥密码技术为基础,保证数据的真实性、机密性、完整性和不可抵赖性为安全目的而构成的认证、授权、加密等硬件、软件的综合设施。由于IBC体系将用户唯一性的身份标识作为用户的公钥这一天然优势,使得IBC体系比PKI庞大的证书管理和发布系统更易于应用。下文比较了PKI体系与IBC体系的应用,如表所示。

3.2流程对比

alice给bob转一笔钱。

PKI的流程如下图。

PKI流程

IBC的流程如下图。

IBC流程

3.3对比结论

    由以上分析可见,相比PKI体系,IBC体系的应用优势主要表现在以下几个方面:

   1.无需PKI体系中的数字证书,无需证书颁发机构CA中心,无需证书的发布与查询,使用简单,部署方便,尤其适用于海量用户的安全系统;

    2.无需PKI中证书验证等计算过程,具备较低的计算代价,适用于手机终端;

    3.无需PKI的在线连接CA服务器查询与验证证书状态,具备较低的通信代价;

    4.丰富的策略控制机制,将身份认证与访问控制合二为一。

国密算法是什么呢?

国密算法是国家密码局制定标准的一系列算法。其中包括了对称加密算法,椭圆曲线非对称加密算法,杂凑算法。具体包括SM1、SM2、SM3、SMS4等,其中:

SM1:对称加密算法,加密强度为128位,采用硬件实现。

SM2:国家密码管理局公布的公钥算法,其加密强度为256位。其它几个重要的商用密码算法包括:

SM3:密码杂凑算法,杂凑值长度为32字节,和SM2算法同期公布,参见《国家密码管理局公告(第 22 号)》。

SMS4:对称加密算法,随WAPI标准一起公布,可使用软件实现,加密强度为128位。

案例

例如:在门禁应用中,采用SM1算法进行身份鉴别和数据加密通讯,实现卡片合法性的验证,保证身份识别的真实性。安全是关系国家、城市信息、行业用户、百姓利益的关键问题。国家密码管理局针对现有重要门禁系统建设和升级改造应用也提出指导意见,加强芯片、卡片、系统的标准化建设。

003 国密算法【技术】

国密算法:国家密码局认定的国产密码算法,即商用密码。

非对称密码(公钥算法):SM2,SM9

对称密码(分组密码,序列密码):SM1,SM4,SM7,ZUC

杂凑算法(散列,哈希算法):SM3

概述 : 对称加密算法(分组密码) ,分组长度128位,密钥长度128位, 算法不公开 ,通过加密芯片的接口进行调用。

场景 :采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

概述 : 非对称加密算法(公钥算法) ,加密强度为256位,是一种椭圆曲线算法。

公钥密码学与其他密码学完全不同, 使用这种方法的加密系统,不仅公开加密算法本身,也公开了加密用的密钥。公钥密码系统与只使用一个密钥的对称传统密码不同,算法是基于数学函数而不是基于替换和置换。公钥密码学是非对称的,它使用两个独立的密钥,即密钥分为公钥和私钥,因此称双密钥体制。双钥体制的公钥可以公开,因此称为公钥算法。

使用私钥加密后的密文只能用对应公钥进行解密,反之使用公钥加密的密文也只能用对应的私钥进行解密。通过对私钥进行椭圆曲线运算可以生成公钥,而由于椭圆曲线的特点,知道公钥却很难反推出私钥,这就决定了SM2算法的安全性。SM2算法最常见的应用是进行身份认证,也就是我们熟知的数字签名与验签,通过私钥的私密性来实现身份的唯一性和合法性。

场景: 适用于商用应用中的 数字签名和验证 ,可满足多种密码应用中的 身份认证 和 数据完整性,真实性 的安全需求。

场景: 适用于商用密码应用中的 密钥交换 ,可满足通信双方经过两次或可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥(会话密钥)。

场景: 适用于国家商用密码应用中的 消息加解密 ,消息发送者可以利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解,获取消息。

涉及国密标准: GB/T 32918.1-2016、GB/T 32918.2-2016、GB/T 32918.3-2016、GB/T 32918.4-2016、GB/T 32918.5-2017、GB/T 35275-2017、GB/T 35276-2017。

概述:哈希算法(散列算法,杂凑算法) ,任意长度的数据经过SM3算法后会生成长度固定为256bit的摘要。SM3算法的逆运算在数学上是不可实现的,即通过256bit的摘要无法反推出原数据的内容,因此在信息安全领域内常用SM3算法对信息的完整性进行度量。

场景: 适用于商用密码应用中的 数字签名和验证 , 消息认证码的生成与验证 以及 随机数的生成 ,可满足多种密码应用的安全需求。

涉及国密标准: GB/T 32905-2016

概述:对称加密算法(分组密码) ,分组长度128位,密钥长度128位,使用某一密钥加密后的密文只能用该密钥解密出明文,故而称为对称加密。SM4算法采用32轮非线性迭代实现,加解密速度较快,常应用于大量数据的加密,保存在存储介质上的用户数据往往就使用SM4算法进行加密保护。

场景:大量数据的加密,解密,MAC的计算 。

分组密码就是将明文数据按固定长度进行分组,然后在同一密钥控制下逐组进行加密,从而将各个明文分组变换成一个等长的密文分组的密码。其中二进制明文分组的长度称为该分组密码的分组规模。

分组密码的实现原则如下:必须实现起来比较简单,知道密钥时加密和脱密都十分容易,适合硬件和(或)软件实现。加脱密速度和所消耗的资源和成本较低,能满足具体应用范围的需要。

分组密码的设计基本遵循混淆原则和扩散原则

①混淆原则就是将密文、明文、密钥三者之间的统计关系和代数关系变得尽可能复杂,使得敌手即使获得了密文和明文,也无法求出密钥的任何信息;即使获得了密文和明文的统计规律,也无法求出明文的任何信息。

②扩散原则就是应将明文的统计规律和结构规律散射到相当长的一段统计中去。也就是说让明文中的每一位影响密文中的尽可能多的位,或者说让密文中的每一位都受到明文中的尽可能多位的影响。

涉及国密标准: GB/T 32907-2016

概述 : 对称加密算法(分组密码) ,分组长度128位,密钥长度128位, 算法不公开 ,通过加密芯片的接口进行调用。

场景 :适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。

概述:非对称加密算法(标识密码) ,标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交换数字证书和公钥过程,使得安全系统变得易于部署和管理,非常适合端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。

SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点,从而开启了普及密码算法的大门。

概述 : 对称加密算法(序列密码) ,是中国自主研究的流密码算法,是运用于移动通信4G网络中的国际标准密码算法,该算法包括祖冲之算法(ZUC)、加密算法(128-EEA3)和完整性算法(128-EIA3)三个部分。目前已有对ZUC算法的优化实现,有专门针对128-EEA3和128-EIA3的硬件实现与优化。

sm9是什么算法?

SM9是中华人民共和国政府采用的一种标识密码标准,由国家密码管理局于2016年3月28日发布,相关标准为“GM/T 0044-2016 SM9标识密码算法”。

在商用密码体系中,SM9主要用于用户的身份认证。据新华网公开报道,SM9的加密强度等同于3072位密钥的RSA加密算法。

sm9和sm2区别

SM9是基于双线性对的标识密码算法,SM2包含四个部分:总则,数字签名算法,密钥交换协议以及密钥封装机制和公钥加密算法。

关于标识密码的一点认知

之前整理过几篇关于数字证书的笔记。数字证书技术的是 PKI(Public Key Infrastructure)的重要组成部分,基于数字证书技术的身份认证方式,在在金融、通信、互联网、数据中心等领域发挥着关键作用。但发展多年的 PKI 体系也并非完美,关于数字证书生命周期的管理是其中一个关键问题,而当下受到越来越多关注的技术体系 - 基于标识的密码体系(IBC) ,正在尝试用一种新的方式解决传统 PKI 所面临的难题。趁热打铁写了一篇学习笔记,保持学习,青春永驻。

大家都清楚,在传统 PKI 体系下,一个实体具有一对密钥:一个是公开的公钥;一个是自己保管的私钥。在这样的系统中, 信息发送方需要正确获取接收方的公钥,否则就可能出现恶意攻击方可通过提供虚假接收方公钥,即中间人攻击的方式获取信息 。

为了证明接收方公钥的可信,传统 KPI 体系就需要一个 受信任的第三方来绑定实体与其拥有的密码对 。这个受信第三方即认证中心(CA:Certificate Authority),在对实体进行身份核实后,就为其生成一个公私钥对,并为该实体颁发一个证书,证书中包含实体的标识、公钥以及认证中心的数字签名。 信息发送方在发送信息前需要获取接收方的证书 。在验证证书的有效性后,发送方使用证书中的公钥加密。这就是基于数字证书的 PKI 系统。

基于数字证书的 PKI 系统有几个问题:

为了解决传统 PKI 的一些问题,以色列密码学家 Shamir 于1984年提出基于标识的密码体系,即 IBC(Identity-Based Cryptograph)。其最主要观点是 不需要由 CA 中心生成公私钥对,不需要使用证书传递公钥,而是使用用户标识如姓名、IP地址、电子邮箱地址、手机号码等代表用户的标识信息作为公钥,私钥则由密钥中心(Key Generate Center, 简称KGC)根据系统主密钥和用户标识计算得出 。

自 Shamir 1984年提出 IBC 思想的十几年,一直停留在概念阶段,直到2000年,D.Boneh 和 M.Franklin, 以及 R.Sakai、K.Ohgishi 和 M.Kasahara 两个团队均提出基于椭圆曲线数学难题的配对构造算法,解决了安全性和实现效率最优化的问题,标识密码终于引发了标识密码的新发展。2008年,我国将 IBC 正式纳入中国国家算法标准, 并获得国家商用密码管理局颁发的算法型号 SM9 。

IBC 体系标准主要包括 IBE加解密算法组 、 IBS签名算法组 、 IBKA身份认证协议 三个个组成部分。理解的时候,对照传统 KPI 体系标准,其实很容易理解。

加解密算法由四部分组成:

核心步骤描述如下:

数字签名算法也由四个部分组成:

核心步骤描述如下:

这个过程是不是看起来和传统 PKI 体系的数字签名是一样的思路?

同传统 PKI 体系,身份认证利用的是数字签名与验证原理,协议核心原理如下(以A认证B为例):

这个过程是不是看起来和传统 PKI 体系的身份认证是一样的思路?

传统 PKI 体系与 IBC 体系都是以公钥密码技术为基础,保证数据的真实性、机密性、完整性和不可抵赖性。IBC体系将代表用户唯一性的身份标识作为用户公钥,确实获得了一些天然优势,使得IBC体系比PKI庞大的证书管理和发布系统更易于应用。

特别要强调,在针对数字证书这个环节上,IBC 确实有优势,但绝不能以偏概全,认为 IBC 就是全面取代传统 PKI 的方案,密码体系可不仅仅指数字证书。

一张被到处引用的 PKI 与 IBC 的流程对比图,比较清晰的展示了二者的不同。

PKI 体系原理图:

IBC 体系原理图:

再次强调,IBC 是对 PKI 的有益补充,但不能简单认为 IBC 是全面取代传统 PKI 的技术体系!

标识密码体系没有证书管理的负担,简化了实施应用,能够快速实现安全通信,尤其适用于安全电子邮件系统、移动通信的客户以及需要向未注册人群发送信息的用户。

国际电信联盟(ITU)已采用 IBC 技术作为下一代移动电话的认证技术手段。美国食品药品管理局(FDA)在各大医疗机构中也在推广 IBC 应用。在电子商务领域,IBC 在美国已经成为 POS 终端和清算中心间保护信用卡信息的主流技术之一。在欧洲,意法半导体的研究人员己经与智能卡厂商 Incard 合作,联合开发实现在智能卡上部署标识密码。而国内,华为、中兴、上海贝尔等公司也在 NGN 中采用了 IBC 技术。

随着囯家密码管理局对 SM9 算法的规范和推广,用户将会越来越熟悉标识密码。标识密码技术有可能会广泛地应用于安全电子邮件、加密短信、加密通话、电子证照管理、电子病历、手机电子钱包、电子图书馆、身份证与社保、医保等的多卡合一后的管理使用等诸多领域。IBC 应用前景可期。

持续学习,青春永驻!