主要表现
密钥管理包括,从密钥的产生到密钥的销毁的各个方面。主要表现于管理体制、管理协定和密钥的产生、分配、更换和注入等。对于军用计算机网路系统,由于用户机动性强,隶属关係和协同作战指挥等方式複杂,因此,对密钥管理提出了更高的要求。流程
密钥生成
密钥长度应该足够长。一般来说,密钥长度越大,对应的密钥空间就越大,攻击者使用穷举猜测密码的难度就越大。
选择好密钥,避免弱密钥。由自动处理设备生成的随机的比特串是好密钥,选择密钥时,应该避免选择一个弱密钥。
对公钥密码体制来说,密钥生成更加困难,因为密钥必须满足某些数学特徵。
密钥生成可以通过线上或离线的互动协商方式实现,如密码协定等。
密钥分发
採用对称加密算法进行保密通信,需要共享同一密钥。通常是系统中的一个成员先选择一个秘密密钥,然后将它传送另一个成员或别的成员。X9.17标準描述了两种密钥:密钥加密密钥和数据密钥。密钥加密密钥加密其它需要分发的密钥;而数据密钥只对信息流进行加密。密钥加密密钥一般通过手工分发。为增强保密性,也可以将密钥分成许多不同的部分然后用不同的信道传送出去。
验证密钥
密钥附着一些检错和纠错位来传输,当密钥在传输中发生错误时,能很容易地被检查出来,并且如果需要,密钥可被重传。
接收端也可以验证接收的密钥是否正确。传送方用密钥加密一个常量,然后把密文的前2-4位元组与密钥一起传送。在接收端,做同样的工作,如果接收端解密后的常数能与发端常数匹配,则传输无错。
更新密钥
当密钥需要频繁的改变时,频繁进行新的密钥分发的确是困难的事,一种更容易的解决办法是从旧的密钥中产生新的密钥,有时称为密钥更新。可以使用单向函式进行更新密钥。如果双方共享同一密钥,并用同一个单向函式进行操作,就会得到相同的结果。
密钥存储
密钥可以存储在脑子、磁条卡、智慧卡中。也可以把密钥平分成两部分,一半存入终端一半存入ROM密钥。还可採用类似于密钥加密密钥的方法对难以记忆的密钥进行加密保存。
备份密钥
密钥的备份可以採用密钥託管、秘密分割、秘密共享等方式。
最简单的方法,是使用密钥託管中心。密钥託管要求所有用户将自己的密钥交给密钥託管中心,由密钥託管中心备份保管密钥(如锁在某个地方的保险柜里或用主密钥对它们进行加密保存),一旦用户的密钥丢失(如用户遗忘了密钥或用户意外死亡),按照一定的规章制度,可从密钥託管中心索取该用户的密钥。另一个备份方案是用智慧卡作为临时密钥託管。如Alice把密钥存入智慧卡,当Alice不在时就把它交给Bob,Bob可以利用该卡进行Alice的工作,当Alice回来后,Bob交还该卡,由于密钥存放在卡中,所以Bob不知道密钥是什么。
秘密分割把秘密分割成许多碎片,每一片本身并不代表什么,但把这些碎片放到一块,秘密就会重现出来。
一个更好的方法是採用一种秘密共享协定。将密钥K分成n块,每部分叫做它的“影子”,知道任意m个或更多的块就能够计算出密钥K,知道任意m-1个或更少的块都不能够计算出密钥K,这叫做(m,n)门限(阈值)方案。目前,人们基于拉格朗日内插多项式法、射影几何、线性代数、孙子定理等提出了许多秘密共享方案。
拉格朗日插值多项式方案是一种易于理解的秘密共享(m,n)门限方案。
秘密共享解决了两个问题:一是若密钥偶然或有意地被暴露,整个系统就易受攻击;二是若密钥丢失或损坏,系统中的所有信息就不能用了。
密钥有效期
加密密钥不能无限期使用,有以下有几个原因:密钥使用时间越长,它泄露的机会就越大;如果密钥已泄露,那么密钥使用越久,损失就越大;密钥使用越久,人们花费精力破译它的诱惑力就越大——甚至採用穷举攻击法;对用同一密钥加密的多个密文进行密码分析一般比较容易。
不同密钥应有不同有效期。
数据密钥的有效期主要依赖数据的价值和给定时间里加密数据的数量。价值与数据传送率越大所用的密钥更换越频繁。
密钥加密密钥无需频繁更换,因为它们只是偶尔地用作密钥交换。在某些套用中,密钥加密密钥仅一月或一年更换一次。
用来加密保存数据档案的加密密钥不能经常地变换。通常是每个档案用唯一的密钥加密,然后再用密钥加密密钥把所有密钥加密,密钥加密密钥要么被记忆下来,要么保存在一个安全地点。当然,丢失该密钥意味着丢失所有的档案加密密钥。
公开密钥密码套用中的私钥的有效期是根据套用的不同而变化的。用作数字签名和身份识别的私钥必须持续数年(甚至终身),用作抛掷硬币协定的私钥在协定完成之后就应该立即销毁。即使期望密钥的安全性持续终身,两年更换一次密钥也是要考虑的。旧密钥仍需保密,以防用户需要验证从前的签名。但是新密钥将用作新档案签名,以减少密码分析者所能攻击的签名档案数目。
销毁密钥
如果密钥必须替换,旧钥就必须销毁,密钥必须物理地销毁。
管理系统
公开密钥密码使得密钥较易管理。无论网路上有多少人,每个人只有一个公开密钥。
使用一个公钥/私钥密钥对是不够的。任何好的公钥密码的实现需要把加密密钥和数字签名密钥分开。但单独一对加密和签名密钥还是不够的。象身份证一样,私钥证明了一种关係,而人不止有一种关係。如Alice分别可以以私人名义、公司的副总裁等名义给某个档案签名。
各商业银行的金融IC卡联合试点中,各级银行对密钥的安全控制和管理,是套用系统安全的关键。
《RT-KMS密钥管理系统》遵循《中国金融积体电路(IC)卡规範(v 1.0)》和《银行IC卡联合试点技术方案》,方便各成员银行自主
发卡,实现读卡机具共享,完成异地跨行交易。
安全机制
在全国银行IC卡联合试点中,各级银行利用密钥管理系统来实现密钥的安全管理。密钥管理系统採用3DES加密算法,运用中国人民
银行总行、人民银行地区分行(商业银行总行)、成员银行三级管理体制,安全共享公共主密钥的,实现卡片互通、机具共享。
整个安全体系结构主要包括三类密钥:全国通用的人总行消费/取现主密钥GMPK、发卡银行的消费/取现主密钥MPK和发卡银行的其他
主密钥。根据密钥的用途,系统採用不同的处理策略。
设计原则
(1)所有密钥的装载于导入都採用密文方式。
(2)密钥受到严格的许可权控制,不同的机构或人员对不同的密钥读、写、更新、使用等操作具有不同的许可权。
(3)为保证密钥使用的安全,并考虑实际使用的需要,系统可产生多套主密钥,如果其中一套密钥被泄漏或攻击,套用系统可立即停止该套密钥的使用,并启用备用密钥,这样儘可能的避免现有的投资和设备的浪费,减少系统使用风险。
(4)用户可根据实际使用的需要,选择密钥管理子系统不同的组合与配置。
(5)密钥服务、存储和备份採用密钥卡或加密机的形式。
管理技术
技术分类
1、对称密钥管理。对称加密是基于共同保守秘密来实现的。採用对称加密技术的贸易双方必须要保证採用的是相同的密钥,要保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程式。这样,对称密钥的管理和分发工作将变成一件潜在危险的和繁琐的过程。通过公开密钥加密技术实现对称密钥的管理使相应的管理变得简单和更加安全,同时还解决了纯对称密钥模式中存在的可靠性问题和鉴别问题。 贸易方可以为每次交换的信息(如每次的EDI交换)生成唯一一把对称密钥并用公开密钥对该密钥进行加密,然后再将加密后的密钥和用该密钥加密的信息(如EDI交换)一起传送给相应的贸易方。由于对每次信息交换都对应生成了唯一一把密钥,因此各贸易方就不再需要对密钥进行维护和担心密钥的泄露或过期。这种方式的另一优点是,即使泄露了一把密钥也只将影响一笔交易,而不会影响到贸易双方之间所有的交易关係。这种方式还提供了贸易伙伴间发布对称密钥的一种安全途径。
2、公开密钥管理/数字证书。贸易伙伴间可以使用数字证书(公开密钥证书)来交换公开密钥。国际电信联盟(ITU)制定的标準X.509,对数字证书进行了定义该标準等同于国际标準化组织(ISO)与国际电工委员会(IEC)联合发布的ISO/IEC 9594-8:195标準。数字证书通常包含有唯一标识证书所有者(即贸易方)的名称、唯一标识证书发布者的名称、证书所有者的公开密钥、证书发布者的数字签名、证书的有效期及证书的序列号等。证书发布者一般称为证书管理机构(CA),它是贸易各方都信赖的机构。数字证书能够起到标识贸易方的作用,是目前电子商务广泛採用的技术之一。
3、密钥管理相关的标準规範。目前国际有关的标準化机构都着手制定关于密钥管理的技术标準规範。ISO与IEC下属的信息技术委员会(JTC1)已起草了关于密钥管理的国际标準规範。该规範主要由三部分组成:一是密钥管理框架;二是採用对称技术的机制;三是採用非对称技术的机制。该规範现已进入到国际标準草案表决阶段,并将很快成为正式的国际标準。
数字签名
数字签名是公开密钥加密技术的另一类套用。它的主要方式是:报文的传送方从报文文本中生成一个128位的散列值(或报文摘要)。传送方用自己的专用密钥对这个散列值进行加密来形成传送方的数字签名。然后,这个数字签名将作为报文的附属档案和报文一起传送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用传送方的公开密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是传送方的。通过数字签名能够实现对原始报文的鉴别和不可抵赖性。
ISO/IEC JTC1已在起草有关的国际标準规範。该标準的初步题目是“信息技术安全技术带附属档案的数字签名方案”,它由概述和基于身份的机制两部分构成。
加密算法
密码学简介 据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。
随着信息化和数位化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标準局公布实施了“美国数据加密标準(DES)”,民间力量开始全面介入密码学的研究和套用中,採用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了AES、ECC等。
使用密码学可以达到以下目的:
保密性:防止用户的标识或数据被读取。
数据完整性:防止数据被更改。
身份验证:确保数据发自特定的一方。
二. 加密算法介绍根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。
对称钥匙加密系统是加密和解密均採用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。
非对称密钥加密系统採用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
对称加密算法
在对称加密算法中,只有一个密钥用来加密和解密信息,即加密和解密採用相同的密钥。常用的算法包括:DES(Data Encryption Standard):数据加密标準,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标準,是下一代的加密算法标準,速度快,安全级别高;
2000年10月,NIST(美国国家标準和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标準。Rijndael被选中成为将来的AES。Rijndael是在 1999 年下半年,由研究员Joan Daemen 和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标準。
美国标準与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标準(AES) 规範。
算法原理 AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。
AES 是一个叠代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16位元组)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。叠代加密使用一个循环结构,在该循环中重複置换和替换输入数据。
AES与3DES的比较
| 算法名称 | 算法类型 | 密钥长度 | 速度 | 解密时间(建设机器每秒尝试255个密钥) | 资源消耗 |
AES | 对称block密码 | 128、192、256位 | 高 | 1490000亿年 | 低 |
3DES | 对称feistel密码 | 112位或168位 | 低 | 46亿年 | 中 |
非对称算法
常见的非对称加密算法如下:RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的档案块的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标準的 DSS(数字签名标準);
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
在1976年,由于对称加密算法已经不能满足需要,Diffie 和Hellman发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由Rivet、Shamir、Adelman提出了RSA算法。
随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网路的发展,为了保障数据的安全,RSA的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬体实现也变得越来越难以忍受,这对使用RSA的套用带来了很重的负担,因此需要一种新的算法来代替RSA。
1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP。ECDLP是比因子分解问题更难的问题,它是指数级的难度。
原理——椭圆曲线上的难题 椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。
将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。
例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要求由P产生的群元素足够多,通信双方A和B分别选取a和b,a和b 予以保密,但将aP和bP公开,A和B间通信用的密钥为abP,这是第三者无法得知的。
对应ELGamal密码系统可以採用如下的方式在椭圆曲线上予以实现:














