一种基于CPK的电子银行安全认证系统和方法转让专利

申请号 : CN200610076020.2

文献号 : CN1831865B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 南相浩赵建国

申请人 : 北京易恒信认证科技有限公司

摘要 :

本发明公开了一种基于CPK的电子银行安全认证系统和方法。该系统包括帐号卡,客户端和银行端,客户端能够识别帐号卡,客户端与银行端连接。帐号卡包括第一CPK安全芯片(1),用于通过交易数据得到系统完整性码,利用私钥签名;客户端包括第二CPK安全芯片(2),用于得到客户端交易数据、系统完整性码及签名;产生随机数对数据进行加密,然后加密随机数;银行端包括第三CPK安全芯片(3),用于解密客户端传送的数据,并验证签名和完整性码。本发明还提供一种基于CPK的电子银行安全认证方法。其不需要维护大量数据的数据库,运行的效率得到大大提高。

权利要求 :

1.一种基于CPK的电子银行安全认证系统,包括帐号卡,客户端和银行端,客户端能够识别帐号卡,客户端与银行端连接,其特征在于:所述帐号卡包括第一CPK安全芯片(1),用于根据用户输入的交易数据,利用交易数据得到系统完整性码,利用帐号卡中保存的与帐号相应的私钥通过CPK算法对数据完整性码进行签名;

所述客户端包括第二CPK安全芯片(2),用于根据帐号卡中第一CPK安全芯片(1)发送来的数据,并加上客户端标识数据,得到客户端交易数据;根据客户端交易数据得到客户端系统完整性码;利用客户端私钥通过CPK算法对客户端系统完整性码进行签名;然后产生随机数,利用随机数对客户端交易数据、完整性码及签名进行加密,得到客户端加密数据,利用银行端提供的公钥对随机数进行加密,得到随机数加密数据;

所述银行端包括第三CPK安全芯片(3),用于通过银行端私钥,利用CPK算法解密得到随机数,利用随机数解密得到客户端交易数据;然后利用客户端公钥验证客户端签名可信性,同时验证客户端交易数据的系统完整性码,验证通过后,从客户端交易数据中读取帐号卡签名,利用帐号卡公钥验证帐号签名可信性,同时验证交易数据的系统完整性码,验证通过后,将用户输入交易数据在银行端进行处理。

2.根据权利要求1所述的电子银行安全认证系统,其特征在于,所述第一CPK安全芯片(1)、第二CPK安全芯片(2)和第三CPK安全芯片(3)包括CPK算法功能模块,验证协议模块以及密钥交换协议模块,公钥矩阵模块,以及对应于帐号卡、客户端和银行端标识的私钥。

3.根据权利要求1或2所述的电子银行安全认证系统,其特征在于,所述帐号卡为带CPU的智能卡。

4.根据权利要求1或2所述的电子银行安全认证系统,其特征在于,所述客户端为ATM机或者POS机。

5.根据权利要求1或2所述的电子银行安全认证系统,其特征在于,所述第二CPK安全芯片(2)和第三CPK安全芯片(3)为U棒。

6.根据权利要求1或2所述的电子银行安全认证系统,其特征在于,还包括计算机网络,用于连接客户端与银行端,进行数据通信,客户端的交易请求从客户端传送到银行端。

7.一种基于CPK的电子银行安全认证方法,其特征在于,包括下列步骤:

步骤A)帐号卡根据用户输入的交易数据,利用交易数据得到系统完整性码,利用帐号卡中保存的与帐号相应的私钥通过CPK算法对数据完整性码进行签名,然后传输给客户端;

步骤B)客户端根据帐号卡发送来的数据,并加上客户端标识数据,得到客户端交易数据;根据客户端交易数据得到客户端系统完整性码;利用客户端私钥对通过CPK算法对客户端系统完整性码进行签名;然后产生随机数,利用随机数对客户端交易数据、完整性码及签名进行加密,得到客户端加密数据,利用银行端提供的公钥对随机数进行加密,得到随机数加密数据,将客户端加密数据,客户端系统完整性码和随机数据加密数据传送给银行端;

