请输入您要查询的百科知识:

 

词条 CPU卡密钥管理系统
释义

在传统的密钥管理系统中,密钥通常是存储在设计机或磁盘里,并借助于网络、磁盘以邮件的方式进行传递。为了安全起见,通常在传递之前,必须先将所要传递的密钥进行加密处理,接收方收到后再对其进行解密处理。由于采用这种方式时仍然需要传递密钥,只是具体的密钥对象改变了,因此安全性还是没有明显地提高;即命名采用专门的硬件加密机器进行加密处理,但由于储存和传递环节的影响,其安全性能仍等同于软件加密效果,为此有必要提高储存和传递环节的安全性。

虽然传递密钥比较安全的做法是采用非对称加密体制,用己方私钥和对方公钥进行双重签名加密,对方用其私钥和已公钥进行解密处理。采用这种方法来传递密钥比较麻烦,实现起来非常困难,不仅要求通信双方要有已方的公钥和私钥,而且还要获得对方的公钥。公钥和私钥的产生比较复杂和困难,而且通常还需要作为公证的第三方介入。目前绝大多数的通信双方都没有这些条件,并且它们之间的通信绝大多数是一次性的。考虑到上述原因,往往不采用非对称加密体制,而仍然采用实现方法和途径都相对简单

和容易得到的对称加密体制。

采用对称加密体制时,加密密钥和解密密钥是相同的或相关联的,因此对其存储和传递的安全性要求非常高。如前所述,采用传统方式进行加密处理时,其效果等同于软件加密效果,在安全性方面不如硬件直接加密的效果;由此可以看出,如果我们既用硬件设备进行加密处理,又用专门的硬件设备来存储和传递密钥,这样就可以极大地提高密钥系统的安全性。目前能满足这两种要求,而且得到业界广泛认可的器件只有CPU智能卡。CPU卡具有硬件加密结构,可以作为加密器件使用;而且其特殊的软件体系-COS(

Chip Operation System)又为数据存储和操作提供了较高的安全性,可用于小批量数据的存储.

1 CPU卡的安全功能

CPU卡作为智能卡家族中最新的成员,由于具有较高的安全性和应用方便性,得到越来越广泛的应用,CPU卡的安全性不仅体现在其硬件结构上,而且其软件系统COS也保证了应用的安全性,同时还提高了应用的方便性和灵活性。

CPU卡的加\\u35299解密功能由内嵌的硬件加密协处理器来完成,具有很高的安全性。目前,CPU卡一般采用DES加密算法。DSP算法是一种迭代分组密码算法,它加密时把明文以64比特为单位分成块,然后用密钥把每一块的明文转化为64比特密文。使用的密钥长度为64位,其中有效长度为56位(有8位用于奇偶校验)。为了进一步提高安全性,CPU卡通常采用三重DES算法加密,采用的密码长度为128位。

在应用时,CPU卡的安全性是由其COS的安全体系来保证的,它涉及到卡中信息的访问控制机制和保密机制。智能卡之所以能够迅速地发展并且流行起来,其中的一个重要的原因就在于它能够通过COS的安全体系给用户一个较高的安全保证和应用方便性。COS安全体系在概念上包括三部分:安全状态、安全属性和安全机制[1]。智能卡在安全状态满足安全属性的要求,通过执行操作指令,在安全机制的作用下,从当前的安全状态转移到下一个安全状态。

2 系统结构和功能

CPU卡密钥管理系统的主要功能是提供各种密钥的生成机制和加密算法,并将生成的密钥存储在具有密钥导出功能的CPU智能卡,即SAM(Security Access Module)卡中。密钥的发行采用梯级生成、下发方式,即由上级生成下一级所需的各种子密钥,并以卡片的形式,采用线路加密的方式传递给下一级,极大地提高了系统的安全性和应用的方便性。根据功能,系统分为:根密钥系统、主密钥系统、初始化密钥系统和SAM卡密钥系统。系统结构具有一定的伸缩性,可以根据实际需要进行裁减,减少或增加分级层次,通常不超过三级传递关系(图中所示即为三级),以免系统过于复杂。在我们投入实际使用的系统中,根据用户要求和系统规模,取消了初始化密钥系统这一级而只采用了二级传递关键,使系统结构更加紧凑,实现起来更加简单容易。

根密钥系统的主要功能是生成系统最初的原始母密钥,即根密钥,它由系统安全管理员输入的系统安全字(由安全管理员自由决定)来生成;主密钥系统则用分散因子对根密钥进行分散加密,得到了主密钥;而初始化密钥系统则对主密钥再进行分散加密,得到工作密钥系统所使用的工作密钥;SAM卡密钥系统则直接由根密钥导出SAM卡密钥,将其直接用于工作密钥系统,以控制和配合工作密钥的使用。

