APP下载

电子认证技术原理初探

2016-09-04曹炀

中国建设信息化 2016年19期
关键词:数字证书私钥公钥

文|曹炀

自我国电子签名法颁布以来,电子认证技术获得较大的发展,有效保障了信息化安全。但是在建设行业信息化中,这项技术才刚刚开始普及,很多信息工作从业者也仅仅是听到了这个概念。它是什么技术原理?如何应用?并没有深入了解,本文试图用最通俗易懂的文字,为大家介绍它的原理和概念。

一、电子认证技术起源

1.古代通讯加密与身份识别模式雏形

加密通信技术起源很早。在中国古代,公元前1000年西周姜子牙所著《六韬》中,就讲述了采用“阴符”方法进行秘密通信。不同阴符的长度表示不同的含义,三寸为惨败、四寸为主将战死、五寸为请援、六寸为死守、七寸为敌退、八寸为敌降、九寸为敌将亡。这些阴符的具体意思只有国君和主将知道,即便传输中落入敌手也不会泄露机密。这种方式,是早期典型的对称体系加密方式。

图1 Scytale

古希腊军队在公元前700年,使用一种Scytale棒,是一种对字母换位加密的方法,把羊皮纸做成长带子形状,缠绕在一个固定粗细的圆木棍上,在上面写下要传递的信息,然后接下羊皮带子,此时上面是一些杂乱的符号。接收者只需用同样粗细的木棍,用同样的方式缠绕一遍,即可还原出信息原文。这种Scytale棒可以理解为古人较早就使用的加密机。如图1。

《六韬》中还记录了阴书的使用,即一份文件(阴书)被拆成多人传递,收件人要等所有阴书片稿到齐,才能明白所表达的意思。这种拆解信息文的模式,在目前备份密钥的过程中仍在使用。

虎符可以被看做早期的身份识别手段。虎符一般采用铜、银等金属制造,在虎符的背面,刻有符号和经书,表示级别、权利范围(调度军队的多少)等。虎符一分为二,一半在将领手中,一半在君王手中,调度军队时,特遣员需持君王的虎符去颁布调令,将领领任务后,需“合符”进行确认。如图2。

2.近代通讯加密技术的发展

通信加密技术的第一次繁荣,是在16世纪左右,此时欧洲大地上到处充斥着宗教之争,很多教义不得不加密传播。换位加密法与替换加密法由于适合欧洲的文字特点,得到很大的应用。换位加密采用变化字母的顺序来加密,替换加密法则是用一个字母替换另一个字母进行加密。为了应对这种方法,教派中的数学家们引入了古阿拉伯人所采用的密码分析学(以字母使用频率为线索的分析方法)来进行破解。此时的欧洲大陆,加密技术与解密技术交替发展,不仅推出了维吉尼亚(Vigenere)密码为代表的多表密码替换方法,也催生了“黑室”这样专门用来解密的机构。如图3。

图2 虎符

第二次世界大战中,密码学再一次获得了质的飞跃,传统的人工、简单机械加密方式被复杂机械、电气设备加密所取代。最新的数学成果应用,很多都是首先被应用到密码学中,语言学家、棋类大师也都被裹挟到这场“密码战争”中。德国研发了“隐秘”密码打字机,“洛伦兹”密码电传机,日本使用“紫色”密码打字机等,各类密码设备令人眼花缭乱。如图4。

二、现代密码学发展

二战后计算机的发展,推动现代密码学产生了质的飞跃。以往的加密手段,根本无法应对高速计算机的暴力试算。与此同时,信息论(美国学者Shannon于1949年创立)的创立,也为密码技术增添了更加广阔的视角,一切文字、图像、音视频都是保护的对象,同时也可能是加密的手段。在逐渐的演化发展中,人们逐渐认识到一个事实:密码系统的结构很有可能是被敌人所探知的,而只要进行密码操作的关键因素(即:密钥)不被泄露,那么加密体系依然安全(科考夫原则)。这样,人们开始着手简化密码系统的设计,将传统的系统一体化设计逐步调整为对密钥的设计。加解密的算法开放为可以面向大众公开下载,公开检验的模式。

图3

时至今日,密码学主要包含三类算法。

1、对称算法:

指加密密钥与解密密钥相同的算法。交易双方使用同一套密钥。这种该种算法根据每次加解密的长度,又分为流密码算法和分组密码算法。

常见流密码算法主要有RC4算法。

常见的分组密码算法包括:DES、IDEA、RC2、AES、SM4等。

其中SM4为国家密码管理局推荐的国产密码算法。

2、非对称算法:

指加密密钥和解密密钥不相同的算法。加解密密钥成对存在,从一个不能推演出另一个,但由一个密钥加的密,可以由(也是唯一由)另一个解密。两个密钥中一个严格保密,称为私钥,另一个可以被公开,发给其他人,称为公钥。所以非对称算法又称为公钥算法或公开密钥算法。非对称算法最简单的例子为右移1位算法:26 字母首位相接,A-〉B,B-〉C,…,Z-〉A,那么右移1位加密后,再右移25位即可解密。1和25就是不相同的一对密钥。(所以当有人给你发右移一位的“jmpwfzpv”时,一定记得右移25位来解密)。

图4 密码机

常见的非对称算法包括:RSA、DH、DSA、ECDSA、ECC、SM2等。

其中,SM2为国家密码管理局推荐的国产密码算法。

3、摘要算法