步骤C)银行端通过银行端私钥,利用CPK算法解密得到随机数,利用随机数解密得到客户端交易数据;然后利用客户端公钥验证客户端签名可信性,同时验证客户端交易数据的系统完整性码,验证通过后,从客户端交易数据中读取帐号卡签名,利用帐号卡公钥验证帐号签名可信性,同时验证交易数据的系统完整性码,验证通过后,将用户输入交易数据在银行端进行处理。

8.根据权利要求7所述的电子银行安全认证方法,其特征在于,还包括下列步骤:

步骤D)在验证通过后,银行端保存交易时间,客户端签名以及帐号卡签名数据。

9.根据权利要求7或8所述的电子银行安全认证方法,其特征在于,所述步骤A)包括下列步骤:步骤A1)在用户将帐号卡插入银行客户端设备申请交易后,客户端确认该卡为本机可以识别的帐号卡后,提供用户输入口令,检查用户口令是否正确;如果正确,则提示交易继续进行;否则,提示用户重新输入或者结束交易;

步骤A2)当用户输入正确的口令后,客户端设备提示交易内容;

步骤A3)帐号卡根据用户输入的数据,得到用户输入数据的系统完整性码,然后利用帐号卡中保存的与帐号相应的私钥对系统完整性码签名;并将用户输入的数据,系统完整性码以及签名一起传送给客户端。

10.根据权利要求7或8所述的电子银行安全认证方法,其特征在于,所述步骤B)包括下列步骤:步骤B1)客户端收到帐号卡传送来的用户输入的数据,系统完整性码以及签名后,加上客户端标识数据,得到本次交易的客户端交易数据;

步骤B2)客户端利用本次交易的客户端交易数据,生成本次交易的客户端系统完整性码;

步骤B3)客户端利用客户端私钥对客户端码签名;

步骤B4)客户端生成随机数,利用随机数,通过CPK算法对客户端交易数据进行加密,得到客户端加密数据;

步骤B5)客户端利用银行端的公钥将随机数加密,得到加密随机数;

步骤B6)客户端将客户端加密数据,客户端系统完整性码,客户端签名,客户端加密数据,以及加密随机数一并传送给银行端。

11.根据权利要求7或8所述的电子银行安全认证方法,其特征在于,所述步骤C)包括下列步骤:步骤C1)银行端设备收到客户端设备传送来的客户端加密数据,客户端系统完整性码,客户端签名,以及加密随机数后,银行端利用自己的私钥,解密收到的加密随机数,得到原来的随机数;

步骤C2)银行端利用客户端的公钥验证客户端签名,确认客户端的可信性,并验证客户端系统完整性码,确认所收到的数据与客户端传送的数据一致;

步骤C3)银行端利用随机数,通过CPK算法,解密客户端加密数据,得到原客户端交易数据;

步骤C4)银行端保存客户端标识数据,利用帐号卡的公钥验证帐号卡的签名,确认帐号卡可信性,并验证帐号卡系统完整性码,确认所收到的数据与用户输入的数据一致。

说明书 :

一种基于CPK的电子银行安全认证系统和方法

技术领域

[0001] 本发明涉及数字通信安全认证领域,特别是涉及一种基于组合公钥算法(CPK)安全认证的电子银行安全认证系统和方法。

背景技术