系统将生成的各种密钥存储在相应的CPU智能卡中。根据钥卡和主密钥卡采用具有密钥导出功能的SAM母卡;而SAM卡密钥则采用不具有导出功能的SAM卡来储存。SAM瞳是种加强了密钥安全功能的CPU卡,它支持密钥多级分散功能,比普通CPU卡具有更高的安全性。工作密钥则直接存放于实际工作系统所使用的普通CPU卡中。

系统在生成相应的密钥时,同时生成相应的认证密钥,将其存储在相应的认证卡,以控制和配合密钥卡的使用。如图2所示,密钥卡必须通过其证卡的相互认证(外部认)证后才能正常使用;而密钥认证卡使用的合法性由个人身份识别号PIN保护,只有正确核心对PIN后才可以使用。

而空白卡片的合法性,则是由产生商认证卡来验证的。生产商认证卡通常是生产厂商制作的,其中存放着生产商传输代码,它也是由PIN保护的,正确核心对PIN后才可以使用。由此可以看出,系统中每一张卡的使用都必须过相应的认证,成功验证其合法性后,才能投入正常使用,极大地保证系统的安全性。

3 相关算法

在本系统,加密算法主要采用非常成熟的、强度比较高的DES算法。为了进一步提高系统安全强度,在实际系统中,采用的是以DES算法为基础的3DES算法。关算法简介如下。

3.1 3DES算法

3DES算法用两个密钥(KL和KR)对明文(X)进行3次DES加密/解密[2]。

3DES的加密方式:

Y=DES(KL,DES-1(KR,DES(KL,X)))

对应的解密方式为:

X=DES-1(KL,DES(KR,DES-1(KL,Y)))

其中DES(K,X)表示用密钥K对数据X进行DES加密,DES-1(K,Y)表示用密钥K对数据Y进行解密(以下同)。

3.2 分散算法

为了支持分级加密传递功能,CPU卡还采用了密钥分散算法,它是指将一个双长度(16字节)的密钥MK,对分散数据进行处理,推

导出一个双长度的密钥DK(DKLDKR)。其算法如下[3]:

推导DK左半部分DKL的方法是:

·将分散数据的最右16个数字作为输入数据;

·将MK作为加密密钥;

·用MK对输入数据进行3DEA运算。

推导DK右半部分DKR的方法;

·将分散数据的最右16个数字求反,作为输入数据;

·将MK作为加密密钥;

·用MK对输入数据进行3DEA运算。

3.3 原始密钥的生成算法

第一步,输入种子A和种子B:由两个独立的人各输入一个16位数(或少于16位),分别作为SeedA和SeedB;

第二步,计算种子C:SeedC=SeedA◎SeedB;

第三步,密钥种子的初始化:

·KEYINIT=常量

·Seed=DES-1(DES(DES-1(KEYINIT,SeedC),SeedB),SeedA)

·设K3=Seed

第四步,密钥种子的生成:

·K0=DES-1(DES(DES-1(K3,SeedC),SeedB),SeedA)K3

·K1=DES-1(DES(DES-1(K0,SeedC),SeedB),SeedA)

·K2=DES-1(DES(DES-1(K1,SeedC),SeedB),SeedA)

·K3=DES-1(DES(DES-1(K2,SeedC),SeedB),SeedA)

第五卡,密钥种子的检验:

·K4=K0+K2不是弱DES密钥;

·K5=K1+K3不是北DES密钥;

·K4不等于K5;

第六卡,主密钥生成:

·A=K0K1

·B=K2K3

·MK=A+B,MK即为生成的原始密钥

重复执行从第四步以第六步,直到所有的原始密钥全部生成。

本系统采用了成熟、安全性高的加密算法和完美的体系结构,其安全性是由CPU的安全性和DES算法的完全强度来保证的。经过国内

某单位两年多的实际运行,证明本系统较好地贯彻了“秘密在于密钥”的思想,具有较高的完全性和先进性,主要表现为如下几个

特点:

(1)采用完全性高的CPU卡作为密钥的产生、存储和传递介质,保证了密钥数据的安全性;CPU卡独特的安全体系保证了其中的数

据不会被非法操作;

(2)利用硬件加密技术,对整个过程中所使用的临时变量进行加密处理,并对传递过程进行线路加密,保证了在生成和传递过程

的安全性;

(3)分级传递结构,使系统具有一定的扩展性,既支持独立系统,也可用于分布式系统;

(4)系统具有自愈合功能,对关键数据进行备份,保证了系统具有一定的抗毁能力;

(5)系统结构简单、实现方便、性价比较高。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 2:31:27