摘要算法是把长的信息数据(原始数据)转换为固定长度的信息数据(摘要数据)的一类算法。同一个算法中原始数据流对应一个短的唯一数据流,但唯一数据流不能反推出原始数据。比如学校里流行的字母加值算法暗语中,如果1=A,2=B,…Z=26;27=A,…,52=Z,53=A……的约定中,那么“ILOVEYOU”,的摘要值就是9+12+15+5+25+15+21=102,为X。摘要值又称为散列值、哈希值。

常见的摘要算法包括:MD5、SH1、SM3 等。

其中,SM3为国家密码管理局推荐的国产密码算法。

图5 电子认证服务许可证

三、电子认证技术原理与法律依据

我们已经知道,当代密码管理的最重要的是密钥管理,一个用户拥有了一对公钥和私钥后,就可以进行数字签名和信息加解密。但是,其他人怎么知道这个公钥是属于哪个用户的呢?于是,在PKI(Public Key Infrastructure)体系中引入数字证书的理念,用来解决密钥和用户的映射关系。数字证书包括了这个公钥信息、用户信息、证书颁发者自己的数字签名。(简单的说,就是把用户、公钥、发证人这三者放在了一起)。这个证书颁发者简称CA(Certificate Authority),又称CA中心。那么,大家会问,这个CA值得信赖吗,为什么它发的证书就有效呢?那么,我们就需要追溯一下CA自己的证书是谁颁发的。在我国,网络信任的原点是国家密码管理局的根证书,只要一层一层找到这个证书就是正规的。但是并不是所有在国密局入根的机构都可以对外进行第三方电子认证服务。这些机构还需要获得国家工业和信息化部所颁发的《电子认证服务许可证》。在我国获得这个资格的单位并不多,也不可能太多。它们都是以CA机构的身份在开展工作。比如专注于金融行业的CFCA,专注于建设行业的CSCA等。很多大集团自己内部建立了CA,自己集团内部发发证没有问题,如果拿出来用在社会上,就需要大家识别一下下面这个证件了。如图5。

那么,密钥丢了怎么办?如果自己的私钥丢了,那么以前用公钥加密的所有文件都打不开了。这怎么办?在CA中心内部,有一个系统叫做KMC(Key Management Center),是专门管理密钥的。对外发的私钥,可以在这里备份。那么新的问题出现了,一方面为防止加密文件打不开,要把私钥备份;另一方面私钥代表个人身份,为防止身份冒用,不应该被复制,太纠结了。在这种需求下,PKI引入了双证证书机制,一个证书只用来签名,一个证书只用来加密。加密证书的公私钥由CA中心产生,私钥可以备份,而签名证书的公私钥由用户自己产生,私钥不能备份。

既然CA机构来管理证书,那么它叫要提供证书生命周期各阶段的管理,才好为广大使用者服务。我们先看如何申请证书。PKI体系引入了RA(Registry Authority)这个理念,RA又称作RA中心或用户注册中心,专门用来负责用户证书办理、用户身份审核、制作证书。就是我们把身份证明材料发给RA中心,说明用途,RA中心就可以给我们发证了。很多场合下,RA也提供自动化发证的手段,供业务系统直接调用,但是把RA仅仅被理解为一个证书注册系统,这其实还是有些偏差的。

CA公司存储着所有的证书,供用户随时下载。这会产生一个严重的性能瓶颈,于是 PKI又 引 入 LDAP(Light-weight Directory Access Protocol)技术,通过LDAP对外提供访问服务,网络中的用户,都可以在这里找到发送方的证书用来验证信息。

当用户私钥泄露或丢失的时候,需要将该证书迅速吊销,避免发生纠纷。那么其他用户怎么知道该证书失效了呢,PKI体系设计了CRL(Certificate Revocation List) 吊 销 列 表,这个列表也称为证书黑名单,这里记录了失效证书的清单和下次CRL的生成时间,当然整个文件本身也是被CA中心签过名的。用户定期获得CRL,就可以知道在目前最新的证书有效情况。如果在两次CRL更新之间,用户想查询一下证书的状态,PKI体系还设计了OCSP(Online Certificate Status Protocol)协议,用来响应客户的实时查询。如图6。

我们再看看数字证书具体怎么发挥作用。公钥和私钥的组合,对网络上的商务行为产生了深远的影响。主要应用在四个方面:

图6 RA部署结构

1.身份认证:网络交易中,双方互不认识,首要就是确定对方身份。由于CA在给用户颁发数字证书时,已经鉴定过对方的真实身份,并以CA签名的方式将用户信息写入到数字证书中,因此,数字证书可以作为网络中的身份证。在交易中,用户只需要出示该证书,对方通过判断证书真伪,即可辨别用户的身份。

2.信息保密:由于公私钥对的唯一对应,用户只需要用对方的公钥加密要传递的文档并发送,对方收到后,用自己的私钥解开即可还原。而这个过程,其他人由于没有解密私钥是解不开的。

3.完整性:使用发送者的私钥对交易数据进行签名,而对方使用发送者的公钥进行验证,即可知道在发送的过程中,文档是否被篡改或干扰失真。

4.扛抵赖性:交易过程中,发送者对数据进行了签名,交易完成后却不认账了。接收者只需用发送者的公钥验证其签名,即可证明该交易是谁操作的。2005年4月1日,我国颁布了《中华人民共和国电子签名法》,对经过可靠电子签名的网络交易给予法律的认可。从而,电子签名后的文档同纸质签名一样,再不可被抵赖掉。

猜你喜欢

数字证书私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
国密SM2密码算法的C语言实现
P2X7 receptor antagonism in amyotrophic lateral sclerosis
基于数字证书的军事信息系统安全防护方案
数字签名保护Word文档