[0002] 电子银行是指通过ATM、POS机进行存取款和转帐业务的一种电子业务。
[0003] 到目前为止,电子银行系统中均采用磁性卡,为支付带来了很大的方便,起到历史的作用。但安全性也受到了很大的挑战。磁性卡验证系统是用对称密钥加密的方法来实现的,即客户密钥在银行中也有。否则,银行也就无法解密验证。这种方式存在以下两个问题:
[0004] 一是因为银行存有客户的所有信息,特别是对称密钥和口令,所以银行的信息丢失,也涉及客户信息的丢失:在美国、香港的银行丢失几千万个用户信息就是例子。
[0005] 二是银行保留了客户的所有信息,因此银行内部人员相当容易获得密码而窃取客户的存款。如果银行内部人员窃取了客户存款后,而客户并没有提取存款,则可能会造成客户损失,同时对银行的信誉造成影响。
[0006] 现有另一种方法是,采用非对称密钥签名的PKI技术方法实现实现电子银行的安全认证,这是一种被动的安全认证防护方法。
[0007] 公钥基础设施算法(Pubic Key Infrastructure,PKI)是目前应用最广泛的一种加密算法,是信息安全基础设施的一个重要组成部分,是一种普遍适用的网络安全基础设施。PKI是20世纪80年代由美国学者提出来了的概念,实际上,授权管理基础设施、可信时间戳服务系统、安全保密管理系统、统一的安全电子政务平台等的构筑都离不开它的支持。在这一算法中,加密密钥与解密密钥各不相同,发送信息的人利用接收者的公钥发送加密信息,接收者再利用自己专有的私钥进行解密。这种方式既保证了信息的机密性,又能保证信息具有不可抵赖性。目前,公钥体制广泛地用于CA认证、数字签名和密钥交换等领域。数字证书认证中心CA、审核注册中心RA(Registration Authority)、密钥管理中心KM(Key Manager)都是组成PKI的关键组件。
[0008] 但是,这电子银行系统被动安全认证的方法,需要第三方证明的机制,必须有在线运行的证书库的支持,其维护具有大量数据的数据库,占用大量的存储空间,运行时的效率也不高,处理速度很慢,不能适应电子银行这样的公众网络安全由被动防护进入可信要求的主动防护要求,无法在电子银行这样的超大规模的公众网络范围内建立可信系统。

发明内容

