专利名称:基于标识的公钥密码体制私钥托管系统的制作方法
技术领域:
本发明涉及通信网络中的身份识别技术,尤其涉及一种用于基于标识的公钥密码体制的私钥托管技术。
背景技术:
基于标识的公钥密码体制使用用户的标识,如姓名、IP地址、电子邮件地址等作为公钥,私钥通过私钥生成器PKG(Private Key Generator)这一可信任的第三方进行计算得到,但私钥生成器除了生成私钥外,并不直接参与加密和签名的过程。
在公钥加密系统中,用户私钥是保证用户身份合法性,正确实施解密和数字签名的唯一凭证,用户私钥如果泄露,需要为该用户重新生成新的公私钥对,并通知所有用户,该用户原有私钥作废,这种方式一方面在管理上增加了系统的负担,另一方面,由于用户私钥泄露后,用户以前的加密文档将会面临着被解密的危险,因此即使重新生成了私钥,原有私钥泄露还是隐含着严重的安全问题。
对于基于标识的公钥加密系统而言,身份标识和用户私钥是一一对应的,在用户标识不变的情况下,给用户重新生成的私钥和原来的一样,在这类系统中,私钥的泄露对系统的安全影响更大。
为了保护私钥的安全性,目前较常用的做法是将用户私钥保存在USBKey中,并通过口令进行保护,这种做法在实际应用中有一定的安全性,但是严格来讲,由于USB Key口令通常较简单,可以通过穷举的方法获得,而且口令在计算机系统中也是容易被跟踪获取到的,因此USB Key存在被静态分析破解的可能。
本发明实现一种防篡改身份认证协议和密码装置,保证用户私钥在传输和使用过程中都处在加密保护状态,私钥不静态存储在任何物理设备中,可有效防止各种动态和静态分析方法。
发明内容
本发明的目的在于提供一种基于标识的公钥密码体制私钥托管系统,动态生成用户私钥,私钥在传输和使用的过程中受加密保护,增加了攻击者破译私钥的难度,提高了安全性。
基于标识的公钥密码体制私钥托管系统,包括客户端密码系统1和私钥生成器2; 客户端密码系统1用于向私钥生成器2传送用户信息请求认证,暂存私钥生成器2认证通过后生成的用户私钥;为应用程序提供密码操作接口,实现密码操作; 私钥生成器2用于对用户进行认证,认证通过后生成用户私钥并传送给客户端密码系统1。
所述客户端密码系统1包括 密码应用接口11,用于输入用户信息,并分别传递给安全通信客户端模块12和客户端密码装置13,用户信息包括用户ID和认证口令; 安全通信客户端模块12,用于将来自密码应用接口11的用户信息、来自客户端密码装置13的主密钥和认证码传送给安全通信服务端模块22;接收私钥生成器2生成的用户私钥并传送给客户端密码装置13; 客户端密码装置13,用于接收来密码应用接口11的用户信息,随机生成主密钥,并生成包含主密钥、认证口令和用户ID信息的认证码,将主密钥和认证码传送给安全通信客户端模块12,并暂存来自安全通信客户端模块12的用户私钥;提供外部密码操作接口,实现用户密码操作; 所述私钥生成器2包括 私钥管理模块21,用于注册用户信息,存储私钥生成器密码装置23为注册用户生成的认证口令; 安全通信服务端模块22,用于将来自安全通信客户端模块12的用户信息、主密钥和认证码传送给私钥生成器密码装置23,将私钥生成器密码装置23生成的用户私钥传送给安全通信客户端模块12; 私钥生成器密码装置23,用于为私钥管理模块21注册的用户生成认证口令;接收来自安全通信服务模块22的用户信息、主密钥和认证码,判断用户身份的合法性,如果合法,生成用户私钥,使用主密钥对私钥加密,将加密后的私钥传送给安全通信服务模块22。
作为本发明的改进,所述私钥生成器密码装置23按照以下方式为注册用户生成认证口令(1)生成两个随机种子s0,t0,计算si=MD(si-1),1≤i≤N,ti=MD(ti-1),1≤i≤N,其中MD( )为一个单向函数,N为单个用户的认证口令的个数;(2)认证口令pi=sN-i,1≤i≤N,qi=tN-i,1≤i≤N。
作为本发明的进一步改进,所述私钥生成器密码装置23按照如下方式判断用户身份的合法性从用户信息中获取用户输入的认证口令pi和qi以及用户ID,计算MD(qi//m),其中m为主密钥和用户ID,符号“//”表示将两个二进制串首尾拼接,判断pi-1=MD(pi)和qi-1=MD(qi)是否成立,以及计算得到的MD(qi//m)与来自客户端密码系统1的认证码是否相等,若均成立,身份合法,pi-1=pi,qi-1=qi,否则不合法。
作为本发明的另一改进,所述客户端密码装置13包括 密码操作接口用于提供对外的密码操作接口; 密码操作实现模块用于通过密钥存储区存储的主密钥和用户私钥调用密码算法库,实现密码操作,并将密码操作实现过程中出现的明、密文和密钥传送给工作存储区; 密码算法库用于提供各种密码操作的具体实现程序; 工作存储区用于存储暂存密码操作实现过程中出现的明、密文和密钥; 密钥存储区用于存储主密钥和用户私钥。
本发明的技术效果体现在 基于标识的公钥密码体制私钥托管系统在用户登录的时候动态从私钥生成器处获得私钥,防篡改身份认证协议和密码装置技术可以保证用户获取私钥过程的安全性,由于用户既不将私钥静态存储,也不动态暴露在密码装置之外,因此增加了攻击者的攻击难度,可有效抵抗各种动态和静态分析方法。
图1为本发明原理示意图; 图2为本发明具体模块示意图; 图3为本发明实施例示意图; 图4为密码装置结构示意图。
具体实施例方式 本系统部署在Windows操作系统上,实施本发明设计的系统,首先需要建立私钥生成器PKG,PKG中由于保存了用户的认证信息,所以应该存放在安全的环境中,并采取各种安全防护措施,避免遭受到攻击。
每个客户端需要安装密码装置,并为用户发放用于认证的口令,口令可以采用口令生成器或者通过打印的方式交给用户。
一次口令认证也可以改成生物特征认证等其他支持星型结构的安全认证方式。
系统实施包含三部分内容。一是防篡改身份认证协议,二是密码装置设计,三是私钥获取过程。
1.防篡改身份认证协议 一次口令认证技术,目前已经被用在某些操作系统(例如,Linux,FreeBSD等操作系统)上,其安全性是基于安全单向函数的不可逆性。在一次口令认证的基础上,发明一种新的防篡改身份认证协议,使得用户在完成认证的同时,将一段信息和此次认证绑定在一起,传递给服务器,而任何第三方的攻击都不可能篡改此信息段。
假设MD是一个安全的单向函数,N是一个正整数,表示每次为用户生成的一次口令的个数,m是欲和本次认证绑定的一段消息,认证服务器在本发明中为私钥生成服务器,符号“//”表示将两个二进制串首尾拼接,新的认证系统分为如下6步 (1)初始化密钥。在认证服务器上为每个用户生成两个随机种子(长度与MD函数的输出长度相等)s0,t0,然后,依次计算si=MD(si-1),1≤i≤N,ti=MD(ti-1),1≤i≤N,将sN,tN保存在认证服务器上。
(2)令pi=sN-i,1≤i≤N,qi=tN-i,1≤i≤N,将这2N个值安全传送给用户。
(3)用户第一次输入口令p1和q1,并传送p1//MD(q1//m)//m给服务器,服务器通过判断sN=MD(p1)是否成立,来判断用户的身份是否正确,如果正确,则返回应答信息给用户。
(4)用户获得应答信息之后,将q1传递给服务器,服务器比较tN=MD(q1)是否成立,计算MD(q1//m),判断其与步骤(3)中所述客户端密码系统1传送的MD(q1//m)是否相等,如果成立则用p1替换sN,用q1替换tN,保存在认证服务器上。
(5)一般地,用户第i次输入口令pi和qi,并传送pi//MD(qi//m)//m给服务器,服务器通过判断pi-1=MD(pi)是否成立,来判断用户的身份是否正确,如果正确,则返回应答信息给用户。
(6)用户获得应答信息之后,将qi传递给服务器,服务器比较qi-1=MD(qi)和MD(qi//m)的正确性,如果正确则用pi替换pi-1,用qi替换qi-1,保存在认证服务器上,直到i=N。
在认证效率上,防篡改身份认证协议所需的时间大约是一次口令认证的两倍,但由于认证过程中仅涉及散列函数而不涉及加、解密运算,所以效率很高。防篡改身份认证协议和一次口令认证协议具有同样的安全性。
2.密码装置设计 密码装置是一个物理的或者逻辑的密码设备,它提供密码服务所需要的必要密码接口,而隐藏密码实现的内部过程,从而达到保护密钥的目的。密码装置由一组密码操作和内部实现过程组成,密码操作一般包括密钥管理和数据加解密两类,密码操作一般来说应该满足两条基本原则 a)密码操作是一些必不可少的基本的操作,这些操作可以组合起来完成系统所需要的复杂的密码服务; b)密码操作之间在逻辑上不能相互推导,也不可能通过密码操作的组合破坏密码装置的保护目标。
具体而言,对于公钥密码系统来说,密码装置的保护目标就是私钥,我们要求密码装置满足以下基本的目标 a)提供密钥分发、恢复功能; b)提供数据加、解密功能; c)提供数字签名功能; d)所有的私钥不能直接或者间接地以明的方式出现在密码装置之外。
其中,所有的私钥不能直接或者间接地以明的方式出现在密码装置之外是非常重要的,无论是硬件还是软件实现方法,私钥直接暴露在密码装置之外都极易被攻击者获取。
密码装置结构如图4所示 密码操作接口提供对外的调用接口,供密码应用接口调用。
密码操作实现模块将密码操作接口需要的功能分解,在密码装置内分步实现。
基本密码算法库包括基本的随机数生成算法、对称加密算法和公钥加密算法。
工作存储区存储临时的明、密文和密钥。
密钥存储区存储主密钥和用户私钥。
操作流程说明 ①密码操作接口接收外部调用指令,在密码装置内部实现密码操作。
②调用基本的密码算法库实现密码操作。
③密码操作实现过程中临时存取明、密文和密钥,这些密钥和明文在使用完成后自动清除,并且不提供外部直接访问的接口。
④存取主密钥和用户私钥。
密钥分类 系统的密钥主要分为三类主密钥,公钥加密公私钥对和密钥传输公私钥对。其中主密钥用于加密保护用户私钥,是一个分组密码的密钥,是密码装置中的一个秘密参数;公钥加密公私钥对中,公钥就是用户的ID,私钥SK保存在密码装置中,可用作解密和签名;密钥传输公私钥对用于用户向私钥生成器申请私钥的时候加密用户私钥SK,以保证SK的安全性,其公钥是一个系统缺省的、固定的ID号ID0,私钥在私钥生成器初始化的时候生成,但该私钥仅在密码装置内部使用,不能通过外部调用的方式来进行解密或者签名。
系统的这三种密钥是最基本的,如果系统还有其他的需求(例如分组加密),可以增加密钥的数量,但是必须保证不能破坏密码装置的安全性。
系统密钥表如表1所示 表1 系统密钥分类表 客户端密码装置的密码操作设计 1)置主密钥操作 功能设置系统主密钥KM 输入设置主密钥口令 输出无 返回0表示成功,其他表示错误标示码 执行过程判断口令的正确性,然后产生随机数作为系统主密钥KM。
注意此操作无逆过程,也就是说,系统产生主密钥之后,不可能通过任何操作将它从密码装置中恢复出来。
2)初始化操作 功能初始化密码装置 输入无 输出无 返回0表示成功,其他表示错误标示码 执行过程载入主密钥,用户公、私钥对,密钥生成器的公钥和用于密钥传输的公钥。
3)主密钥加密操作 功能用密钥传输公私钥对中的公钥ID0加密客户端的主密钥KM。
输入无 输出EID0(KM),表示用ID0加密KM 返回0表示成功,其他表示错误标示码 执行过程用系统申请私钥的标识ID0作为公钥加密密码装置中的主密钥。
4)置用户私钥操作 功能在客户端置入用户私钥SK 输入EKM(SK),表示用客户端的主密钥加密的用户私钥 输出无 返回0表示成功,其他表示错误标示码 执行过程在密码装置内部,利用主密钥KM解密EKM(SK),得到SK,保存在密钥存储区。
5)加解密、签名密码操作 功能在客户端提供加解密和签名的密码功能 输入待加解密或者签名的数据,数据长度,密钥,操作类型(加密、解密、签名、验证签名) 输出密码操作结果(根据操作类型决定) 返回0表示成功,其他表示错误标示码 执行过程在密码装置内部,调用用户公、私钥对,执行加解密算法。
6)单向函数密码操作 功能提供单向函数调用 输入待散列的数据 输出散列结果 返回0表示成功,其他表示错误标示码 执行过程在密码装置内部,执行单向函数算法。
私钥生成器密码装置的密码操作设计 1)置主密钥操作 功能设置系统主密钥KM 输入设置主密钥口令 输出无 返回0表示成功,其他表示错误标示码 执行过程判断口令的正确性,然后产生随机数作为系统主密钥KM。
注意此操作无逆过程,也就是说,系统产生主密钥之后,不可能通过任何操作将它从密码装置中恢复出来。
2)初始化操作 功能初始化密码装置 输入无 输出无 返回0表示成功,其他表示错误标示码 执行过程生成私钥生成器公、私钥对和用于密钥传输的公、私钥对。
3)生成私钥操作 功能私钥生成器为用户生成私钥 输入EID0(KM),ID 输出EKM(SK),表示用KM加密SK 返回0表示成功,其他表示错误标示码 执行过程在密码装置内部,利用ID0的私钥解密EID0(KM),用KM加密(分组加密)用户ID的私钥SK,得到EKM(SK)输出。
4)加解密、签名密码操作 功能在私钥生成器提供加解密和签名的密码功能 输入待加解密或者签名的数据,数据长度,密钥,操作类型(加密、解密、签名、验证签名) 输出密码操作结果(根据操作类型决定) 返回0表示成功,其他表示错误标示码 执行过程在密码装置内部,调用用户公、私钥对,执行加解密算法。
5)单向函数密码操作 功能提供单向函数调用 输入待散列的数据 输出散列结果 返回0表示成功,其他表示错误标示码 执行过程在密码装置内部,执行单向函数算法。
3.私钥获取过程 利用防篡改身份认证协议和上述密码操作就可以设计出安全的动态密钥获取过程。假设用户Alice要向PKG获取私钥,在获取私钥之前假设Alice已经启动了密码装置,并且已经调用设置了主密钥KM。如图3所示,获取私钥的过程可以描述如下 (1)Alice向私钥生成器发出认证请求,私钥生成器返回系统公开参数给Alice,这些包括参数包括选用的加密算法、私钥生成器的公钥和用于密钥传输的公私钥对的公钥,这些参数可以在网上明文传输。
(2)Alice防篡改身份认证协议向私钥生成器表明自己的身份,同时在协议中绑定消息EID0(KM)//ID,其中EID0(KM)通过加密主密钥密码操作获得。
(3)私钥生成器调用生成私钥密码操作生成EKM(SK),并将该消息返回给Alice。
(4)Alice调用置用户私钥操作,将EKM(SK)置入密码装置内。
在私钥托管方案中,私钥生成器虽然参与了用户的认证,但是,仅在用户登录获取私钥的时候才参与,用户一旦获取了私钥之后,就可以重复利用该私钥。
权利要求
1、基于标识的公钥密码体制私钥托管系统,其特征在于,包括客户端密码系统(1)和私钥生成器(2);
客户端密码系统(1)用于向私钥生成器(2)传送用户信息请求认证,暂存私钥生成器(2)认证通过后生成的用户私钥;为应用程序提供密码操作接口,实现密码操作;
私钥生成器(2)用于对用户进行认证,认证通过后生成用户私钥并传送给客户端密码系统(1)。
2、根据权利要求1所述的基于标识的公钥密码体制私钥托管系统,其特征在于,所述客户端密码系统(1)包括
密码应用接口(11),用于输入用户信息,并分别传递给安全通信客户端模块(12)和客户端密码装置(13),用户信息包括用户(ID)和认证口令;
安全通信客户端模块(12),用于将来自密码应用接口(11)的用户信息、来自客户端密码装置(13)的主密钥和认证码传送给安全通信服务端模块(22);接收私钥生成器(2)生成的用户私钥并传送给客户端密码装置(13);
客户端密码装置(13),用于接收来密码应用接口(11)的用户信息,随机生成主密钥,并生成包含主密钥、认证口令和用户ID信息的认证码,将主密钥和认证码传送给安全通信客户端模块(12),并暂存来自安全通信客户端模块(12)的用户私钥;提供外部密码操作接口,实现用户密码操作;
所述私钥生成器(2)包括
私钥管理模块(21),用于注册用户信息,存储私钥生成器密码装置(23)为注册用户生成的认证口令;
安全通信服务端模块(22),用于将来自安全通信客户端模块(12)的用户信息、主密钥和认证码传送给私钥生成器密码装置(23),将私钥生成器密码装置(23)生成的用户私钥传送给安全通信客户端模块(12);
私钥生成器密码装置(23),用于为私钥管理模块(21)注册的用户生成认证口令;接收来自安全通信服务模块(22)的用户信息、主密钥和认证码,判断用户身份的合法性,如果合法,生成用户私钥,使用主密钥对私钥加密,将加密后的私钥传送给安全通信服务模块(22)。
3、根据权利要求2所述的基于标识的公钥密码体制私钥托管系统,其特征在于,所述私钥生成器密码装置(23)按照以下方式为注册用户生成认证口令(1)生成两个随机种子s0,t0,计算si=MD(si-1),1≤i≤N,ti=MD(ti-1),1≤i≤N,其中MD()为一个单向函数,N为单个用户的认证口令的个数;(2)认证口令pi=sN-i,1≤i≤N,qi=tN-i,1≤i≤N。
4、根据权利要求3所述的基于标识的公钥密码体制私钥托管系统,其特征在于,所述私钥生成器密码装置(23)按照如下方式判断用户身份的合法性从用户信息中获取用户输入的认证口令pi和qi以及用户ID,计算MD(qi//m),其中m为主密钥和用户ID,符号“//”表示将两个二进制串首尾拼接,判断pi-1=MD(pi)和qi-1=MD(qi)是否成立,以及计算得到的MD(qi//m)与来自客户端密码系统(1)的认证码是否相等,若均成立,身份合法,pi-1=pi,qi-1=qi,否则不合法。
5、根据权利要求2所述的基于标识的公钥密码体制私钥托管系统,其特征在于,所述客户端密码装置(13)包括
密码操作接口用于提供对外的密码操作接口;
密码操作实现模块用于通过密钥存储区存储的主密钥和用户私钥调用密码算法库,实现密码操作,并将密码操作实现过程中出现的明、密文和密钥传送给工作存储区;
密码算法库用于提供各种密码操作的具体实现程序;
工作存储区用于存储暂存密码操作实现过程中出现的明、密文和密钥;
密钥存储区用于存储主密钥和用户私钥。
全文摘要
基于标识的公钥密码体制私钥托管系统,客户端密码系统向私钥生成器传送用户信息请求认证,私钥生成器认证通过后生成用户私钥并暂于客户端密码系统,客户端密码系统为应用程序提供密码操作接口,在内部实现密码操作。本发明在用户登录的时候动态从私钥生成器处获得私钥,防篡改身份认证协议和密码装置技术可以保证用户获取私钥过程的安全性,由于用户既不将私钥静态存储,也不动态暴露在密码装置之外,因此增加了攻击者的攻击难度,可有效抵抗各种动态和静态分析方法。
文档编号H04L9/32GK101359991SQ20081019693
公开日2009年2月4日 申请日期2008年9月12日 优先权日2008年9月12日
发明者杨复荪, 波 金, 张小牧, 汤学明, 崔永泉, 涛 龙, 才 付 申请人:湖北电力信息通信中心, 华中科技大学