一种基于CPK密钥的CA证书发放方法及系统与流程

文档序号:15743466发布日期:2018-10-23 22:41阅读:821来源:国知局

本发明涉及信息安全领域,尤其涉及一种基于CPK密钥的CA证书发放方法、系统以及一种基于CA证书的数据安全传输方法、系统。



背景技术:

随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施(PKI,Public Key Infrastructure)逐步在国内外得到广泛应用。参见图1,根据一个具体实施例对PKI技术进行描述:甲想将一份合同文件通过Internet发给远在国外的乙,此合同文件对双方非常重要,不能有丝毫差错,而且此文件绝对不能被其他人得知其内容。如何才能实现这个合同的安全发送?

可以采用一些成熟的对称加密算法,如DES、3DES、RC5等对文件加密。对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用做解密密钥,这种方法在密码学中叫做对称加密算法。

为了对对称密钥进行安全传输,一般采用非对称密钥算法加密对称密钥后进行传送。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(Public Key)和私有密钥(Private Key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法(公/私钥可由专门软件生成)。

为了确保密钥的唯一性,采用了数值证书的方法。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件,是网络通信中标识通信各方身份信息的一系列数据,它提供了一种在Internet上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证,人们可以在交往中用它来识别对方的身份。

最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间、发证机关(证书授权中心)名称、该证书的序列号等信息。它是由一个权威机构——CA机构,又称为证书授权(Certificate Authority)中心发放的。CA机构作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书,CA是PKI的核心,负责管理PKI结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份。

因为数字证书是公开的,就像公开的电话簿一样,在实践中,发送者(即甲)会将一份自己的数字证书的拷贝连同密文、摘要等放在一起发送给接收者(即乙),而乙则通过验证证书上权威机构的签名来检查此证书的有效性(只需用那个可信的权威机构的公钥来验证该证书上的签名就可以了),如果证书检查一切正常,那么就可以相信包含在该证书中的公钥的确属于列在证书中的那个人(即甲)。

可见,PKI技术在保证密钥的合法性,以及保证数据的安全性上具有很大的优势,这既要归功于PKI的非对称密钥加密模式,也要归功于CA中心对于密钥的可靠性保证。

组合密钥架构(CombinedPublic Key Cryptosystem,简称CPK)是以ECC椭圆曲线加密算法,对多随机数或特定数据进行运算,生成同运算模型下的若干对不同的私钥和公钥,分别放在私钥矩阵和公钥矩阵中,通过对用户的标识号ID做摘要(即:基于标识号的数据生成一散列值)映射,即把摘要值换算成若干位置坐标,私钥矩阵中对应位置取出的多个私钥模加的结果组成的新私钥和对应的公钥矩阵中同样位置取出的多个公钥点加的结果组成的新公钥仍然是一对公钥对,公钥矩阵和公钥运算算法公开,私钥矩阵由发行方秘密保存,生成的私钥交由安全硬件保存或由用户自己秘密保存,用户通过对方的标识号ID,计算对方的公钥,安全的给对方发信息,以及验证对方的签名,用户通过自己的私钥,解开接收的加密数据,以及对自己发出的数据做签名。但是组合密钥不需要数据库的在线支持,因此可用一个芯片来实现,在规模化、经济性、可行性、运行效率上具有PKI,IBE这两种体制无法比拟的优势。

根据上述描述客户自,CA中心保证了密钥的合法性,并且可以防伪,而CPK相比PKI、IBE在加密性能上具有极大的优势,然而目前还没有一种技术将CA中心和CPK两种技术结合起来,从而既能具备CPK数据加密的优势,又能具备CA中心的优势。



技术实现要素:

为解决上述技术问题,本发明提供了一种基于CPK密钥的CA证书发放方法,该方法包括:

当CA中心接收到CA证书请求时,将用户标识ID发送到请求用户的安全设备;

所述安全设备根据所述标识ID产生CPK密钥,并返回给所述CA中心;

CA中心根据所述CPK密钥和用户标识ID生成CA证书;

CA中心对CA证书进行签名并将经签名的CA证书返回给请求用户,所述CA证书包含请求用户的CPK公钥、公钥矩阵以及用户标识ID;

将所述CA证书以及用户CPK私钥写入所述安全设备的安全芯片中。

根据本发明的方法,优选的,预先在在安全设备上存储CPK私钥矩阵以及CPK公钥矩阵。

根据本发明的方法,优选的,所述安全设备接收到用户标识ID后,对该用户标识ID做摘要映射生成摘要值,该摘要值对应若干位置坐标,基于该位置坐标,从CPK私钥矩阵中对应位置取出多个私钥模加的结果得到CPK私钥,从CPK公钥矩阵中同样位置取出多个公钥点加得到CPK公钥,得到所述CPK私钥和CPK公钥组成的CPK密钥。

根据本发明的方法,优选的,CA证书包含CN项或SN项,所述CN项或SN项包含所述用户标识ID,所述SN项为包含但不限于以下用于标识用户身份的标识码:手机号码、身份证号码。

根据本发明的方法,优选的,CA中心将从请求用户接收的用户CPK公钥做为CA证书的公钥项,将从请求用户接收的CPK公钥矩阵做为CA证书的延伸项。

根据本发明的方法,优选的,所述安全芯片支持标准国密SKF、CSP标准以及P11标准,将用户的CPK私钥以及CA证书导入到安全芯片的COS内。

为解决上述技术问题,本发明提供了一种基于CA证书的数据安全传输方法,该方法包括以下步骤:

发送方采用对称密钥对用户数据进行加密,并采用接收方的CPK公钥将所述对称密钥加密,采用自身CPK私钥对用户数据签名;

将所述加密后的用户数据,加密后的对称密钥,签名后的用户数据以及包括发送方CPK密钥信息的CA证书发送给接收方;

接收方采用自身的CPK私钥解密得到对称密钥,并采用对称密钥解密得到用户数据;

接收方请求所述CA系统对接收的CA证书进行验证;

验证通过后,接收方从接收的CA证书中提取发送方的CPK公钥,并对用户签名数据进行验签;

验签通过后,成功接收所述用户数据。

根据本发明的方法,优选的,所述CA证书包括发送方的CPK公钥,CA中心对CA证书的签名,发送方的用户标识ID。

根据本发明的方法,优选的,发送方通过以下方式对用户数据进行签名:

对用户数据进行散列算法得到原始摘要值;

采用发送发的CPK私钥对所述原始摘要值进行数字签名;

根据本发明的方法,优选的,对用户签名数据进行验签包括:

接收方采用其CPK公钥解密所述数字签名数据得到接收用户数据的原始摘要值;

采用对称密钥解密得到明文用户数据,队所述明文用户数据采用同样的散列算法生成一新的摘要值;

比较所述原始摘要值和新的摘要值是否相同;

如果相同,则验证通过,否则验签失败。

根据本发明的方法,优选的,该方法用于物联网通信或P2P通信。

为解决上述技术问题,本发明提供了一种基于CPK密钥的CA系统,该系统包括:

请求接收装置,接收用户发送的CA证书请求;

用户标识ID发送装置,将用户标识ID发送到请求用户的安全设备;

密钥接收装置,接收所述安全设备根据所述标识ID产生并返回的CPK密钥;

CA证书生成装置,根据所述CPK密钥和用户标识ID生成CA证书;

CA证书发送装置,对CA证书进行签名并将经过签名的CA证书返回给请求用户,所述CA证书包含请求用户的CPK公钥、公钥矩阵以及用户标识ID。

根据本发明的系统,优选的,CA证书包含CN项或SN项,所述CN项或SN项包含所述用户标识ID,所述SN项为包含但不限于以下用于标识用户身份的标识码:手机号码、身份证号码。

根据本发明的系统,优选的,所述CA证书包括发送方的CPK公钥,CA中心对CA证书的签名,发送方的用户标识ID;

用户CPK公钥作为CA证书的公钥项,CPK公钥矩阵作为CA证书的延伸项。

为解决上述技术问题,本发明提供了一种基于CA证书的数据安全传输系统,该系统包括:数据发送装置、CA系统和数据接收装置;

数据发送装置采用对称密钥对用户数据进行加密,并采用接收方的CPK公钥将所述对称密钥加密,采用自身CPK私钥对用户数据签名;

数据发送装置将所述加密后的用户数据,加密后的对称密钥,签名后的用户数据以及包括发送方CPK密钥信息的CA证书发送给数据接收装置;

数据接收装置采用自身的CPK私钥解密得到对称密钥,并采用对称密钥解密得到用户数据;

数据接收装置请求所述CA系统对接收的CA证书进行验证;

验证通过后,数据接收装置从CA证书中提取发送方CPK公钥,并对用户签名数据进行验签;

验签通过后,成功接收所述用户数据。

根据本发明的系统,优选的,数据发送装置通过以下方式对用户数据进行签名:

对用户数据进行散列算法得到原始摘要值;

采用发送发的CPK私钥对所述原始摘要值进行数字签名;

根据本发明的系统,优选的,对用户签名数据进行验签包括:

数据接收装置采用其CPK公钥解密所述数字签名数据得到接收用户数据的原始摘要值;

采用对称密钥解密得到明文用户数据,并所述明文用户数据采用同样的散列算法生成一新的摘要值;

比较所述原始摘要值和新的摘要值是否相同;

如果相同,则验证通过,否则验签失败。

通过本发明的技术方案,可以使得在数据加密和解密时采用一个芯片即可实现,提高了加解密的系统,同时由于采用CA中心对CPK密钥进行认证,保证了密钥的可信度,因此本发明的技术方案同时具备了CPK技术和CA认证技术的优点,相比现有技术有独创性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术中PKI的CA证书请求流程。

图2本发明的CA证书请求流程图。

图3本发明的基于CA证书的数据传输方法流程图。

图4本发明的CA系统组成架构图。

图5是本发明基于CA证书的数据传输架构图。

具体实施方式

下面对CA系统的主要组件进行简单介绍。

CA(认证中心/证书颁发机构)的职责是颁发和维护数字证书。

CA证书的最终用户是PC/用户/网络设备等需要证书的设备。

数字证书,即CA证书在密钥管理系统中它代表的是设备用户的身份在网络中是唯一的。例如格式是:X.509v3(设备和用户身份信息,CA签名,设备公钥)。

RA(注册机构)是一个可选的机构,其主要职责是由CA委托,但不能颁发证书,可维护证书。

CA必须有CRL表(证书撤销列表),RA可能有CRL表,由CA创建本地CRL查询:1、定期更新占用带宽2、浪费查询资源3、占用大量存储空间。

SCEP(简单证书颁发协议)的作用是申请和颁发证书,工作在HTTP之上。OCSP(在线证书查询协议)工作在HTTP之上,用于检查证书是否合法:1、本地CRL查询2、OCSP查询

申请CA证书的过程包括:

1、首先申请者从CA获得CA的证书即根证书(CA的身份信息、CA的签名、CA的公钥)

2、申请者将合法的身份信息以PKCS#10格式通过SCEP发送給CA,身份信息包括:主机名、域名、IP地址(可选)、国家代码(可选)、公钥,挑战码(可选)……

3、CA中心验证申请者的合法性:通过申请者的身份信息来生成“挑战码”,来对申请者进行认证。满足条件后CA就会产生一个合法的证书,X.509v3(PKCS#10信息:身份信息、公钥,CA信息,CA签名,有效时间,序列号(身份证号),CRL表的下载地址或查询地址)。

4、CA使用申请者的公钥将X.509v3加密得到密文格式证书,PKCS#7,在使用SCEP协议颁发給申请者。

5、申请者使用自己的私钥解密得到X.509v3证书并保存。

本发明基于现有的CA中心结构提出了一种基于CPK密钥与CA证书的整合方法,将CPK密钥与CA所发行的证书整合于一起,该方法包括以下步骤:

步骤1:将CPK的私钥以及公钥矩阵产生在安全的密码设备上,使得密码设备可以根据传入的标识号ID产生相对应的CPK密钥对。

要产生CPK密钥的标识,可以是身份证号或是手机号等各种可以唯一标识用户的标识ID。

步骤2:将具有发行CPK密钥的密码设备,对接到CA中心的发证系统,当CA中心接受到RA的证书请求时,可以将CN项或是SN项当成用户标识号ID,送到密码设备产制CPK密钥。

CA的证书内是的CN项或是SN项,需要与步骤一种CPK的用户识别ID号一致。

步骤3:CA中心从密码设备取回CPK密钥以及公钥矩阵,将CPK密钥中的公钥做为证书的公钥项,以及将公钥矩阵做为证书的延伸项,CA中心使用私钥签出包含CPK公钥以及公钥矩阵的证书。

通常CA中心是随机数产生密钥对(公钥与私钥),CPK可以根据标识产生CA需要的公私钥对,然后CA中心再根据公私钥对产生证书,这样CA的证书具有原本CA的功能,也保有CPK的特性。CA证书里面主要包含了用户的公钥,CN和/或SN项(包括用户名),以及CA对于证书的签名等,CA签名来保证这公钥是属于哪一个用户的公钥。证书的结构可以有延伸项,就是不属于X.509的基础定义的项目,可以放在里面,做为应用的使用。证书的发放是将相关内容经过CA中心的签名,本专利将公钥,公钥矩阵以及标识(CN SN)等CPK相关内容,加载到证书内,使得证书带有CPK的特性的密钥。

对证书进行签名的私钥是CA中心自己的私钥。将在安全设备产生的用户CPK私钥入到安全芯片,例如在银行领域应用较为广泛的U盾。

步骤4:RA将证书以及私钥写入到用户的安全芯片内,安全芯片是支援标准国密SKF,CSP标准以及P11的标准系统,将私钥以及证书导入到安全芯片的COS内。

即RA将CA中心颁发的CA证书和用户CPK私钥写入到用户的安全芯片内。

步骤5:在使用时,原CA体系下的应用系统,可以根据SKF,CSP标准以及P11的形式整合,与原本CA的系统均可以相容,包含网关系统(SSL)等。

步骤6:在使用于物联网或点对点的应用时,可以根据证书内的公钥矩阵,以及用户的标识号ID直接计算出用户的公钥,进行数据加密以及身分认证等应用。

如图2,本发明公开了一种基于CPK密钥的CA证书发放方法,该方法包括:

当CA中心接收到CA证书请求时,将用户标识ID发送到请求用户的安全设备;

所述安全设备根据所述标识ID产生CPK密钥,并返回给所述CA中心;

CA中心根据所述CPK密钥和用户标识ID生成CA证书;

CA中心对CA证书进行签名并将经签名的CA证书返回给请求用户,所述CA证书包含请求用户的CPK公钥、公钥矩阵以及用户标识ID;

将所述CA证书以及用户CPK私钥写入所述安全设备的安全芯片中。

预先在在安全设备上存储CPK私钥矩阵以及CPK公钥矩阵。

所述安全设备接收到用户标识ID后,对该用户标识ID做摘要映射生成摘要值,该摘要值对应若干位置坐标,基于该位置坐标,从CPK私钥矩阵中对应位置取出多个私钥模加的结果得到CPK私钥,从CPK公钥矩阵中同样位置取出多个公钥点加得到CPK公钥,得到所述CPK私钥和CPK公钥组成的CPK密钥。

CA证书包含CN项或SN项,所述CN项或SN项包含所述用户标识ID,所述SN项为手机号码或者身份证号码。

CA中心将从请求用户接收的用户CPK公钥做为CA证书的公钥项,将从请求用户接收的CPK公钥矩阵做为CA证书的延伸项。

所述安全芯片支持标准国密SKF、CSP标准以及P11标准,将用户的CPK私钥以及CA证书导入到安全芯片的COS内。

如图3,本发明公开了一种基于CA证书的数据安全传输方法,该方法包括以下步骤:

发送方采用对称密钥对用户数据进行加密,并采用接收方的CPK公钥将所述对称密钥加密,采用自身CPK私钥对用户数据签名;

将所述加密后的用户数据,加密后的对称密钥,签名后的用户数据以及包括发送方CPK密钥信息的CA证书发送给接收方;

接收方采用自身的CPK私钥解密得到对称密钥,并采用对称密钥解密得到用户数据;

接收方请求所述CA系统对接收的CA证书进行验证;

验证通过后,接收方从接收的CA证书中提取发送方的CPK公钥,并对用户签名数据进行验签;

验签通过后,成功接收所述用户数据。

所述CA证书包括发送方的CPK公钥,CA中心对CA证书的签名,发送方的用户标识ID。

发送方通过以下方式对用户数据进行签名:

对用户数据进行散列算法得到原始摘要值;

采用发送发的CPK私钥对所述原始摘要值进行数字签名;

对用户签名数据进行验签包括:

接收方采用其CPK公钥解密所述数字签名数据得到接收用户数据的原始摘要值;

采用对称密钥解密得到明文用户数据,队所述明文用户数据采用同样的散列算法生成一新的摘要值;

比较所述原始摘要值和新的摘要值是否相同;

如果相同,则验证通过,否则验签失败。

该方法用于物联网通信或P2P通信。

如图4,本发明公开了一种基于CPK密钥的CA系统,该系统包括:

请求接收装置,接收用户发送的CA证书请求;

用户标识ID发送装置,将用户标识ID发送到请求用户的安全设备;

密钥接收装置,接收所述安全设备根据所述标识ID产生并返回的CPK密钥;

CA证书生成装置,根据所述CPK密钥和用户标识ID生成CA证书;

CA证书发送装置,对CA证书进行签名并将经过签名的CA证书返回给请求用户,所述CA证书包含请求用户的CPK公钥、公钥矩阵以及用户标识ID。

CA证书包含CN项或SN项,所述CN项或SN项包含所述用户标识ID,所述SN项为手机号码或者身份证号码。

所述CA证书包括发送方的CPK公钥,CA中心对CA证书的签名,发送方的用户标识ID;

用户CPK公钥作为CA证书的公钥项,CPK公钥矩阵作为CA证书的延伸项。

如图5,本发明公开了一种基于CA证书的数据安全传输系统,该系统包括:数据发送装置、CA系统和数据接收装置;

数据发送装置采用对称密钥对用户数据进行加密,并采用接收方的CPK公钥将所述对称密钥加密,采用自身CPK私钥对用户数据签名;

数据发送装置将所述加密后的用户数据,加密后的对称密钥,签名后的用户数据以及包括发送方CPK密钥信息的CA证书发送给数据接收装置;

数据接收装置采用自身的CPK私钥解密得到对称密钥,并采用对称密钥解密得到用户数据;

数据接收装置请求所述CA系统对接收的CA证书进行验证;

验证通过后,数据接收装置从CA证书中提取发送方CPK公钥,并对用户签名数据进行验签;

验签通过后,成功接收所述用户数据。

数据发送装置通过以下方式对用户数据进行签名:

对用户数据进行散列算法得到原始摘要值;

采用发送发的CPK私钥对所述原始摘要值进行数字签名;

对用户签名数据进行验签包括:

数据接收装置采用其CPK公钥解密所述数字签名数据得到接收用户数据的原始摘要值;

采用对称密钥解密得到明文用户数据,并所述明文用户数据采用同样的散列算法生成一新的摘要值;

比较所述原始摘要值和新的摘要值是否相同;

如果相同,则验证通过,否则验签失败。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式发送机或其他可编程数据发送终端设备的发送器以产生一个机器,使得通过计算机或其他可编程数据发送终端设备的发送器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据发送终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据发送终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的发送,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的方案,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1