[0009] 本发明的目的在于克服上述缺陷而提供一种基于CPK的电子银行认证系统和方法,其不需要维护大量数据的数据库,运行的效率得到大大提高。
[0010] 为实现本发明目的而提供的一种基于CPK的电子银行安全认证系统,包括帐号卡,客户端和银行端,客户端能够识别帐号卡,客户端与银行端连接。
[0011] 所述帐号卡包括第一CPK安全芯片,用于根据用户输入的交易数据,利用交易数据得到系统完整性码,利用与帐号相应的私钥通过CPK算法对数据完整性码进行签名;
[0012] 所述客户端包括第二CPK安全芯片,用于根据帐号卡中第一CPK安全芯片发送来的数据,并加上客户端标识数据,得到客户端交易数据;根据客户端交易数据得到客户端系统完整性码;利用客户端私钥对通过CPK算法对客户端系统完整性码进行签名;然后产生随机数,利用随机数对客户端交易数据、完整性码及签名进行加密,得到客户端加密数据,利用银行端提供的公钥对随机数进行加密,得到随机数加密数据;
[0013] 所述银行端包括第三CPK安全芯片,用于通过银行端私钥,利用CPK算法解密得到随机数,利用随机数解密得到客户端交易数据;然后利用客户端公钥验证客户端签名可信性,同时验证客户端交易数据的系统完整性码,验证通过后,从客户端交易数据中读取帐号卡签名,利用帐号卡公钥验证帐号签名可信性,同时验证交易数据的系统完整性码,验证通过后,将用户输入交易数据在银行端进行处理。
[0014] 所述第一CPK安全芯片、第二CPK安全芯片和第三CPK安全芯片包括CPK算法功能模块,验证协议模块以及密钥交换协议模块,公钥矩阵模块,以及对应于帐号卡、客户端和银行端标识的私钥,。
[0015] 所述帐号卡为带CPU的智能卡。
[0016] 所述客户端为ATM机或者POS机。
[0017] 所述第二CPK安全芯片和第三CPK安全芯片为U棒。
[0018] 还包括计算机网络,用于连接客户端与银行端,进行数据通信,客户端的交易请求从客户端传送到银行端。
[0019] 为实现本发明目的还提供一种基于CPK的电子银行安全认证方法,包括下列步骤:
[0020] 步骤A)帐号卡根据用户输入的交易数据,利用交易数据得到系统完整性码,利用与帐号相应的私钥通过CPK算法对数据完整性码进行签名,然后传输给客户端;
[0021] 步骤B)客户端根据帐号卡发送来的数据,并加上客户端标识数据,得到客户端交易数据;根据客户端交易数据得到客户端系统完整性码;利用客户端私钥对通过CPK算法对客户端系统完整性码进行签名;然后产生随机数,利用随机数对客户端交易数据、完整性码及签名进行加密,得到客户端加密数据,利用银行端提供的公钥对随机数进行加密,得到随机数加密数据,将客户端加密数据,客户端系统完整性码和随机数据加密数据传送给银行端;
[0022] 步骤C)银行端通过银行端私钥,利用CPK算法解密得到随机数,利用随机数解密得到客户端交易数据;然后利用客户端公钥验证客户端签名可信性,同时验证客户端交易数据的系统完整性码,验证通过后,从客户端交易数据中读取帐号卡签名,利用帐号卡公钥验证帐号签名可信性,同时验证交易数据的系统完整性码,验证通过后,将用户输入交易数据在银行端进行处理。
[0023] 步骤D)在验证通过后,银行端保存交易时间,客户端签名以及帐号卡签名数据。
[0024] 所述步骤A)可以包括下列步骤:
[0025] 步骤A1)在用户将帐号卡插入银行客户端设备申请交易后,客户端确认该卡为本机可以识别的帐号卡后,提供用户输入口令,检查用户口令是否正确;如果正确,则提示交易继续进行;否则,提示用户重新输入或者结束交易;
[0026] 步骤A2)当用户输入正确的口令后,客户端设备提示交易内容;
[0027] 步骤A3)帐号卡根据用户输入的数据,得到用户输入数据的系统完整性码,然后利用帐号卡中保存的与帐号相应的私钥对系统完整性码签名;并将用户输入的数据,系统完整性码以及签名一起传送给客户端。
[0028] 所述步骤B)可以包括下列步骤:
[0029] 步骤B1)客户端收到帐号卡传送来的用户输入的数据,系统完整性码以及签名后,加上客户端标识数据,得到本次交易的客户端交易数据;
[0030] 步骤B2)客户端利用本次交易的客户端交易数据,生成本次交易的客户端系统完整性码;
[0031] 步骤B3)客户端利用客户端私钥对客户端码签名;
[0032] 步骤B4)客户端生成随机数,利用随机数,通过CPK算法对客户端交易数据进行加密,得到客户端加密数据;
[0033] 步骤B5)客户端利用银行端的公钥将随机数加密,得到加密随机数;
[0034] 步骤B6)客户端将客户端加密数据,客户端系统完整性码,客户端签名,客户端加密数据,以及加密随机数一并传送给银行端。
[0035] 所述步骤C)可以包括下列步骤:
[0036] 步骤C1)银行端设备收到客户端设备传送来的客户端加密数据,客户端系统完整性码,客户端签名,客户端加密数据,以及加密随机数后,银行端利用自己的私钥,解密收到的加密随机数,得到原来的随机数;
[0037] 步骤C2)银行端利用客户端的公钥验证客户端签名,确认客户端的可信性,并验证客户端系统完整性码,确认所收到的数据与客户端传送的数据一致;
[0038] 步骤C3)银行端利用随机数,通过CPK算法,解密客户端加密数据,得到原客户端交易数据;
[0039] 步骤C4)银行端保存客户端标识数据,利用帐号卡的公钥验证帐号卡的签名,确认帐号卡可信性,并验证帐号卡系统完整性码,确认所收到的数据与用户输入的数据一致。
[0040] 本发明的有益效果是:本发明的基于CPK的电子银行认证系统和方法,其利用有限因素,通过映射算法将标识和密钥绑定,以很小的资源实现超大规模密钥管理,无需第三方证明,不需要数据库的支持,因此系统不需要维护。其适应不同的交易环境和交易要求,为交易的帐号、金额、地点和时间等提供可信性(负责性)证明。

附图说明

[0041] 图1为本发明的基于CPK的电子银行安全认证系统结构示意图。

具体实施方式

[0042] 下面结合附图进一步详细说明本发明的基于CPK的电子银行认证系统和方法。
[0043] 一般地,现有的电子银行系统,由客户端和银行端(Portal)构成,[0044] 用户在ATM机和POS机上进行的交易。以ATM系统为例,银行端(Portal)和ATM机构成星状网,ATM机和客户之间又构成一个星状网。
[0045] 客户端,用户允许银行的远程客户有选择地发起要自动处理的现金业务请求,包括ATM机或者POS机。
[0046] 银行端,用于响应客户端,自动接收和处理客户端所述的现金业务请求。
[0047] 连接客户端与银行端之间进行数据通信的的计算机网络,用于将客户端的交易请求从客户端传送给银行端。
[0048] 如图1所示,本发明的电子银行安全认证系统,其包括在客户端以及银行端的CPK芯片,以及帐号卡,利用CPK密钥认证算法,建立从用户到客户端和银行端之间的数据安全传送。
[0049] 组合公钥算法(Combined Pubic Key,CPK)是基于标识的公钥算法,其密钥管理中心生成彼此对应的私钥计算参数(私钥计算基)和公钥计算参数(公钥计算基);根据第一用户提供的标识,利用所述私钥计算参数计算第一用户的私钥,并将所产生的私钥提供给第一用户;以及公布所述公钥计算参数,以使得第二用户在获得第一用户的标识后,可根据第一用户的标识,利用所述的公钥计算参数,计算第一用户的公钥。
[0050] 本发明的电子银行安全认证系统,利用CPK芯片实现,CPK芯片中包括CPK算法中的CPK算法功能模块,验证协议模块,密钥交换协议模块,公钥矩阵模块,以及对应于帐号卡、客户端和银行端标识的私钥。
[0051] 本发明中的具有CPK算法功能模块、验证协议模块,在申请人的中国发明专利申请2005100021564基于标识的密钥产生装置及方法中具体实施方式所述,在本发明中全文引用。CPK的算法功能模块和验证协议模块提供认证所需所有参数和协议,利用公钥矩阵则就能计算任何实体的公钥。
[0052] 本发明的CPK安全芯片可镶嵌在U棒中,也可以镶嵌在帐号卡中。所有的签名功能、验证功能以及密钥交换功能均在CPK安全芯片中进行。通过CPK算法中的私钥就可以利用CPK算法进行签名,有了公钥(倍点)矩阵就可以对任何标识的签名进行验证。公钥(倍点)矩阵是公开变量,可以放置在U棒或帐号卡中,也可以放置在ATM机、POS机、银行门户等地方。
[0053] 用户的帐号卡的表面形式与目前的磁条卡一样,主要是发行名、流水号和账号,可以在银行柜台临时注册建立账号。帐号卡的账号由商户在出厂时定义好,事先配置好账号私钥。私钥在口令加密下存入芯片中,并提供更改口令的功能。
[0054] 帐号卡用带CPU的智能卡(IC)实现,存有该账号的私钥,私钥除物理保护外,还受到逻辑保护,即在用户口令和系统完整性码双重加密下存储。系统完整性码并不存在于帐号卡的CPK安全芯片中,而是在每一次调用私钥时对用户输入的数据临时计算系统完整性码,以此防止以非法手段来偷窃私钥的行为。
[0055] 用户在使用帐户卡时,先将该卡插入客户端的ATM机或POS机后,要输入口令,口令的检查并不在银行的客户端或者银行端进行,而是在用户的CPK安全芯片内部进行,只有口令正确时才能正确调用芯片的功能。
[0056] 客户端的ATM机或者POS机,以及银行端的门户系统配备的CPK安全芯片,可以是U棒,其功能与帐号卡的CPK安全芯片功能相同,而且配备了公钥矩阵。由于客户端及银行端的CPK安全芯片配备了公钥(倍点)矩阵,可以验证用户的帐号卡的标识的签名。
[0057] A)电子银行交易处理过程中,首先在用户将帐号卡插入银行客户端设备(ATM,POS)申请交易后,客户端确认该卡为本机可以识别的帐号卡后,运行帐号卡上的第一CPK安全芯片1,提供用户输入口令,检查用户口令是否正确;如果正确,则提示交易继续进行;否则,提示用户重新输入或者结束交易。
[0058] 当用户输入正确的口令后,客户端设备提示交易内容,用户输入相关数据,包括取款、存款、转账等,并选择确定。
[0059] 帐号卡中的第一CPK安全芯片1根据用户输入的数据,得到用户输入数据的系统完整性码,然后利用帐号卡中保存的与帐号相应的私钥对系统完整性码签名;并将用户输入的数据,系统完整性码以及签名一起传送给客户端。
[0060] B)客户端设备(ATM,POS机)收到帐号卡传送来的用户输入的数据,系统完整性码以及签名后,加上交易时间和本机的第二CPK安全芯片2的标识,得到本次交易的客户端交易数据;
[0061] 客户端的第二CPK安全芯片2利用本次交易的客户端交易数据,生成本次交易的客户端系统完整性码;
[0062] 然后第二CPK安全芯片2利用客户端私钥对客户端码签名;
[0063] 其后,第二CPK安全芯片2生成一个随机数,利用随机数,通过CPK算法对客户端交易数据进行加密,得到客户端加密数据;
[0064] 接着,第二CPK安全芯片2利用银行端的公钥将随机数加密,得到加密随机数;
[0065] 客户端设备将客户端加密数据,客户端系统完整性码,客户端签名,客户端加密数据,以及加密随机数一并传送给银行端。
[0066] C)银行端设备(PORTAL等)收到客户端设备传送来的客户端加密数据,客户端系统完整性码,客户端签名,客户端加密数据,以及加密随机数后,银行端第三CPK安全芯片3首先利用自己的私钥,解密收到的加密随机数,得到原来的随机数;
[0067] 第三CPK安全芯片3利用客户端的公钥验证客户端签名,确认客户端的可信性,并验证客户端系统完整性码,确认所收到的数据与客户端传送的数据一致;
[0068] 第三CPK安全芯片3利用随机数,通过CPK算法,解密客户端加密数据,得到原客户端交易数据;
[0069] 然后,银行端保存交易时间及第二CPK安全芯片2标识,第三CPK安全芯片3利用帐号卡的公钥验证帐号卡的签名,确认帐号卡可信性,并验证帐号卡系统完整性码,确认所收到的数据与用户输入的数据一致。
[0070] 银行端设备将用户输入的数据内容再转交银行业务系统处理,将处理结果通知银行端设备,银行端设备通知客户端设备执行(出款,打印等)。
[0071] 因此,本发明的基于CPK的电子银行安全认证系统,可以在电子银行的交易每一个环节都要向电子银行提供CPK可信性证明。其中,CPK算法的私钥分别由用户手中的帐号卡,客户端以及银行端的各自CPK安全芯片提供,公钥则由CPK芯片中的公钥(倍点)矩阵提供。因为公钥矩阵是公开变量,而且数据量非常小(两千多个汉字的量),其存储非常容易解决。根据CPK算法,只要有了公钥(倍点)矩阵和标识,就能通过CPK映射算法把该标识的公钥计算出来,因此能够简便地验证任何标识的签名。
[0072] 本发明电子银行安全认证系统中的协议模块包括数字签名协议和加密协议,以及密钥交换协议。数字签名协议采用国际509标准执行,但不需要调用第三方证明,不需要调用对方证书,因为CPK算法是标识自身证明的算法,因此调用对方证书,验证证书的过程变为多余。
[0073] 本发明的密钥交换协议没有现成的,另行设计非握手式的新协议:
[0074] 密钥交换协议如下:
[0075] 设用户A的私钥为SKA,公钥为PKA,用户B的私钥为SKB,公钥为PKB,那么A和B的密钥交换过程是:
[0076] A1:生成随机数r;
[0077] A2:计算rG,G是椭圆曲线密钥的基点,令rG=key;
[0078] A3:用key对数据data加密:Ekey(data)=α;
[0079] A4:在B的公钥基础上计算r(PKB)=β;
[0080] A5:将α、β发给B;
[0081] B1:用自己的私钥对β进行运算,求出加密密钥key:
[0082] β(SKB)-1=r(PKB)(SKB)-1=r(SKB*G)(SKB)-1=rG=key;
[0083] B2:用key脱密数据:DKEY(α)=data;
[0084] 下面以取款流程作为具体例子,说明本发明的电子银行安全认证方法过程,但本发明并不以此为限,在进行电子银行业务过程中,涉及到利用CPK算法对电子银行安全进行认证的过程业务方法,都在本发明的保护范围之内。
[0085] 步骤A:根据用户输入的交易数据,帐号卡第一CPK安全芯片1利用交易数据得到系统完整性码,利用第一CPK安全芯片1中的私钥通过CPK算法对数据完整性码进行签名,然后传输给客户端。
[0086] 客户在进行电子银行操作时,首先在客户帐号卡(ID)进行安全认证的工作:
[0087] 客户插入帐号卡(ID卡),可以按目前现有ATM机的屏幕显示操作。客户输入口令后,ID卡验证用户口令。然后,提交业务,按ATM机提示,选择业务:取款,选择金额:5000,并将选择的数据送入ID卡中。在ID卡中的流程如下。
[0088] 1.data1=(账号//取款//5000);//*用本卡账号、取款代码、5000作数据data1*
[0089] 2.Mac1=HASH(data1);//*用散列函数HASH计算数据data1的完整性码Mac1*[0090] 3.Sign1=SIG账号私钥(mac1);//*用账号私钥利用CPK算法对完整性码签名,得至*签名码SIGN1
[0091] 4.ID卡将数据data1,完整性码Mac1,签名码Sign1送出,并转交给ATM机。
[0092] 步骤B:客户端中的第二CPK安全芯片2接收到帐号卡发送来的数据,并加上交易时间,以及客户端安全芯片标识,得到客户端交易数据;利用客户端交易数据得到客户端系统完整性码,并利用第二CPK安全芯片2中的私钥对完整性码进行签名,然后产生随机数,利用随机数对客户端交易数据、完整性码及签名进行加密,得到客户端加密数据,利用银行端提供的公钥对随机数进行加密,得到随机数加密数据,将客户端加密数据,客户端系统完整性码和随机数据加密数据传送给银行端。
[0093] 当客户端的ATM机接收到帐号卡传输来的数据后,利用ATM机上的客户端安全芯片进行安全认证的工作:
[0094] ATM机将ID卡送出的数据和交易时间送入ATM机上的安全芯片(U棒)中,安全芯片(U棒)进行安全认证中的流程如下;
[0095] 1.data2=(data1,Mac1,Sign1、交易时间、ATM1);//*ATM1是该ATM1安全芯片U棒的标识
[0096] 2.Mac2=Hash(data2);
[0097] 3.Sign2=SIGATM1私钥(mac2);
[0098] 4.然后进行数据加密:
[0099] 41)产生随机数R3,用R3对得利用CPK算法对数据进行加密
[0100] ER3(data2/Mac2/Sign2)=cipher-text;//利用CPK算法对数据data2/完整性码mac2/签名Sign2通过ATM机中的安全芯片中的私钥进行加密,cipher-text是加密后的数据
[0101] 42)再将R3用对方公钥(PORTAL公钥)利用CPK算法进行加密;
[0102] EPORTAL公钥(R3)=coded-key;//*利用银行端提供的公钥对随机数R3进行加密,*coded-key是对R3利用CPK算法加密后的数据
[0103] 5.将加密后的数据cipher-text和coded-key送出U棒外,通过ATM机发送给银行端PORTAL。
[0104] 步骤C:银行端(PORTAL)接收到客户端传送来的数据后,利用银行端第三CPK安全芯片3,通过银行端私钥,解密得到随机数,利用随机数解密得到客户端交易数据;然后利用客户端公钥验证客户端签名可信性,同时验证客户端交易数据的系统完整性码,验证通过后,将客户端交易数据交由银行端第三CPK安全芯片3,从客户端交易数据中读取帐号卡签名,利用帐号卡公钥验证帐号签名可信性,同时验证交易数据的系统完整性码,验证通过后,将用户操作数据在银行端进行处理,并保存交易时间,客户端签名以及帐号卡签名等数据。
[0105] 银行端(PORTAL)接收到客户端传送来的数据后,利用银行端CPK安全芯片进行安全认证工作:
[0106] 1.对客户端(ATM机)的发送来的数据进行解密
[0107] 用银行端(PORTAL)自己的CPK私钥,利用CPK算法解密,将随机数R3解密出,利用随机数R3对客户端加密数据解密,得到客户端交易数据data2/Mac2/Sign2;
[0108] DPORTAL私钥(coded-key)=R3;//*解密得到随机数R3*
[0109] DR3(cipher-text)=(data2/Mac2/Sign2)//*利用随机数据R3对密文解密,得到原数据data2/Mac2/Sign2
[0110] 2.用ATM1的公钥检查签名Sign2,对ATM1的负责性进行检查;
[0111] 3.检查均通过,将data2交给业务部门处理,业务部门从data2中取出sign1,检查账号签名,如果合法,业务部门处理取款业务,并将账号签名留作取过款的证据。
[0112] 4.将处理结果做成数据data3,数据要包含mac,R1,portal签名,作为回执数据,加密发送给ATM1。
[0113] 5.最后,ATM对回执脱密,检查mac和随机数R1,如果符合,则提示并允许执行取款。
[0114] 本发明的电子银行安全认证系统及方法,与现有系统的实现兼容,其与电子银行系统涉及的现有磁条卡系统使用帐号(IC)卡的ATM机、POS机,因此,实现对原有电子银行系统最小改动。因为本系统的主要认证工作均在CPK安全芯片中完成,对现有电子银行系统的影响并不大,只是需要改变读卡器安全芯片部分,具有广泛的应用前景。
[0115] 本发明基于CPK的电子银行安全认证系统,通过ATM、POS机进行的存取款和转帐业务。用户的账号卡用带CPU的IC卡实现,可以简便地实现账号印章(签名),保证取款、存款、转帐的可信性,是现有磁条卡的信用卡、借贷卡的换代产品。其安全认证过程包括用户与账号卡的互相认证、账号卡与客户端(如ATM机)之间的互相认证、客户端和银行端之间的互相认证,最后形成账号卡与银行端之间的互相认证。其安全认证包括了对账号卡、账号、交易金额、交易时间、交易地点等的真实性证明,保证交易的安全性。
[0116] 本发明的基于CPK的电子银行认证系统和方法,其利用有限因素,通过映射算法将标识和密钥绑定,以很小的资源实现超大规模密钥管理,无需第三方证明,不需要数据库的支持,因此系统不需要维护。其适应不同的交易环境和交易要求,为交易的帐号、金额、地点和时间等提供可信性(负责性)证明。
[0117] 本实施例是使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。