CN101686123B - 密钥管理方法和系统、密钥生成及认证方法和装置 - Google Patents
密钥管理方法和系统、密钥生成及认证方法和装置 Download PDFInfo
- Publication number
- CN101686123B CN101686123B CN2008102227809A CN200810222780A CN101686123B CN 101686123 B CN101686123 B CN 101686123B CN 2008102227809 A CN2008102227809 A CN 2008102227809A CN 200810222780 A CN200810222780 A CN 200810222780A CN 101686123 B CN101686123 B CN 101686123B
- Authority
- CN
- China
- Prior art keywords
- key
- subscriber card
- different levels
- subordinates
- application server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种密钥管理方法和系统、密钥生成及认证方法和装置,该方法包括:应用服务器接收用户卡发送的认证数据;根据其中包含的用户信息选择本地存储的应用服务器级别以下的各级别的下级密钥的密钥计算规则;获取本地存储的与应用服务器级别对应的密钥;根据获取的密钥,使用各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;将计算得到的最后一级密钥作为用户卡的验证密钥;使用验证密钥验证用户卡的加密密钥。采用分级方式生成验证用户卡加密密钥的对应验证密钥、实现了验证密钥的分级生成及管理,解决了服务器中需要存储大量验证密钥及其与用户卡加密密钥的映射关系的问题,减轻了服务器的负担。
Description
技术领域
本发明涉及移动通信领域,尤指一种在服务器端对密钥进行管理的方法和系统、密钥生成及认证方法和装置。
背景技术
集成电路(Integrated Circuit,IC)卡,特别是非接触式IC卡,经过多年的发展已深入现代生活的各个角落,并广泛应用于公交、门禁、小额电子支付等领域。近年来,在轨道交通、物流管理、物品防伪、身份识别等需求推动下,非接触式IC卡(或电子标签)技术不断进步,应用越来越普及,迫切需要各类非接触IC卡(或电子标签)识别设备。与此同时,移动终端经历20多年的迅速发展,已经几乎成为人们必备的随身装置,普及率非常高,并且有向手机集成更多功能的趋势。
由索尼Sony、飞利浦Philips和诺基亚Nokia等公司提出的近场通讯(NearField Communication,NFC)是这几年飞速发展的一种新兴技术,可以直接实现两个电子设备之间的短程通讯,工作频率一般在13.56MHz频段,工作距离大概为几个厘米。NFC技术主要是实现电子设备之间的非接触IC卡片模拟功能、点对点数据通讯功能和读卡机模式这三类近距离通讯功能。
NFC终端广泛地应用于移动支付、产品防伪、追踪监管、数字签名、身份认证、信息获取等领域,除了完成非接触通讯的接口和协议之外,还必须具有通信的安全管理功能,即需要使用对称密钥对终端用户标识模块(SubscriberIdentity Module,SIM)卡和后台服务器之间传输通信数据进行加密,而对称密钥需要保存在终端SIM卡和后台服务器上。
在现有使用对称密钥的体系中,应用服务器与每个终端实体之间共享一对或多对私密密钥,即应用服务其中存储的验证密钥和终端实体拥有的对应的加密密钥组成一对私密密钥。因此有多少个终端实体需要与应用服务器交互,应用服务器就至少需要存储多少验证密钥;随着用户的增多,与应用服务器需要交互的终端实体也逐渐增多,这样应用服务器需要存储大数据量(几乎是几亿量级)的终端SIM卡与应用服务器共享的验证密钥,而且还要维护验证密钥与终端实体的对应关系,这已经成为应用服务器的一个沉重的负担。另外,存储在应用服务器中的验证密钥完全独立生成,其生成过程没有基于统一规划,验证密钥只与对应的SIM卡之间具有映射关系,验证密钥之间无依赖关系,因而给应用服务器的密钥管理造成很大的麻烦。
发明内容
本发明实施例提供一种密钥管理方法和系统,通过上级密钥得到下级密钥这一分级管理模式,解决了密钥管理困难的问题。
本发明实施例提供一种密钥生成方法和装置,通过上级密钥得到下级密钥,这一密钥模式,解决了密钥管理困难的问题。
本发明实施例提供一种密钥认证方法和装置,采用即时生成的验证密钥验证用户卡的加密密钥,解决了服务器中需要存储大量验证密钥及其与用户卡加密密钥的映射关系的问题,减轻了服务器的负担且便于密钥的管理。
一种密钥管理方法,包括:
将种子密钥和各级别的下级密钥的密钥计算规则存储到第一级应用服务器中;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
在下级应用服务器中存储对应级别的下级密钥,以及存储低于该对应级别的各级别的下级密钥的密钥计算规则;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成。
一种密钥管理系统,包括至少两级应用服务器,第一级应用服务器,用于存储种子密钥和各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
下级应用服务器,用于存储对应级别的下级密钥,以及存储低于该对应级别的各级别的下级密钥的密钥计算规则;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成。
一种用户卡验证密钥生成方法,包括:
应用服务器根据用户卡的用户信息选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
获取本地存储的与所述应用服务器级别对应的密钥;
根据获取的与所述应用服务器级别对应的密钥,使用所述各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
将计算得到的最后一级密钥作为所述用户卡的验证密钥。
根据本发明的上述方法,所述选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则,包括:
分别从本地存储的各级别的下级密钥的多种计算方法中选取一种;
根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息,作为计算相应级别的下级密钥的计算参数。
根据本发明的上述方法,从本地存储的各级别的下级密钥的多种计算方法中选取一种,具体为:
从本地存储的各级别的下级密钥的多种计算方法中任选一种,或者根据所述用户信息中携带的算法标识选择对应的计算方法。
根据本发明的上述方法,所述用户卡发送的用户信息中还携带密钥索引;
所述获取本地存储的与所述应用服务器级别对应的密钥,具体包括:选取本地存储的多个密钥中与所述密钥索引对应的密钥。
一种用户卡验证密钥生成装置,包括:存储模块、选择模块、计算模块和确定模块;
所述存储模块,用于存储对应级别的密钥和各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
所述选择模块,用于根据所述用户卡的用户信息选择所述存储模块存储的各级别的下级密钥的密钥计算规则;
所述计算模块,获取所述存储模块存储的对应级别的密钥,根据获取的密钥,使用所述选择模块选择的各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
所述确定模块,用于确定所述计算模块计算得到的最后一级密钥为所述用户卡的验证密钥。
根据本发明的上述装置,所述选择模块,包括:方法选择子模块和参数选择子模块;
所述方法选择子模块,用于从所述存储模块存储的各级别的下级密钥的多种计算方法中分别选取一种;
所述参数选择子模块,用于根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息,作为计算各级别的下级密钥的对应计算参数。
根据本发明的上述装置,所述方法选择子模块,还用于选取与用户信息中携带的算法标识对应的计算方法。
根据本发明的上述装置,所述选择模块,还包括:
密钥选择子模块,用于选取所述存储模块存储的多个密钥中与所述用户信息中携带的密钥索引对应的密钥。
一种用户卡密钥认证方法,包括:
应用服务器接收所述用户卡发送的认证数据;
根据所述认证数据中包含的用户信息选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
获取本地存储的与所述应用服务器级别对应的密钥;
根据获取的与所述应用服务器级别对应的密钥,使用所述各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
将计算得到的最后一级密钥作为所述用户卡的验证密钥;
使用所述验证密钥验证所述用户卡的加密密钥。
根据本发明的上述方法,所述选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则,包括:
分别从本地存储的各级别的下级密钥的多种计算方法中选取一种;
根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息,作为计算相应级别的下级密钥的计算参数。
根据本发明的上述方法,从本地存储的各级别的下级密钥的多种计算方法中选取一种,具体为:
从本地存储的各级别的下级密钥的多种计算方法中任选一种,或者根据所述用户信息中携带的算法标识选择对应的计算方法。
根据本发明的上述方法,还包括在所述用户信息中携带密钥索引;
所述获取本地存储的与所述应用服务器级别对应的密钥,具体包括:选取本地存储的多个密钥中与所述密钥索引对应的密钥。
一种用户卡密钥认证装置,包括:接收单元、存储单元、选择单元、计算单元和验证单元;
所述接收单元,用于接收所述用户卡发送的认证数据;
所述存储单元,用于存储对应级别的密钥和各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
所述选择单元,用于根据所述用户卡的用户信息选择所述存储单元存储的各级别的下级密钥的密钥计算规则;
所述计算单元,用于获取所述存储单元存储的对应级别的密钥,根据获取的密钥,使用所述选择单元选择的各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
所述验证单元,用于将所述计算单元计算得到的最后一级密钥作为所述用户卡的验证密钥,使用所述验证密钥验证所述用户卡的加密密钥。
根据本发明的上述装置,所述选择单元,包括:方法选择子单元、参数选择子单元和密钥选择子单元;
所述方法选择子单元,用于选取所述存储单元存储的多种计算方法之一为计算每一级下级密钥时的计算方法;或选取与所述用户信息中携带的算法标识对应的计算方法为计算每一级下级密钥时的计算方法;
所述参数选择子单元,用于根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息;选择所述各级归属地信息和用户卡标识信息作为计算各级别的下级密钥的对应计算参数;
所述密钥选择子单元,用于选取本地存储的多个密钥中与所述用户信息中携带的密钥索引对应级别的密钥。
本发明实施例提供的密钥管理方法和系统、密钥生成及认证方法和装置,应用服务器接收所述用户卡发送的认证数据;根据所述认证数据中包含的用户信息选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则;获取本地存储的与所述应用服务器级别对应的密钥;根据获取的与所述应用服务器级别对应的密钥,使用所述各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;将计算得到的最后一级密钥作为所述用户卡的验证密钥;使用所述验证密钥验证所述用户卡的加密密钥。通过上级密钥和相应的下级密钥计算规则计算各下级密钥,得到用户卡的验证密钥,采用这种分级生成的方式生成验证用户卡加密密钥的验证密钥、实现了验证密钥的分级生成及管理,使得下级密钥的生成过程可以重现,服务器只需要存储对应级别的密钥和计算规则即可,解决了服务器中需要存储大量验证密钥及其与用户卡加密密钥的映射关系的问题,减轻了服务器的负担且便于密钥管理。
附图说明
图1为本发明实施例中密钥分级管理方法/系统的示意图;
图2为本发明实施例中用户卡验证密钥生成方法的流程图;
图3为本发明实施例中分级计算用户卡验证密钥的示意图;
图4为本发明实施例中计算#1用户卡省级密钥的示意图;
图5为本发明实施例中计算#1用户卡验证密钥的示意图;
图6为本发明实施例中计算#2用户卡验证密钥的示意图;
图7为本发明实施例中计算#3用户卡省级密钥的示意图;
图8为本发明实施例中计算#3用户卡验证密钥的示意图;
图9为本发明实施例中用户卡验证密钥生成装置的结构示意图;
图10为本发明实施例中用户卡密钥认证方法的流程图;
图11为本发明实施例中用户卡密钥认证装置的结构示意图。
具体实施方式
本发明实施例提供一种密钥分级管理方法及系统,如图1所示。该方法具体包括:
种子密钥和各级别的下级密钥的密钥计算规则存储到第一级应用服务器中。
根据种子密钥采用二级密钥计算规则计算得到二级密钥;
根据二级密钥采用三级密钥计算规则计算可以得到三级密钥;
依此类推,
根据n-1级密钥采用n级密钥计算规则计算可以得到n级密钥;
根据N-1级密钥采用N级密钥计算规则计算可以得到N级密钥。
其中,0<n<N,N为的正整数,且N≥2;计算规则是指计算各级别的下级密钥的计算方法和计算参数。
二级密钥、三级密钥、......、N级密钥均为下级密钥,每一级下级密钥均由其上一级密钥和本级的密钥计算规则生成。下级密钥存储在对应级别的下级应用服务器中。
同时下级应用服务器中还存储有低于其对应级别的各级别的下级密钥的密钥计算规则。
与上述密钥分级管理方法对应的密钥分级管理系统,包括:至少两级应用服务器。
第一级应用服务器,用于存储种子密钥和各级别的下级密钥的密钥计算规则。
下级应用服务器,用于存储对应级别的下级密钥,以及存储低于其对应级别的各级别的下级密钥的密钥计算规则。
下级应用服务器,可以包括:二级应用服务器、三级应用服务器、......、N级应用服务器;其中,N≥2。
二级应用服务器,用于存储对应级别的二级密钥及二级以下各级别的下级密钥的计算规则;
n级应用服务器,用于存储对应级别的n级密钥及n级以下各级别的下级密钥的计算规则;
N级应用服务器,用于存储对应级别的N级密钥及N级以下各级别的下级密钥的计算规则。
系统中的下级应用服务器,包括二级应用服务器、三级应用服务器、......、N级应用服务器,同一级别的应用服务器其数量都可以为多个。
如二级应用服务器可以包括:二级应用服务器1、二级应用服务器2、......、二级应用服务器X。
三级应用服务器可以包括:三级应用服务器1、三级应用服务器2、......、三级应用服务器X。
N级应用服务器可以包括:N级应用服务器1、N级应用服务器2、......、N级应用服务器X。
每个应用服务器中存储有与各自的级别对应的密钥。
特别的,只设有第一级应用服务器、只进行一次密钥计算的情况,可以看做密钥分级管理的特例,此时,第一级应用服务器中只存储有种子密钥和二级密钥的计算规则,通过计算得到的二级密钥即可,此时该二级密钥即为用户卡验证密钥。
本发明实施例提供一种用户卡验证密钥生成方法,网络侧仅需要保存少量的种子密钥,还可以存储少量的对应级别的下级密钥,然后通过保存的种子密钥或对应级别的下级密钥生成相应用户卡的验证密钥。其流程如图2所示,执行步骤如下:
步骤S101:接收用户卡发送的用户信息。
且根据预先设定的规则,发送的用户信息中还可以携带有算法标识和密钥索引。
特别的,接收用户卡的用户信息的可以是第一级应用服务器(中央服务器),也可以是各个下级应用服务器。
可以预先设定访问规则,例如:当只设有第一级应用服务器时,用户卡直接访问第一级应用服务器;当设有下级应用服务器服务器时,用户卡访问所属的下级应用服务器。
第一级应用服务器存储的密钥为种子密钥。
下级的应用服务器存储的密钥为根据所述种子密钥,以及相应的各级的计算规则,计算得到的与该应用服务器级别对应级别的密钥。
例如:对某一项全网业务而言,在前期用户量比较小时,可以由中央服务器(该服务器或相应的加密机中存放种子密钥)来为所有的用户服务;随着业务的发展,用户逐渐增多,当中央服务器无法承担超大数据量的用户时,若某一个地方的(例如:上海)的用户量增长特别明显,用户量比较庞大,则可以在上海单独架设下级应用服务器(即第二级应用服务器),上海的用户则可以直接访问该第二级应用服务器。当然根据业务的发展情况,还可以在架设再下一级的下级应用服务器(例如:上海的某一个区县单独架设一个第三级应用服务器)。而其他没有单独架设服务器的区域的用户则直接访问中央服务器。根据用户增长情况分级架设服务器的方法可便于业务的拓展,便于用户的分地域管理。
步骤S102:选择本地存储的该应用服务器级别以下的各级别的下级密钥的密钥计算规则。
其中,密钥计算规则包括密钥的计算方法和计算参数。选择本地存储的各级别的下级密钥的密钥计算规则,包括:选择计算各级别的下级密钥的计算方法和计算参数。
其中,各级计算方法并不唯一,可以是任何一种强度足够大的密码算法,例如:三重数据加密标准-加密字组链接(Triple Data Encryption Standard-Cipher Block Chaining,3DES-CBC)算法、高级加密标准-加密字组链接(Advanced Encryption Standard-Cipher Block Chaining,AES-CBC)算法等,当然也可以是多种算法的组合。
选择计算各级别的下级密钥的计算方法包括下列两种情况:
(1)应用服务器任意选取本地存储的多种计算方法之一作为计算每一级下级密钥时的计算方法。此种情况下用户卡发送的用户信息中可以不携带算法标识。
(2)选取与用户卡发送的用户信息中携带的算法标识对应计算方法作为计算每一级下级密钥时的计算方法。
例如:应用服务器中存储有五种计算方法,算法标识分别为:1、2、3、4、5。若用户卡发送的用户信息中携带有算法标识1,则采用第一种方法计算各下级密钥;若户卡发送的用户信息中携带有算法标识2,则采用第二种方法计算各下级密钥;当需要计算多级低于该应用服务器对应级别的下级密钥时,可以为每一级携带不同的算法标识。
选择计算各级别的下级密钥的计算参数,具体为:根据所述用户信息,例如:用户卡号码等,确定出所述用户卡的各级归属地信息和用户卡标识信息,例如:用户卡标识信息可以包括国际移动用户标识(International MobileSubscriber Identity,IMSI)或密钥Key类型等,选择所述各级归属地信息和用户卡标识信息作为计算各级别的下级密钥的对应计算参数。
例如:一个用户卡的归属地信息可以分为若干级,如:省编码、市编码等,在计算验证密钥时分别作为计算各下级密钥的计算参数,省编码作为一级计算参数,市编码作为二级计算参数等;IMSI或Key类型等用户卡标识信息作为最低级的计算参数(例如:三级分散参数),保证每个用户卡计算得到的验证密钥的互异性。
步骤S103:获取本地存储的与该应用服务器级别对应的密钥。
当本地存储的对应级别的密钥只有一个时,使用存储的这一个对应级别的密钥,此种情况下用户卡发送的信息中可以不携带密钥索引。
当本地存储的对应级别的密钥为多个时,选取本地存储的多个密钥中与接收到的用户信息中携带的密钥索引对应的密钥。
特别的,若接收用户卡用户信息的是最高级的第一级应用服务器,则确定出的第一级应用服务器中存储的种子密钥,则种子密钥即为第一级应用服务器的对应级别的密钥;若接收用户卡认证数据的是各下级应用服务器,则其中存储有与该应用服务器级别对应级别的密钥。
沿用上边的例子,中央服务器中存储有原始的种子密钥;而上海的应用服务器专为上海的用户服务,其中存储有上海的“省级密钥”。
步骤S104:根据确定出的计算规则和获取的对应级别的密钥计算用户卡的验证密钥。
根据获取的对应级别的密钥和选择的各级别的下级密钥的密钥计算规则(包括计算参数和计算方法),分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;并将计算得到的最后一级密钥作为所述用户卡的验证密钥。
下面举例说明用户卡验证密钥的生成过程。以采用三级生成体系为例,图3为分级计算用户卡验证密钥的示意图。
例如:图3所示的北京的某一个用户A,使用其所拥有的#1用户卡访问中央服务器,则中央服务器接收其发送的用户信息。发现请求服务的用户是北京的,则根据中央服务器中存储的对应级别的密钥和北京的省公司编码生成下级密钥,即北京的省级密钥,然后再根据#1用户卡的用户卡标识信息生成特定于该#1用户卡的验证密钥。
确定出#1用户卡的计算参数、计算方法,以及与所访问的服务器对应级别的密钥,计算#1用户卡验证密钥的过程如下:
假设中央服务器中存储的对应级别的密钥,即种子密钥为:XXXXXXXX,。
计算二级密钥(即省级密钥)的计算参数为其归属地信息:北京的省公司编码11111111。
计算三级密钥(即用户卡的验证密钥)的计算参数为#1用户卡的用户卡标识信息:例如IMSI,为AAAAAAA。
则根据中央服务器中存储的对应级别的密钥和二级密钥的计算参数和计算方法计算二级密钥(省级密钥)的计算流程如图4所示。
计算得到北京的省级密钥:YYYYYYYY。
根据北京的省级密钥和三级密钥计算参数和计算方法计算三级密钥(该用户卡的验证密钥)的计算流程如图5所示。
计算得到该#1用户卡的验证密钥:ZZZZZZZZ。
例如:图3所示的北京某一个用户B,使用其所拥有的#2用户卡直接访问北京的应用服务器,其#2用户卡验证密钥的计算方法如下:
北京的应用服务器为第二级应用服务器,其中存储的对应级别的密钥为:北京的省级密钥YYYYYYYY。
计算三级密钥(即用户卡的验证密钥)的计算参数为#2用户卡的用户卡标识信息:例如IMSI,为BBBBBBBB。
根据北京的省级密钥和三级密钥计算参数和计算方法计算三级密钥(该用户卡的验证密钥)的计算流程如图6所示。
计算得到该#2用户卡的验证密钥:Z’Z’Z’Z’Z’Z’Z’Z’。
又例如:上海的某一个用户C,使用其所拥有的#3用户卡访问中央服务器,则中央服务器接收其发送的用户信息。并确定出计算参数、计算方法和对应级别的密钥,其#3用户卡验证密钥的计算过程如下:
假设中央服务器中存储的对应级别的密钥,即种子密钥为:XXXXXXXX,。
计算二级密钥(即省级密钥)的计算参数为其归属地信息:上海的省公司编码22222222。
计算三级密钥(即用户卡的验证密钥)的计算参数为#3用户卡的用户卡标识信息:例如IMSI,为CCCCCCCC。
则根据中央服务器中存储的对应级别的密钥和二级密钥的计算参数和计算方法计算二级密钥(省级密钥)的计算流程如图7所示。
计算得到上海的省级密钥:SSSSSSSS
根据上海的省级密钥和和三级密钥计算参数和计算方法计算三级密钥(该用户卡的验证密钥)的计算流程如图8所示。
计算得到该#3用户卡的验证密钥:HHHHHHHH。
根据本发明的上述用户卡验证密钥生成方法,可以构建一种用户卡验证密钥生成装置,如图9所示,包括:存储模块101、选择模块102、计算模块103和确定模块104。
存储模块101,用于存储对应级别的密钥和各级别的下级密钥的密钥计算规则。
选择模块102,用于根据所述用户卡的用户信息选择存储模块101存储的各级别的下级密钥的密钥计算规则。
较佳的,选择模块102,包括:方法选择子模块1021和参数选择子模块1022。
方法选择子模块1021,用于从存储模块101存储的各级别的下级密钥的多种计算方法中分别选取一种。
参数选择子模块1022,用于根据用户卡的用户信息确定出该用户卡的各级归属地信息和用户卡标识信息,作为计算各级别的下级密钥的对应计算参数。
计算模块103,用于获取存储模块101存储的对应级别的密钥,根据获取的密钥,使用选择模块102选择的各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成。
确定模块104,用于确定计算模块103计算得到的最后一级密钥为该用户卡的验证密钥。
当用户信息中可以携带算法标识和/或密钥索引时,方法选择子模块1021,还用于选取与用户信息中携带的算法标识对应的计算方法为计算每一级下级密钥时的计算方法。
且选择模块102,还包括:密钥选择子模块1023,用于选取存储模块101存储的多个密钥中与用户信息中携带的密钥索引对应的密钥。
本发明实施例提供一种用户卡密钥认证方法,网络侧仅需要保存少量的种子密钥,然后通过保存的种子密钥生成相应用户卡的验证密钥,对用户卡使用的密钥进行验证。本发明方法的流程如图10所示,其执行步骤如下:
步骤S201:接收用户卡发送的认证数据以及第一信息验证码(MessageAuthentication Codes,MAC)MAC1。
根据预先设定的规则,认证数据中包含的用户信息中可以携带算法标识和密钥索引等信息。
第一信息验证码MAC1为采用用户卡拥有的加密密钥对所发送的认证数据进行加密计算得到。
特别的,接收用户卡发送的认证数据的可以是第一级应用服务器(中央服务器),也可以是各个下级应用服务器。
第一级应用服务器存储的密钥为种子密钥。
下级的应用服务器存储的密钥为根据所述种子密钥,以及相应的各级的计算规则,计算得到的与该应用服务器级别对应的级别的密钥。
步骤S202:选择本地存储的该应用服务器级别以下的各级别的下级密钥的密钥计算规则。
具体同步骤S102,在此不再赘述。
步骤S203:获取本地存储的与该应用服务器级别对应的密钥。
具体同步骤S103,在此不再赘述。
步骤S204:根据确定出的计算规则和获取的对应级别的密钥计算用户卡的验证密钥。
特别的,应用服务器和加密机可以是分开的,则此时将选择的各级别的下级密钥计算规则、对应级别的密钥,以及MAC1通知给加密机,由加密机根据选择的计算规则和获取的本级密钥计算用户卡的验证密钥。若对应级别的密钥和下级密钥计算规则存储在接收认证数据的第一级应用服务器或中间各级应用服务器中,则该步骤需要将各级计算参数、以及对应级别的密钥和下级密钥计算规则发送给加密机;若对应级别的密钥和下级密钥计算规则存储在加密机中,则该步骤除了发送各级计算参数外、还发送的给加密机是相应的对应级别的密钥和下级密钥计算规则的指示信息。
用户卡验证密钥的具体计算过程,同步骤S104,此处不再赘述。
步骤S205:使用所述验证密钥验证用户卡的加密密钥。
获取接收到的第一信息验证码MAC1。
使用计算得到的该用户卡的验证密钥对接收到的认证数据进行加密运算,得到第二信息验证码MAC2。
比较MAC1和MAC2是否相同,若相同则密钥验证通过。
步骤S206:返回验证结果。
根据上述用户卡密钥认证方法,可以构建一种用户卡密钥认证装置,如图11所示,包括:接收单元201、存储单元202、选择单元203、计算单元204和验证单元205;
接收单元201,用于接收用户卡发送的认证数据。
存储单元202,用于存储对应级别的密钥和各级别的下级密钥的密钥计算规则。
选择单元203,用于根据用户卡的用户信息选择存储单元202存储的各级别的下级密钥的密钥计算规则。
较佳的,选择单元203,进一步可以包括:方法选择子单元2031、参数选择子单元2032和密钥选择子单元2033;
方法选择子单元2031,用于选取存储单元202存储的多种计算方法之一为计算每一级下级密钥时的计算方法;或选取与接收单元201接收到的认证数据中包含的用户信息中携带的算法标识对应计算方法为计算每一级下级密钥时的计算方法。
参数选择子单元2032,用于根据接收单元201接收到的认证数据中包含的用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息;选择所述各级归属地信息和用户卡标识信息作为计算各级别的下级密钥的对应计算参数。
密钥选择子单元2033,用于选取存储单元202存储的多个密钥中与所述用户信息中携带的密钥索引对应级别的密钥。
计算单元204,用于获取存储单元202存储的对应级别的密钥,根据获取的密钥,使用选择单元203选择的各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成。
验证单元205,用于将计算单元204计算得到的最后一级密钥作为所述用户卡的验证密钥,使用该验证密钥验证该用户卡的加密密钥。
本发明实施例提供的密钥管理方法和系统、密钥生成及认证方法和装置,通过应用服务器接收用户卡发送的认证数据;根据认证数据中包含的用户信息选择本地存储的各下级密钥的密钥计算规则;获取本地存储的对应级别的密钥,使用各下级密钥的密钥计算规则,分别计算出各下级密钥;将计算得到的最后一级密钥作为用户卡的验证密钥;使用验证密钥验证所述用户卡的加密密钥。通过上级密钥和相应的计算规则生成下级密钥,得到用户卡的验证密钥,这种分级生成验证用户卡加密密钥的对应验证密钥的方法、实现了验证密钥的分级生成及管理,服务器只需要存储本级密钥和计算规则即可,解决了服务器中需要存储大量验证密钥的问题,且便于密钥管理。
下级密钥通过一定的计算规则由上级密钥计算获得,使得下级密钥的生成过程可以重现,这样应用服务器不再需要存储大数据量的与各用户卡所共享的私密密钥对,应用服务器只需要存储本级密钥和计算规则,如:最高级的应用服务器只需存储原始的种子密钥和各下级应用服务器中存储根据种子密钥计算得到的少量对应级别的密钥,即可根据用户卡的归属地信息和用户卡标识信息计算得到任何一个地域的任何一张卡片的验证密钥。
当某个区域的业务量增多的时,增设只为本区域用户服务的下级应用服务器,将计算出的本区域的中间级密钥,存储在该下级应用服务器中,该区域的用户直接访问该下级应用服务器,计算用户卡的验证密钥避免了重复计算该应用服务器的对应级别密钥的过程,同时也避免了在下机应用服务器中大量存储与每张用户卡所共享的验证密钥,也不再需要维护验证密钥与用户卡的映射关系。使得应用服务器能够从用户卡密钥管理和维护的繁重工作中解脱出来。
由于不同的用户卡拥有不同的个性化信息(IMSI或key类型等),因此以归属地信息和个性化信息作为各级计算参数,使得计算出的任一用户卡的验证密钥与用户卡之间具有固定的对应关系,又可保证不同用户卡间密钥的互异性,每一个用户都能与所述级别的应用服务器共享一对/几对互不相同的私密密钥,且应用服务器中不用再存储用户卡与私密密钥对之间的映射关系,减轻了应用服务器的负担,降低了维护难度。
同时,种子密钥或对应级别的密钥可以存储在与应用服务器分离的加密机中,且存储在加密机安全存储区。用户卡验证密钥的生成亦由加密机内部完成,无需应用服务器参与,进一步提高了整个密钥体系的安全性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种密钥管理方法,其特征在于,包括:
将种子密钥和各级别的下级密钥的密钥计算规则存储到第一级应用服务器中;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
在下级应用服务器中存储对应级别的下级密钥,以及存储低于该对应级别的各级别的下级密钥的密钥计算规则;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成。
2.一种密钥管理系统,包括至少两级应用服务器,其特征在于,第一级应用服务器,用于存储种子密钥和各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
下级应用服务器,用于存储对应级别的下级密钥,以及存储低于该对应级别的各级别的下级密钥的密钥计算规则;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成。
3.一种用户卡验证密钥生成方法,其特征在于,包括:
应用服务器根据用户卡的用户信息选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
获取本地存储的与所述应用服务器级别对应的密钥;
根据获取的与所述应用服务器级别对应的密钥,使用所述各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
将计算得到的最后一级密钥作为所述用户卡的验证密钥。
4.如权利要求3所述的方法,其特征在于,所述选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则,包括:
分别从本地存储的各级别的下级密钥的多种计算方法中选取一种;
根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息,作为计算相应级别的下级密钥的计算参数。
5.如权利要求4所述的方法,其特征在于,从本地存储的各级别的下级密钥的多种计算方法中选取一种,具体为:
从本地存储的各级别的下级密钥的多种计算方法中任选一种,或者根据所述用户信息中携带的算法标识选择对应的计算方法。
6.如权利要求4或5所述的方法,其特征在于,所述用户卡发送的用户信息中还携带密钥索引;
所述获取本地存储的与所述应用服务器级别对应的密钥,具体包括:选取本地存储的多个密钥中与所述密钥索引对应的密钥。
7.一种用户卡验证密钥生成装置,其特征在于,包括:存储模块、选择模块、计算模块和确定模块;
所述存储模块,用于存储对应级别的密钥和各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
所述选择模块,用于根据所述用户卡的用户信息选择所述存储模块存储的各级别的下级密钥的密钥计算规则;
所述计算模块,获取所述存储模块存储的对应级别的密钥,根据获取的密钥,使用所述选择模块选择的各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
所述确定模块,用于确定所述计算模块计算得到的最后一级密钥为所述用户卡的验证密钥。
8.如权利要求7所述的装置,其特征在于,所述选择模块,包括:方法选择子模块和参数选择子模块;
所述方法选择子模块,用于从所述存储模块存储的各级别的下级密钥的多种计算方法中分别选取一种;
所述参数选择子模块,用于根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息,作为计算各级别的下级密钥的对应计算参数。
9.如权利要求8所述的装置,其特征在于,所述方法选择子模块,还用于选取与用户信息中携带的算法标识对应的计算方法。
10.如权利要求8或9所述的装置,其特征在于,所述选择模块,还包括:
密钥选择子模块,用于选取所述存储模块存储的多个密钥中与所述用户信息中携带的密钥索引对应的密钥。
11.一种用户卡密钥认证方法,其特征在于,包括:
应用服务器接收所述用户卡发送的认证数据;
根据所述认证数据中包含的用户信息选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
获取本地存储的与所述应用服务器级别对应的密钥;
根据获取的与所述应用服务器级别对应的密钥,使用所述各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
将计算得到的最后一级密钥作为所述用户卡的验证密钥;
使用所述验证密钥验证所述用户卡的加密密钥。
12.如权利要求11所述的方法,其特征在于,所述选择本地存储的所述应用服务器级别以下的各级别的下级密钥的密钥计算规则,包括:
分别从本地存储的各级别的下级密钥的多种计算方法中选取一种;
根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息,作为计算相应级别的下级密钥的计算参数。
13.如权利要求12所述的方法,其特征在于,从本地存储的各级别的下级密钥的多种计算方法中选取一种,具体为:
从本地存储的各级别的下级密钥的多种计算方法中任选一种,或者根据所述用户信息中携带的算法标识选择对应的计算方法。
14.如权利要求12或13所述的方法,其特征在于,还包括在所述用户信息中携带密钥索引;
所述获取本地存储的与所述应用服务器级别对应的密钥,具体包括:选取本地存储的多个密钥中与所述密钥索引对应的密钥。
15.一种用户卡密钥认证装置,其特征在于,包括:接收单元、存储单元、选择单元、计算单元和验证单元;
所述接收单元,用于接收所述用户卡发送的认证数据;
所述存储单元,用于存储对应级别的密钥和各级别的下级密钥的密钥计算规则;其中,所述密钥计算规则包括:密钥的计算方法和计算参数;
所述选择单元,用于根据所述用户卡的用户信息选择所述存储单元存储的各级别的下级密钥的密钥计算规则;
所述计算单元,用于获取所述存储单元存储的对应级别的密钥,根据获取的密钥,使用所述选择单元选择的各级别的下级密钥的密钥计算规则,分别计算出各下级密钥;其中,每一级下级密钥由其上一级密钥和本级的密钥计算规则生成;
所述验证单元,用于将所述计算单元计算得到的最后一级密钥作为所述用户卡的验证密钥,使用所述验证密钥验证所述用户卡的加密密钥。
16.如权利要求15所述的装置,其特征在于,所述选择单元,包括:方法选择子单元、参数选择子单元和密钥选择子单元;
所述方法选择子单元,用于选取所述存储单元存储的多种计算方法之一为计算每一级下级密钥时的计算方法;或选取与所述用户信息中携带的算法标识对应的计算方法为计算每一级下级密钥时的计算方法;
所述参数选择子单元,用于根据所述用户信息确定出所述用户卡的各级归属地信息和用户卡标识信息;选择所述各级归属地信息和用户卡标识信息作为计算各级别的下级密钥的对应计算参数;
所述密钥选择子单元,用于选取本地存储的多个密钥中与所述用户信息中携带的密钥索引对应级别的密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102227809A CN101686123B (zh) | 2008-09-24 | 2008-09-24 | 密钥管理方法和系统、密钥生成及认证方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102227809A CN101686123B (zh) | 2008-09-24 | 2008-09-24 | 密钥管理方法和系统、密钥生成及认证方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101686123A CN101686123A (zh) | 2010-03-31 |
CN101686123B true CN101686123B (zh) | 2012-01-25 |
Family
ID=42049112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102227809A Active CN101686123B (zh) | 2008-09-24 | 2008-09-24 | 密钥管理方法和系统、密钥生成及认证方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101686123B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457963B (zh) * | 2012-05-28 | 2017-06-27 | 联想(北京)有限公司 | 存储文件的方法及分布式存储系统 |
CN103684759A (zh) * | 2012-09-11 | 2014-03-26 | 中国银联股份有限公司 | 一种终端数据加密方法和装置 |
CN104426886B (zh) * | 2013-09-05 | 2018-06-01 | 国家广播电影电视总局广播科学研究院 | 一种数字媒体内容保护方法及装置、服务器、终端 |
CN107154916A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种认证信息获取方法、提供方法及装置 |
CN107070881B (zh) * | 2017-02-20 | 2020-11-27 | 北京古盘创世科技发展有限公司 | 密钥管理方法、系统及用户终端 |
CN111385085B (zh) * | 2018-12-27 | 2022-12-30 | 山东量子科学技术研究院有限公司 | 一种量子三级密钥体系实现方法及系统 |
CN109873828B (zh) * | 2019-03-05 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 资源管理方法、装置、设备和存储介质 |
CN112448811A (zh) * | 2019-09-03 | 2021-03-05 | 上海云从汇临人工智能科技有限公司 | 一种数据安全管理方法、数据安全管理装置及数据安全管理系统 |
CN116488813B (zh) * | 2023-06-26 | 2023-08-18 | 合众新能源汽车股份有限公司 | 车辆及其通信安全认证方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1669265A (zh) * | 2002-05-15 | 2005-09-14 | 伊露西斯有限公司 | 在计算机系统中使用的隐藏的链接动态密钥管理器 |
CN101217362A (zh) * | 2007-12-29 | 2008-07-09 | 中山大学 | 一种基于动态随机化drntru公钥加密系统建立的rfid通信安全机制 |
-
2008
- 2008-09-24 CN CN2008102227809A patent/CN101686123B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1669265A (zh) * | 2002-05-15 | 2005-09-14 | 伊露西斯有限公司 | 在计算机系统中使用的隐藏的链接动态密钥管理器 |
CN101217362A (zh) * | 2007-12-29 | 2008-07-09 | 中山大学 | 一种基于动态随机化drntru公钥加密系统建立的rfid通信安全机制 |
Also Published As
Publication number | Publication date |
---|---|
CN101686123A (zh) | 2010-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101686123B (zh) | 密钥管理方法和系统、密钥生成及认证方法和装置 | |
KR101354388B1 (ko) | 일회성 카드번호 생성방법 | |
CN100449508C (zh) | 数据通信设备和用于管理数据通信设备的存储器的方法 | |
KR101107850B1 (ko) | 전송 방법, 전송 시스템, 신뢰받는 서비스 관리자, 컴퓨터 판독가능 매체 및 모바일 폰 | |
EP2924640A1 (en) | Mobile payment system and mobile payment method using dynamic track 2 information | |
CN101309267B (zh) | 认证信息管理系统、服务器、方法和程序 | |
CN102136085B (zh) | 电信智能卡及基于电信智能卡的非接触应用管理方法 | |
CN105144670A (zh) | 启用无线联网的个人标识系统 | |
WO2009040714A1 (en) | Trusted service manager managing reports of lost or stolen mobile communication devices | |
CN102314731A (zh) | 移动支付方法和用于实现该移动支付方法的设备 | |
CN100422961C (zh) | 数据通信设备以及数据通信设备的存储器的管理方法 | |
CN103297236B (zh) | 用户身份验证授权系统 | |
CN101729503A (zh) | 密钥分发方法和系统 | |
CN108460875A (zh) | 一种基于动态二维码的门禁认证方法及装置 | |
CN103107888B (zh) | 面向移动终端的动态多属性多级别的身份认证方法 | |
CN103856940A (zh) | 安全认证方法和系统 | |
KR20070030351A (ko) | 휴대전화기를 이용한 즉시 카드발급 방법 및 시스템 | |
WO2006003562A1 (en) | Method of choosing one of a multitude of data sets being registered with a device and corresponding device | |
CN111582935A (zh) | 一种基于区块链的积分互识方法及系统 | |
CN103235995A (zh) | 一种基于nfc手机的电子防伪和物流管理系统 | |
CN102521626B (zh) | 一种智能卡的多应用管理方法和系统 | |
CN101729246A (zh) | 密钥分发方法和系统 | |
CN105427102A (zh) | 基于金融ic卡的认证方法及其相应的设备和系统 | |
CN102473218B (zh) | 生成标识符的方法 | |
CN104361304A (zh) | 一种智能卡应用程序的下载方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |