一种实现密钥信息编解码的装置及其工作方法

文档序号:7808132阅读:213来源:国知局
一种实现密钥信息编解码的装置及其工作方法
【专利摘要】本发明公开一种实现密钥信息编解码的装置及其工作方法,其中,编码装置将密钥信息编码为统一格式的密钥文件,解码装置对密钥文件进行解码,得到密钥信息,使得认证系统能够对多个设备厂商配置的密钥信息执行统一的处理流程,减轻了认证系统的工作负担。
【专利说明】一种实现密钥信息编解码的装置及其工作方法

【技术领域】
[0001] 本发明涉及信息安全领域,特别涉及一种实现密钥信息编解码的装置及其工作方 法。

【背景技术】
[0002] 随着信息安全技术的发展,种子密钥作为数据处理过程中必不可少的参数,已广 泛应用于数据加解密、身份认证和完整性验证等领域。
[0003] 现有技术中,设备厂商将包括种子密钥在内的密钥信息配置到认证系统中,认证 系统对多个设备厂商配置的密钥信息进行集成。为提高认证系统中的密钥信息的兼容性, 通常要求设备厂商使用统一格式的密钥文件配置密钥信息。
[0004] 然而,现有技术中并没有基于统一格式的密钥文件提供密钥信息的编解码方法, 导致认证系统无法对多个设备厂商配置的密钥信息执行统一的处理流程,从而加重了认证 系统的工作负担。


【发明内容】

[0005] 本发明提供了一种实现密钥信息编解码的装置及其工作方法,以解决现有技术中 认证系统工作负担重的缺陷。
[0006] 本发明提供了一种实现密钥信息编码的装置的工作方法,包括以下步骤:
[0007] S1、编码装置生成密钥容器节点,将所述密钥容器节点作为根节点添加到密钥文 件中;
[0008] S2、所述编码装置生成密钥包节点,将所述密钥包节点作为所述密钥容器节点的 子节点添加到所述密钥容器节点中;
[0009] S3、所述编码装置生成设备信息节点,将所述设备信息节点作为所述密钥包节点 的子节点添加到所述密钥包节点中;
[0010] S4、所述编码装置生成厂商节点和序列号节点,将所述厂商节点和所述序列号节 点作为所述设备信息节点的子节点添加到所述设备信息节点中,从密钥信息的密钥属性列 表中读取厂商信息和设备序列号,将所述厂商信息作为文本节点添加到所述厂商节点中, 将所述设备序列号作为文本节点添加到所述序列号节点中;
[0011] S5、所述编码装置生成密钥节点,将所述密钥节点作为所述密钥包节点的子节点 添加到所述密钥包节点中;
[0012] S6、所述编码装置从所述密钥属性列表中读取密钥标识、密钥算法信息和密钥明 文,根据所述密钥标识生成密钥标识节点,根据所述密钥算法信息生成密钥算法节点,将所 述密钥标识节点和所述密钥算法节点作为属性节点添加到所述密钥节点中;所述编码装置 生成数据节点,将所述数据节点作为所述密钥节点的子节点添加到所述密钥节点中;所述 编码装置生成密钥值节点,将所述密钥值节点作为所述数据节点的子节点添加到所述数据 节点中,将所述密钥明文或与所述密钥明文对应的密钥密文添加到所述密钥值节点中。
[0013] 本发明还提供了一种实现密钥信息解码的装置的工作方法,包括以下步骤:
[0014] S1、解码装置从密钥文件的根节点中查找密钥包节点,如果查找到,则执行步骤 S2 ;否则,显示错误信息,结束流程;
[0015] S2、所述解码装置从所述密钥包节点中查找设备信息节点,从所述设备信息节点 中查找厂商节点和序列号节点,获取所述厂商节点的子节点的文本内容,将获取到的文本 内容作为厂商信息进行保存,获取所述序列号节点的子节点的文本内容,将获取到的文本 内容作为设备序列号进行保存;
[0016] S3、所述解码装置从所述密钥包节点中查找密钥节点,如果查找到,则执行步骤 S4 ;否则,显示错误信息,结束流程;
[0017] S4、所述解码装置获取所述密钥节点中的密钥算法节点的属性值,将获取到的属 性值作为密钥算法信息进行保存;获取所述密钥节点中的密钥标识节点的属性值,将获取 到的属性值作为密钥标识进行保存;
[0018] S5、所述解码装置从所述密钥节点中查找数据节点,如果查找到,则执行步骤S6 ; 否则,显示错误信息,结束流程;
[0019] S6、所述解码装置从所述数据节点中查找密钥值节点,如果查找到,则执行步骤 S7 ;否则,显示错误信息,结束流程;
[0020] S7、所述解码装置从所述密钥值节点中获取密钥明文进行保存,
[0021] 或者,所述解码装置从所述密钥值节点中获取密钥密文,对所述密钥密文进行解 密,对解密得到的密钥明文进行保存。
[0022] 本发明还提供了一种编码装置,包括:
[0023] 读取模块,用于从密钥信息的密钥属性列表中读取厂商信息、设备序列号、密钥标 识、密钥算法信息和密钥明文;
[0024] 生成模块,用于生成密钥容器节点,将所述密钥容器节点作为根节点添加到密钥 文件中;生成密钥包节点,将所述密钥包节点作为所述密钥容器节点的子节点添加到所述 密钥容器节点中;生成设备信息节点和密钥节点,将所述设备信息节点和所述密钥节点作 为所述密钥包节点的子节点添加到所述密钥包节点中;
[0025] 生成厂商节点和序列号节点,将所述厂商节点和所述序列号节点作为所述设备信 息节点的子节点添加到所述设备信息节点中;将所述读取模块读取到的所述厂商信息作为 文本节点添加到所述厂商节点中,将所述读取模块读取到的所述设备序列号作为文本节点 添加到所述序列号节点中;
[0026] 根据所述读取模块读取到的所述密钥算法信息生成密钥算法节点,根据所述读取 模块读取到的密钥标识生成密钥标识节点,将所述密钥标识节点和所述密钥算法节点作为 属性节点添加到所述密钥节点中;生成数据节点,将所述数据节点作为所述密钥节点的子 节点添加到所述密钥节点中;生成密钥值节点,将所述密钥值节点作为所述数据节点的子 节点添加到所述数据节点中;
[0027] 添加模块,用于将所述读取模块读取到的所述密钥明文或与所述密钥明文对应的 密钥密文添加到所述密钥值节点中。
[0028] 本发明还提供了一种解码装置,包括:
[0029] 查找模块,用于从密钥文件的根节点中查找密钥包节点,如果查找到所述密钥包 节点,则从所述密钥包节点中查找设备信息节点,从所述设备信息节点中查找厂商节点、序 列号节点和密钥节点;如果查找到所述密钥节点,则从所述密钥节点中查找数据节点;如 果查找到所述数据节点,则从所述数据节点中查找密钥值节点;
[0030] 第一获取模块,用于在所述查找模块查找到所述厂商节点时,获取所述厂商节点 的子节点的文本内容,将获取到的文本内容作为厂商信息进行保存;在所述查找模块查找 到所述序列号节点时,获取所述序列号节点的子节点的文本内容,将获取到的文本内容作 为设备序列号进行保存;在所述查找模块查找到所述密钥节点时,获取所述密钥节点中的 密钥算法节点的属性值,将获取到的属性值作为密钥算法信息进行保存;获取所述密钥节 点中的密钥标识节点的属性值,将获取到的属性值作为密钥标识进行保存;
[0031] 第二获取模块,用于在所述查找模块查找到密钥值节点时,从所述密钥值节点中 获取密钥明文进行保存,
[0032] 或者,从所述密钥值节点中获取密钥密文,对所述密钥密文进行解密,对解密得到 的密钥明文进行保存;
[0033] 显示模块,用于在所述查找模块没有查找到所述密钥包节点、所述密钥节点、所述 数据节点或所述密钥值节点时,显示错误信息。
[0034] 本发明达到的有益效果:编码装置将密钥信息编码为统一格式的密钥文件,解码 装置对密钥文件进行解码,得到密钥信息,使得认证系统能够对多个设备厂商配置的密钥 信息执行统一的处理流程,减轻了认证系统的工作负担。

【专利附图】

【附图说明】
[0035] 图1和图2为本发明实施例中的一种实现密钥信息编码的装置的工作方法流程 图;
[0036] 图3至图6为本发明实施例中的一种实现密钥信息解码的装置的工作方法流程 图;
[0037] 图7为本发明实施例中的一种编码装置的结构示意图;
[0038] 图8为本发明实施例中的一种解码装置的结构示意图。

【具体实施方式】
[0039] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0040] 本发明实施例提供了一种实现密钥信息编解码的装置及其工作方法,应用于包括 编码装置和解码装置的系统,其中,编码装置对密钥信息进行编码,生成密钥文件,该密钥 文件为XML文件;相应地,解码装置对密钥文件进行解码,得到密钥信息。
[0041] 其中,密钥信息可以包括密钥传输方式和至少一个密钥属性列表,每个密钥属性 列表包括厂商信息、设备序列号、密钥标识、密钥算法信息和密钥明文。当密钥传输方式为 密文传输时,密钥信息中还包括加密密钥名和加密密钥算法信息,且还可进一步包括MAC 密钥和MAC算法信息。
[0042] 基于上述密钥信息,本发明实施例提供了一种实现密钥信息编码的装置的工作方 法,如图1和图2所示,包括以下步骤:
[0043] 步骤101,编码装置生成密钥容器节点,将密钥容器节点作为根节点添加到密钥文 件中。
[0044] 具体地,编码装置生成密钥容器节点的起始标记和结束标记,将密钥容器节点的 起始标记和结束标记添加到密钥文件中。
[0045] 例如,编码装置在密钥文件中添加密钥容器节点的起始标记〈KeyContainer〉和 结束标记〈/KeyContainer〉。
[0046] 步骤102,编码装置从密钥信息中读取密钥传输方式,判断密钥传输方式是否为明 文传输,如果是,则执行步骤103 ;否则,则执行步骤117。
[0047] 具体地,编码装置可以判断密钥信息中的密钥传输方式是否为预设字符,如果是, 则确定密钥传输方式为明文传输,否则,确定密钥传输方式不是明文传输。
[0048] 例如,预设字符为"PLAIN"时,当密钥信息中的密钥传输方式为"PLAIN"时,编码 装置确定密钥传输方式为明文传输;当密钥信息中的密钥传输方式为"AES128"时,编码装 置确定密钥传输方式不是明文传输。
[0049] 步骤103,编码装置从密钥信息中选取一个未被处理过的密钥属性列表作为当前 列表。
[0050] 步骤104,编码装置生成密钥包节点,将密钥包节点作为密钥容器节点的子节点添 加到密钥容器节点中。
[0051] 具体地,编码装置生成密钥包节点的起始标记和结束标记,将密钥包节点的起始 标记和结束标记添加到密钥容器节点的起始标记和结束标记之间。
[0052] 例如,编码装置将密钥包节点的起始标记〈KeyPackage〉和结束标记〈/ KeyPackage〉添加到密钥容器节点的起始标记〈KeyContainer〉和结束标记〈/ KeyContainer> 之间。
[0053] 步骤105,编码装置生成设备信息节点,将设备信息节点作为密钥包节点的子节点 添加到密钥包节点中。
[0054] 具体地,编码装置生成设备信息节点的起始标记和结束标记,将设备信息节点的 起始标记和结束标记添加到密钥包节点的起始标记和结束标记之间。
[0055] 例如,编码装置将设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/ Deviceinfo〉添加到密钥包节点的起始标记〈KeyPackage〉和结束标记〈/KeyPackage〉之 间。
[0056] 步骤106,编码装置生成厂商节点,将厂商节点作为设备信息节点的子节点添加到 设备信息节点中。
[0057] 具体地,编码装置生成厂商节点的起始标记和结束标记,将厂商节点的起始标记 和结束标记添加到设备信息节点的起始标记和结束标记之间。
[0058] 例如,编码装置将厂商节点的起始标记〈Manufacturer〉和结束标记〈/ Manufacturer〉添加到设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉 之间。
[0059] 步骤107,编码装置从当前列表中读取厂商信息,将厂商信息作为文本节点添加到 厂商节点中。
[0060] 具体地,编码装置从当前列表中读取厂商信息,并将厂商信息添加到厂商节点的 起始标记和结束标记之间。
[0061] 例如,编码装置从当前列表中读取厂商信息"Manufacturer",并将厂商信息 "Manufacturer"添加到厂商节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉之 间。
[0062] 步骤108,编码装置生成序列号节点,将序列号节点作为设备信息节点的子节点添 加到设备信息节点中。
[0063] 具体地,编码装置生成序列号节点的起始标记和结束标记,将序列号节点的起始 标记和结束标记添加到设备信息节点的起始标记和结束标记之间。
[0064] 例如,编码装置将序列号节点的起始标记〈SerialNo〉和结束标记〈/SerialNo〉添 加到设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉之间。
[0065] 步骤109,编码装置从当前列表中读取设备序列号,将设备序列号作为文本节点添 加到序列号节点中。
[0066] 具体地,编码装置从当前列表中读取设备序列号,并在序列号节点的起始标记和 结束标记之间添加设备序列号。
[0067] 例如,编码装置从当前列表中读取设备序列号"987654321",并在序列号节点的起 始标记和结束标记之间添加设备序列号"987654321"。
[0068] 步骤110,编码装置生成密钥节点,将密钥节点作为密钥包节点的子节点添加到密 钥包节点中。
[0069] 具体地,编码装置生成密钥节点的起始标记和结束标记,将密钥节点的起始标记 和结束标记添加到密钥包节点的起始标记和结束标记之间。
[0070] 例如,编码装置将密钥节点的起始标记〈Key〉和结束标记〈/Key〉添加到密钥包节 点的起始标记〈KeyPackage〉和结束标记〈/KeyPackage〉之间。
[0071] 步骤111,编码装置从当前列表中读取密钥标识和密钥算法信息,根据密钥标识生 成密钥标识节点,根据密钥算法信息生成密钥算法节点,将密钥标识节点和密钥算法节点 作为属性节点添加到密钥节点中。
[0072] 具体地,编码装置从当前列表中读取密钥标识和密钥算法信息,将密钥标识作为 属性值生成密钥标识节点,将密钥算法信息作为属性值生成密钥算法节点,并在密钥节点 的起始标记中添加密钥标识节点和密钥算法节点。其中,密钥标识节点和密钥算法节点均 为属性节点,均包括属性名和属性值。
[0073] 例如,编码装置从当前列表中读取密钥标识"12345678"和密钥算法信息"urn: ietf:params:xml:ns:keyprov:pskc:hotp",根据密钥标识生成密钥标识节点,即,Id = 〃12345678〃 ;根据密钥算法信息生成密钥算法节点,即,Algorithm = 〃urn:ietf:params:x ml :ns:keyprov:pskc:hotp〃,并在密钥节点的起始标记〈Key〉中添加上述密钥标识节点和 密钥算法节点。
[0074] 其中,密钥标识节点包括属性名" Id"和属性值" 12345678",密钥算法节点包括属 性名 "Algorithm" 和属性值"urn: ietf :params:xml:ns:keyprov:pskc:hotp",添加上述信 息后,密钥节点的起始标记被更新为:〈Key Id = 〃12345678〃Algorithm = 〃urn:ietf:par ams: xml: ns:keyprov:pskc:hotp〃> 〇
[0075] 步骤112,编码装置生成数据节点,将数据节点作为密钥节点的子节点添加到密钥 节点中。
[0076] 具体地,编码装置生成数据节点的起始标记和结束标记,将数据节点的起始标记 和结束标记添加到密钥节点的起始标记和结束标记之间。
[0077] 例如,编码装置将数据节点的起始标记〈Data〉和结束标记〈/Data〉添加到密钥节 点的起始标记〈Key〉和结束标记〈/Key〉之间。
[0078] 步骤113,编码装置生成密钥值节点,将密钥值节点作为数据节点的子节点添加到 数据节点中。
[0079] 具体地,编码装置生成密钥值节点的起始标记和结束标记,在数据节点的起始标 记和结束标记之间添加密钥值节点的起始标记和结束标记。
[0080] 例如,编码装置在数据节点的起始标记〈Data〉和结束标记〈/Data〉之间添加密钥 值节点的起始标记〈Secret〉和结束标记〈/Secret〉。
[0081] 步骤114,编码装置生成第一明文节点,将第一明文节点作为密钥值节点的子节点 添加到密钥值节点中。
[0082] 具体地,编码装置生成第一明文节点的起始标记和结束标记,将第一明文节点的 起始标记和结束标记添加到密钥值节点的起始标记和结束标记之间。
[0083] 例如,编码装置在密钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉之间添 加第一明文节点的起始标记〈PlainValue〉和结束标记〈/PlainValue〉。
[0084] 步骤115,编码装置从当前列表中读取密钥明文,将密钥明文作为文本节点添加到 第一明文节点中。
[0085] 具体地,编码装置从当前列表中读取密钥明文,并在第一明文节点的起始标记和 结束标记之间添加密钥明文。
[0086] 例如,编码装置从当前列表中读取密钥明文"ΜΤΙζΝΑ = = ",并在第一明文节点的 起始标记〈PlainValue〉和结束标记〈/PlainValue〉之间添加密钥明文"ΜΤΙζΝΑ == "。 [0087] 通过执行上述操作,编码装置生成的密钥文件为:
[0088] <KeyContainer> <KeyPackage> <DeviceInfo> <Manufacturer>Manufacturer</Manufacturer> <Seria!No>987654321 </SerialNo> </DeviceInfo> <Kev Id=" 12345678" Algorithm="urn:ietf:params:xml:ns:keypiOv:pskc:hotp"> <Data> <Secret> <PlainValue>MTIzNA== </PlainValue>
[0089] </Secret> </Data> </Key> </KeyPackage> 〈/Key Container〉
[0090] 步骤116,编码装置判断密钥信息中是否存在未被处理过的密钥属性列表,如果 是,则返回步骤103 ;否则,结束流程。
[0091] 步骤117,编码装置生成加密密钥节点,将加密密钥节点作为密钥容器节点的子节 点添加到密钥容器节点中。
[0092] 具体地,编码装置生成加密密钥节点的起始标记和结束标记,将加密密钥节点的 起始标记和结束标记添加到密钥容器节点的起始标记和结束标记之间。
[0093] 例如,编码装置将加密密钥节点的起始标记〈EncryptionKey〉和结束标记〈/ EncryptionKey〉添加到密钥容器节点的起始标记〈KeyContainer〉和结束标记〈/ KeyContainer> 之间。
[0094] 步骤118,编码装置生成密钥名节点,将密钥名节点作为加密密钥节点的子节点添 加到加密密钥节点中。
[0095] 具体地,编码装置生成密钥名节点的起始标记和结束标记,将密钥名节点的起始 标记和结束标记添加到加密密钥节点的起始标记和结束标记之间。
[0096] 例如,编码装置将密钥名节点的起始标记<ds: KeyName〉和结束标记〈/ ds:KeyName>添加到加密密钥节点的起始标记〈EncryptionKey〉和结束标记〈/ EncryptionKey> 之间。
[0097] 步骤119,编码装置从密钥信息中读取加密密钥名,将加密密钥名作为文本节点添 加到密钥名节点中。
[0098] 具体地,编码装置从密钥信息中读取加密密钥名,将加密密钥名添加到密钥名节 点的起始标记和结束标记之间。
[0099] 例如,编码装置从密钥信息中读取加密密钥名"Pre-shared-key",将加密密钥名 "Pre-shared-key "添加到密钥名节点的起始标记和结束标记之间。
[0100] 步骤120,编码装置生成MAC方法节点,将MAC方法节点作为密钥容器节点的子节 点添加到密钥容器节点中。
[0101] 具体地,编码装置生成MAC方法节点的起始标记和结束标记,将MAC方法节点的起 始标记和结束标记添加到密钥容器节点的起始标记和结束标记之间。
[0102] 例如,编码装置将MAC方法节点的起始标记〈MACMethod〉和结束标记〈/ MACMethod〉添加到密钥容器节点的起始标记〈KeyContainer〉和结束标记〈/ KeyContainer> 之间。
[0103] 步骤121,编码装置从密钥信息中读取MAC算法信息,根据MAC算法信息生成MAC 算法节点,将MAC算法节点作为属性节点添加到MAC方法节点中。
[0104] 具体地,编码装置从密钥信息中读取MAC算法信息,将MAC算法信息作为属性值生 成MAC算法节点,将MAC算法节点添加到MAC方法节点的起始标记中。
[0105] 例如,编码装置从密钥信息中读取MAC算法信息,S卩,〃hmac-shal",将该MAC算 法信息作为属性值,生成MAC算法节点,即,Algorithm = hmac-shal,将上述MAC算法节 点添加到MAC方法节点的起始标记中,将MAC方法节点的起始标记更新为:〈MACMethod Algorithm = 〃hmac_shal〃>〇
[0106] 步骤122,编码装置生成MAC密钥节点,将MAC密钥节点作为MAC方法节点的子节 点添加到MAC方法节点中。
[0107] 具体地,编码装置生成MAC密钥节点的起始标记和结束标记,将MAC密钥节点的起 始标记和结束标记添加到MAC方法节点的起始标记和结束标记之间。
[0108] 例如,编码装置将MAC密钥节点的起始标记〈MACKey〉和结束标记〈/MACKey〉添加 到MAC方法节点的起始标记〈MACMethod〉和结束标记〈/MACMethod〉之间。
[0109] 步骤123,编码装置生成第二加密方法节点,将第二加密方法节点作为子节点添加 到MAC密钥节点中。
[0110] 具体地,编码装置生成第二加密方法节点,将第二加密方法节点添加到MAC密钥 节点的起始标记和结束标记之间。
[0111] 例如,编码装置将第二加密方法节点<xenc:EncryptionMethod/>添加到MAC密钥 节点的起始标记〈MACKey〉和结束标记〈/MACKey〉之间。
[0112] 步骤124,编码装置从密钥信息中读取加密密钥算法信息,根据加密密钥算法信息 生成第二加密密钥算法节点,将第二加密密钥算法节点作为属性节点添加到第二加密方法 节点中。
[0113] 具体地,编码装置从密钥信息中读取加密密钥算法信息,将加密密钥算法信息作 为属性值,生成第二加密密钥算法节点,将第二加密密钥算法节点添加到第二加密方法节 点中。
[0114] 例如,编码装置从密钥信息中读取加密密钥算法信息,即,〃aesl28-Cb C",将 上述加密密钥算法信息作为属性值,生成第二加密密钥算法节点,即,Algorithm = aesl28_cbc,将上述第二加密密钥算法节点添加到第二加密方法节点中,将第二加密方法 节点更新为:
[0115] <xenc:EncryptionMethod
[0116] Algorithm = "aesl28_cbc"/>。
[0117] 步骤125,编码装置生成第二密码数据节点,将第二密码数据节点作为MAC密钥节 点的子节点添加到MAC密钥节点中。
[0118] 具体地,编码装置生成第二密码数据节点的起始标记和结束标记,将第二密码数 据节点的起始标记和结束标记添加到MAC密钥节点的起始标记和结束标记之间。
[0119] 例如,编码装置将第二密码数据节点的起始标记<xenc:CipherData>和结束标记 </xenc:CipherData>添加到MAC密钥节点的起始标记〈MACKey〉和结束标记〈/MACKey〉之 间。
[0120] 步骤126,编码装置生成第二密码值节点,将第二密码值节点作为第二密码数据节 点的子节点添加到第二密码数据节点中。
[0121] 具体地,编码装置生成第二密码值节点的起始标记和结束标记,将第二密码值节 点的起始标记和结束标记添加到第二密码数据节点的起始标记和结束标记之间。
[0122] 例如,编码装置将第二密码值节点的起始标记<xenc:CipherValue>和结束标记 </xenc:CipherValue>添加到第二密码数据节点的起始标记<xenc:CipherData>和结束标 记〈/xenc: CipherData> 之间。
[0123] 步骤127,编码装置从密钥信息中读取MAC密钥,根据与密钥信息中的加密密钥名 对应的密钥,使用与密钥信息中的加密密钥算法信息对应的策略,对MAC密钥进行加密,将 加密得到的密文作为文本节点添加到第二密码值节点中。
[0124] 具体地,编码装置从密钥信息中读取MAC密钥,根据与密钥信息中的加密密钥名 对应的密钥,使用与密钥信息中的加密密钥算法信息对应的策略,对MAC密钥进行加密,将 加密得到的密文添加到第二密码值节点的起始标记和结束标记之间。
[0125] 例如,编码装置从密钥信息中读取MAC密钥,根据与密钥信息中的加密密钥名 "Pre-shared-key"对应的密钥,使用与密钥信息中的加密密钥算法信息"hmac-shal"对 应的策略,对MAC密钥进行加密,得到的密文为:ESIzRFVmd4iZABEiM0RVZgKn6WjLaTCl sbeBMSvIhRe jN9vJa2B01 SaMrR715w SX,将上述密文添加到第二密码值节点的起始标记 <xenc:CipherValue> 和结束标记 </xenc:CipherValue> 之间。
[0126] 步骤128,编码装置从密钥信息中选取一个未被处理过的密钥属性列表作为当前 列表。
[0127] 步骤129,编码装置生成密钥包节点,将密钥包节点作为密钥容器节点的子节点添 加到密钥容器节点中。
[0128] 具体地,编码装置生成密钥包节点的起始标记和结束标记,将密钥包节点的起始 标记和结束标记添加到密钥容器节点的起始标记和结束标记之间。
[0129] 例如,编码装置将密钥包节点的起始标记〈KeyPackage〉和结束标记〈/ KeyPackage〉添加到密钥容器节点的起始标记〈KeyContainer〉和结束标记〈/ KeyContainer> 之间。
[0130] 步骤130,编码装置生成设备信息节点,将设备信息节点作为密钥包节点的子节点 添加到密钥包节点中。
[0131] 具体地,编码装置生成设备信息节点的起始标记和结束标记,将设备信息节点的 起始标记和结束标记添加到密钥包节点的起始标记和结束标记之间。
[0132] 例如,编码装置将设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/ Deviceinfo〉添加到密钥包节点的起始标记〈KeyPackage〉和结束标记〈/KeyPackage〉之 间。
[0133] 步骤131,编码装置生成厂商节点,将厂商节点作为设备信息节点的子节点添加到 设备信息节点中。
[0134] 具体地,编码装置生成厂商节点的起始标记和结束标记,将厂商节点的起始标记 和结束标记添加到设备信息节点的起始标记和结束标记之间。
[0135] 例如,编码装置将厂商节点的起始标记〈Manufacturer〉和结束标记〈/ Manufacturer〉添加到设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉 之间。
[0136] 步骤132,编码装置从当前列表中读取厂商信息,将厂商信息作为文本节点添加到 厂商节点中。
[0137] 具体地,编码装置从当前列表中读取厂商信息,并将厂商信息添加到厂商节点的 起始标记和结束标记之间。
[0138] 例如,编码装置从当前列表中读取厂商信息"Manufacturer",并将厂商信息 "Manufacturer"添加到厂商节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉之 间。
[0139] 步骤133,编码装置生成序列号节点,将序列号节点作为设备信息节点的子节点添 加到设备信息节点中。
[0140] 具体地,编码装置生成序列号节点的起始标记和结束标记,将序列号节点的起始 标记和结束标记添加到设备信息节点的起始标记和结束标记之间。
[0141] 例如,编码装置将序列号节点的起始标记〈SerialNo〉和结束标记〈/SerialNo〉添 加到设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉之间。
[0142] 步骤134,编码装置从当前列表中读取设备序列号,将设备序列号作为文本节点添 加到序列号节点中。
[0143] 具体地,编码装置从当前列表中读取设备序列号,并在序列号节点的起始标记和 结束标记之间添加设备序列号。
[0144] 例如,编码装置从当前列表中读取设备序列号"987654321",并在序列号节点的起 始标记和结束标记之间添加设备序列号"987654321"。
[0145] 步骤135,编码装置生成密钥节点,将密钥节点作为密钥包节点的子节点添加到密 钥包节点中。
[0146] 具体地,编码装置生成密钥节点的起始标记和结束标记,将密钥节点的起始标记 和结束标记添加到密钥包节点的起始标记和结束标记之间。
[0147] 例如,编码装置将密钥节点的起始标记〈Key〉和结束标记〈/Key〉添加到密钥包节 点的起始标记〈KeyPackage〉和结束标记〈/KeyPackage〉之间。
[0148] 步骤136,编码装置从当前列表中读取密钥标识和密钥算法信息,根据密钥标识生 成密钥标识节点,根据密钥算法信息生成密钥算法节点,将密钥标识节点和密钥算法节点 作为属性节点添加到密钥节点中。
[0149] 具体地,编码装置从当前列表中读取密钥标识和密钥算法信息,将密钥标识作为 属性值生成密钥标识节点,将密钥算法信息作为属性值,生成密钥算法节点,并在密钥节点 的起始标记中添加密钥标识节点和密钥算法节点。其中,密钥标识节点和密钥算法节点均 为属性节点,均包括属性名和属性值。
[0150] 例如,编码装置从当前列表中读取密钥标识"12345678"和密钥算法信息"urn: ietf:params:xml:ns:keyprov:pskc:hotp",根据密钥标识生成密钥标识节点,即,Id = 〃12345678〃 ;根据密钥算法信息生成密钥算法节点,即,Algorithm = 〃urn: ietf :params:x ml :ns:keyprov:pskc:hotp〃,并在密钥节点的起始标记〈Key〉中添加上述密钥标识节点和 密钥算法节点。
[0151] 其中,密钥标识节点包括属性名"Id"和属性值"12345678",密钥算法节点包括属 性名 "Algorithm" 和属性值"urn: ietf :params:xml:ns:keyprov:pskc:hotp",添加上述信 息后,密钥节点的起始标记被更新为:〈Key Id = 〃12345678〃Algorithm = 〃urn:ietf:par ams: xml: ns:keyprov:pskc:hotp〃> 〇
[0152] 步骤137,编码装置生成数据节点,将数据节点作为密钥节点的子节点添加到密钥 节点中。
[0153] 具体地,编码装置生成数据节点的起始标记和结束标记,将数据节点的起始标记 和结束标记添加到密钥节点的起始标记和结束标记之间。
[0154] 例如,编码装置将数据节点的起始标记〈Data〉和结束标记〈/Data〉添加到密钥节 点的起始标记〈Key〉和结束标记〈/Key〉之间。
[0155] 步骤138,编码装置生成密钥值节点,将密钥值节点作为数据节点的子节点添加到 数据节点中。
[0156] 具体地,编码装置生成密钥值节点的起始标记和结束标记,在数据节点的起始标 记和结束标记之间添加密钥值节点的起始标记和结束标记。
[0157] 例如,编码装置在数据节点的起始标记〈Data〉和结束标记〈/Data〉之间添加密钥 值节点的起始标记〈Secret〉和结束标记〈/Secret〉。
[0158] 步骤139,编码装置生成密文节点,将密文节点作为密钥值节点的子节点添加到密 钥值节点中。
[0159] 具体地,编码装置生成密文节点的起始标记和结束标记,将密文节点的起始标记 和结束标记添加到密钥值节点的起始标记和结束标记之间。
[0160] 例如,编码装置将密文节点的起始标记〈EncryptedValue〉和结束标记〈/ EncryptedValue〉添加到密钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉之间。
[0161] 步骤140,编码装置生成第一加密方法节点,将第一加密方法节点作为子节点添加 到密文节点中。
[0162] 具体地,编码装置生成第一加密方法节点,将第一加密方法节点添加到密文节点 的起始标记和结束标记之间。
[0163] 例如,编码装置将第一加密方法节点<xenc:EncryptionMethod/>添加到密文节 点的起始标记〈EncryptedValue〉和结束标记〈/EncryptedValue〉之间。
[0164] 步骤141,编码装置从密钥信息中读取加密密钥算法信息,根据加密密钥算法信息 生成第一加密密钥算法节点,将第一加密密钥算法节点作为属性节点添加到第一加密方法 节点中。
[0165] 具体地,编码装置从密钥信息中读取加密密钥算法信息,将加密密钥算法信息作 为属性值,生成第一加密密钥算法节点,将第一加密密钥算法节点添加到第一加密方法节 点中。
[0166] 例如,编码装置从密钥信息中读取加密密钥算法信息,S卩,〃aesl28-Cb C〃,将上述 加密密钥算法信息作为第一加密密钥算法节点的属性值,生成第一加密密钥算法节点,即, Algorithm = 〃aesl28-cbc 〃,将上述第一加密密钥算法节点添加到第一加密方法节点中, 将第一加密方法节点更新为:
[0167] <xenc:EncryptionMethod
[0168] Algorithm = "aesl28_cbc"/>。
[0169] 步骤142,编码装置生成第一密码数据节点,将第一密码数据节点作为密文节点的 子节点添加到密文节点中。
[0170] 具体地,编码装置生成第一密码数据节点的起始标记和结束标记,将第一密码数 据节点的起始标记和结束标记添加到密文节点的起始标记和结束标记之间。
[0171] 例如,编码装置将第一密码数据节点的起始标记<xenc:CipherData>和结束标 记</xenc:CipherData>添加到密文节点的起始标记〈EncryptedValue〉和结束标记〈/ EncryptedValue〉之间。
[0172] 步骤143,编码装置生成第一密码值节点,将第一密码值节点作为第一密码数据节 点的子节点添加到第一密码数据节点中。
[0173] 具体地,编码装置生成第一密码值节点的起始标记和结束标记,将第一密码值节 点的起始标记和结束标记添加到第一密码数据节点的起始标记和结束标记之间。
[0174] 例如,编码装置将第一密码值节点的起始标记<xenc:CipherValue>和结束标记 </xenc:CipherValue>添加到第一密码数据节点的起始标记<xenc:CipherData>和结束标 记〈/xenc: CipherData> 之间。
[0175] 步骤144,编码装置从当前列表中读取密钥明文,根据与密钥信息中的加密密钥名 对应的密钥,使用与密钥信息中的加密密钥算法信息对应的策略,对密钥明文进行加密,将 加密得到的密钥密文作为文本节点添加到第一密码值节点中。
[0176] 具体地,编码装置从当前列表中读取密钥明文,根据与密钥信息中的加密密钥名 对应的密钥,使用与密钥信息中的加密密钥算法信息对应的策略,对密钥明文进行加密,将 加密得到的密钥密文添加到第一密码值节点的起始标记和结束标记之间。
[0177] 例如,编码装置从当前列表中读取密钥明文,即"MTIzNA= = ",根据与密钥信息 中的加密密钥名"Pre-shared-key "对应的密钥,使用与密钥信息中的加密密钥算法信息 "hmac-shal"对应的策略,对密钥明文"ΜΤΙζΝΑ == "进行加密,得到的密钥密文为:AAECA wQFBgcICQoLDA00D+cIHItlB3WralDUpxVv0x21eflVmNPCM18jwZqI UqGv,将上述密钥密文添 加到第一密码值节点的起始标记<xenc:CipherValue>和结束标记</xenc:CipherValue> 之间。
[0178] 步骤145,编码装置生成MAC值节点,将MAC值节点作为密钥值节点的子节点添加 到密钥值节点中。
[0179] 具体地,编码装置生成MAC值节点的起始标记和结束标记,将MAC值节点的起始标 记和结束标记添加到密钥值节点的起始标记和结束标记之间。
[0180] 例如,编码装置将MAC值节点的起始标记〈ValueMAC〉和结束标记〈/ValueMAC〉添 加到密钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉之间。
[0181] 步骤146,编码装置根据密钥信息中的MAC密钥,使用与密钥信息中的MAC算法信 息对应的策略,对密钥明文进行摘要处理,将得到的摘要值作为文本节点添加到MAC值节 点中。
[0182] 具体地,编码装置根据密钥信息中的MAC密钥,使用与密钥信息中的MAC算法信息 对应的策略,对密钥明文进行摘要处理,将得到的摘要值作为文本节点添加到MAC值节点 的起始标记和结束标记之间。
[0183] 例如,编码装置根据密钥信息中的MAC密钥,使用与密钥信息中的MAC算法 信息"hmac-shal"对应的策略,对密钥明文"ΜΤΙζΝΑ == "进行摘要处理,得到摘要值 "Su+NvtQfmvf JzF6bmQi JqoLRExc = ",并将该摘要值作为文本节点添加到MAC值节点的起 始标记〈ValueMAC〉和结束标记〈/ValueMAC〉之间。
[0184] 通过执行上述操作,编码装置生成的密钥文件为:
[0185] <KcvContainer> <EncryptionKey> <ds: KeyName>Pre-shared-key</ds: KeyName> <7EncryplionKey> <M ACMethod AIgorithm="hmac-sha 1 "> <MACKey> <xenc:EncryptionMethod Algorithm:" aesl28-cbc"/> <xenc: C ipherDam> <xenc:CipherValue> ESIzRFVmd4iZABEiM0RVZgKn6WiLaTClsbeBMSvmRejN9vJa2BOlSaMrR7I5w S X</xen c: C iph erVa I u e> </xcnc:CiphcrData> </MACKev> </MACMethod> <KeyPackage> <DeviceInfo> <M anufacturer>M anufacturer</Manufacturer> <SerialNo>987654321 </SerialNo> </DeviceInfo> <Key M=" 12345678,, Algorithm="urn:ietf:params:xml:ns:keypiOv:pskc:hotp">
[0186] <Data> 〈Secret〉 〈Encrypted Val ue> <xenc: Encryption M ethod Algorithm="aes 128-cbc"/> <xenc:CipherDala> <xenc:Cipher Value〉 AAECAwQFBgcICQoLDAOOD+cIHItlB3WralDUpxVvOx21eflVmNPCM18jwZqI UqGv</xenc:CipherValue> </xenc:CipherData> </Encrypted Vai ue> <ValueMAC>Su+NvtQfmvfJzF6bmQiJqoLRExc= </'ValueMAC> </Secret> </Data> </Key> </'KeyPackage> </KeyContainer>
[0187] 步骤147,编码装置判断密钥信息中是否存在未被处理过的密钥属性列表,如果 是,则返回步骤128 ;否则,结束流程。
[0188] 本发明达到的有益效果:编码装置将密钥信息编码为统一格式的密钥文件,使得 认证系统能够对多个设备厂商配置的密钥信息执行统一的处理流程,减轻了认证系统的工 作负担。
[0189] 进一步地,本发明的另一种实施方式中,编码装置生成密钥容器节点,将密钥容器 节点作为根节点添加到密钥文件中,并判断出密钥传输方式为明文传输之后,并发多个线 程,将密钥信息中的所有密钥属性列表分配给上述多个线程;每个线程获取至少一个密钥 属性列表,并将每个密钥属性列表作为当前列表,执行步骤104至步骤115,生成至少一个 密钥包节点;编码装置将所有线程生成的密钥包节点添加到密钥容器节点中,实现对密钥 息的编码。
[0190] 编码装置生成密钥容器节点,将密钥容器节点作为根节点添加到密钥文件中,并 判断出密钥传输方式不是明文传输之后,并发多个线程,将密钥信息中的所有密钥属性列 表分配给上述多个线程;每个线程获取至少一个密钥属性列表,并将每个密钥属性列表作 为当前列表,执行步骤117至步骤146,生成至少一个密钥包节点;编码装置将所有线程生 成的密钥包节点添加到密钥容器节点中,实现对密钥信息的编码。上述工作机制能够加快 编码装置的编码速度。
[0191] 需要说明的是,本发明的另一种实施方式中,密钥属性列表中还可包括发行方信 息,相应地,编码装置生成发行方节点,将发行方节点作为密钥节点的子节点添加到密钥节 点中,从密钥属性列表中读取发行方信息,将发行方信息作为文本节点添加到发行方节点 中。
[0192] 具体地,编码装置生成发行方节点的起始标记和结束标记,将发行方节点的起始 标记和结束标记添加到密钥节点的起始标记和结束标记之间,从密钥属性列表中读取发行 方信息,并在发行方节点的起始标记和结束标记之间添加发行方信息。
[0193] 例如,编码装置将发行方节点的起始标记〈Issuer〉和结束标记〈/Issuer〉添加到 密钥节点的起始标记〈Key〉和结束标记〈/Key〉之间,从密钥属性列表中读取发行方信息 " Issuer-A",并在发行方节点的起始标记〈Issuer〉和结束标记〈/Issuer〉之间添加发行方 ? 目息 " Issuer_A"。
[0194] 本发明的另一种实施方式中,密钥属性列表中还可包括设备用户标识,相应地,编 码装置生成设备用户标识节点,将设备用户标识节点作为设备信息节点的子节点添加到设 备信息节点中,从密钥属性列表中读取设备用户标识,将设备用户标识作为文本节点添加 到设备用户标识节点中。
[0195] 具体地,编码装置生成设备用户标识节点的起始标记和结束标记,将设备用户标 识节点的起始标记和结束标记添加到设备信息节点的起始标记和结束标记之间,并在设备 用户标识节点的起始标记和结束标记之间添加设备用户标识。
[0196] 例如,编码装置将设备用户标识节点的起始标记〈Userid〉和结束标记〈/Userid〉 添加到设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/Deviceinfo〉之间,并在设备 用户标识节点的起始标记〈Userid〉和结束标记〈/Userid〉之间添加设备用户标识"DC = example-bank, DC = net,'。
[0197] 本发明的另一种实施方式中,密钥属性列表中还可包括密码模块标识,相应地,编 码装置生成密码模块节点,将密码模块节点作为密钥包节点的子节点添加到密钥包节点 中,生成密码模块标识节点,将密码模块标识节点作为密码模块节点的子节点添加到密码 模块节点中,从密钥属性列表中读取密码模块标识,将密码模块标识作为文本节点添加到 密码模块标识节点中。
[0198] 具体地,编码装置生成密码模块节点的起始标记和结束标记,将密码模块节点的 起始标记和结束标记添加到密钥包节点的起始标记和结束标记之间,将密码模块标识节点 的起始标记和结束标记添加到密码模块节点的起始标记和结束标记之间,并将密码模块标 识添加到密码模块标识节点的起始标记和结束标记之间。
[0199] 例如,编码装置将密码模块节点的起始标记〈CryptoModulelnfo〉和结束标 记〈/CryptoModulelnfo〉添加到密钥包节点的起始标记〈KeyPackage〉和结束标记〈/ KeyPackage〉之间,将密码模块标识节点的起始标记<Id>和结束标记</Id>添加到密码模 块节点的起始标记〈CryptoModulelnfo〉和结束标记〈/CryptoModulelnfo〉之间,并将密码 模块标识"CM_ID_001"添加到密码模块标识节点的起始标记<Id>和结束标记</Id>之间。
[0200] 本发明的另一种实施方式中,密钥属性列表中还可包括密钥用户标识,相应地,编 码装置生成密钥用户标识节点,将密钥用户标识节点作为密钥节点的子节点添加到密钥节 点中,从密钥属性列表中读取密钥用户标识,将密钥用户标识作为文本节点添加到密钥用 户标识节点中。
[0201] 具体地,编码装置生成密钥用户标识节点的起始标记和结束标记,将密钥用户标 识节点的起始标记和结束标记添加到密钥节点的起始标记和结束标记之间,并在密钥用户 标识节点的起始标记和结束标记之间添加密钥用户标识。
[0202] 例如,编码装置将密钥用户标识节点的起始标记〈Userid〉和结束标记〈/Userid〉 添加到密钥节点的起始标记〈Key〉和结束标记〈/Key〉之间,并在密钥用户标识节点的起 始标记〈Userid〉和结束标记〈/Userid〉之间添加密钥用户标识"UID = jsmith, DC = example-bank, DC = net,'。
[0203] 本发明的另一种实施方式中,密钥属性列表中还可包括密钥起始日期、密钥终结 日期和密钥用途信息,相应地,编码装置生成策略节点,将策略节点作为密钥节点的子节点 添加到密钥节点中,生成起始日期节点、终结日期节点和密钥用途节点,将起始日期节点、 终结日期节点和密钥用途节点添加到策略节点中,从密钥属性列表中读取密钥起始日期、 密钥终结日期和密钥用途信息,将密钥起始日期作为文本节点添加到起始日期节点中,将 密钥终结日期作为文本节点添加到终结日期节点中,将密钥用途信息作为文本节点添加到 密钥用途节点中。
[0204] 具体地,编码装置生成策略节点的起始标记和结束标记,将策略节点的起始标记 和结束标记添加到密钥节点的起始标记和结束标记之间,将起始日期节点的起始标记和 结束标记添加到策略节点的起始标记和结束标记之间,从密钥属性列表中读取密钥起始日 期,将密钥起始日期添加到起始日期节点的起始标记和结束标记之间,将终结日期节点的 起始标记和结束标记添加到策略节点的起始标记和结束标记之间,从密钥属性列表中读取 密钥终结日期,将密钥终结日期添加到终结日期节点的起始标记和结束标记之间,将密钥 用途节点的起始标记和结束标记添加到策略节点的起始标记和结束标记之间,从密钥属性 列表中读取密钥用途信息,将密钥用途信息添加到密钥用途节点的起始标记和结束标记之 间。
[0205] 例如,编码装置将策略节点的起始标记〈Policy>和结束标记〈/Policy>添 加到密钥节点的起始标记〈Key〉和结束标记〈/Key〉之间,将起始日期节点的起始标 记〈StartDate〉和结束标记〈/StartDate〉添加到策略节点的起始标记和结束标记之 间,从密钥属性列表中读取密钥起始日期"2014-05-07T02:58:31Z",将上述密钥起始 日期添加到起始日期节点的起始标记〈StartDate〉和结束标记〈/StartDate〉之间,将 终结日期节点的起始标记〈ExpiryDate〉和结束标记〈/ExpiryDate〉添加到策略节点 的起始标记〈Policy>和结束标记〈/Policy>之间,从密钥属性列表中读取密钥终结 日期" 2019-05-07T02:57:37Z ",将上述密钥终结日期添加到终结日期节点的起始标记 〈ExpiryDate〉和结束标记〈/ExpiryDate〉之间,将密钥用途节点的起始标记〈KeyUsage〉和 结束标记〈/KeyUsage〉添加到策略节点的起始标记〈Policy〉和结束标记〈/Policy〉之间, 从密钥属性列表中读取密钥用途信息"0ΤΡ",将密钥用途信息"0ΤΡ"添加到密钥用途节点 的起始标记〈KeyUsage〉和结束标记〈/KeyUsage〉之间。
[0206] 另外,当密钥信息与时间型动态令牌中的种子密钥相关时,密钥属性列表中还可 包括响应码长度、响应码编码信息、时间间隔值、时间偏移量的初始值和时间因子的初始 值,相应地,编码装置生成算法参数节点,将算法参数节点作为密钥节点的子节点添加到密 钥节点中,生成响应码格式节点,将响应码格式节点作为算法参数节点的子节点添加到算 法参数节点中,从密钥属性列表中读取响应码长度和响应码编码信息,根据响应码长度生 成响应码长度节点,根据响应码编码信息生成响应码编码信息节点,将响应码长度节点和 响应码编码信息节点作为属性节点添加到响应码格式节点中;生成时间节点,将时间节点 作为数据节点的子节点添加到数据节点中,生成第二明文节点,将第二明文节点作为时间 节点的子节点添加到时间节点中,从密钥属性列表中读取时间因子的初始值,将时间因子 的初始值作为文本节点添加到第二明文节点中;生成时间间隔节点,将时间间隔节点作为 数据节点的子节点添加到数据节点中,生成第三明文节点,将第三明文节点作为时间间隔 节点的子节点添加到时间间隔节点中,从密钥属性列表中读取时间间隔值,将时间间隔值 作为文本节点添加到第三明文节点中;生成时间偏移节点,将时间偏移节点作为数据节点 的子节点添加到数据节点中,生成第四明文节点,将第四明文节点作为时间偏移节点的子 节点添加到时间偏移节点中,从密钥属性列表中读取时间偏移量的初始值,将时间偏移量 的初始值作为文本节点添加到第四明文节点中。
[0207] 具体地,编码装置可以将算法参数节点的起始标记和结束标记添加到密钥节点的 起始标记和结束标记之间,将响应码格式节点添加到算法参数节点的起始标记和结束标记 之间,从密钥属性列表中读取响应码长度和响应码编码信息,将响应码长度作为属性值生 成响应码长度节点,将响应码编码信息作为属性值生成响应码编码信息节点,将响应码长 度节点和响应码编码信息节点添加到响应码格式节点中。其中,响应码长度节点和响应码 编码信息节点均为属性节点,均包括属性名和属性值。
[0208] 编码装置可以将时间节点的起始标记和结束标记添加到数据节点的起始标记和 结束标记之间,将第二明文节点的起始标记和结束标记添加到时间节点的起始标记和结束 标记之间,从密钥属性列表中读取时间因子的初始值,将时间因子的初始值添加到第二明 文节点的起始标记和结束标记之间;将时间间隔节点的起始标记和结束标记添加到数据节 点的起始标记和结束标记之间,将第三明文节点的起始标记和结束标记添加到时间间隔节 点的起始标记和结束标记之间,从密钥属性列表中读取时间间隔值,将时间间隔值添加到 第三明文节点的起始标记和结束标记之间;将时间偏移节点的起始标记和结束标记添加到 数据节点的起始标记和结束标记之间,将第四明文节点的起始标记和结束标记添加到时间 偏移节点的起始标记和结束标记之间,从密钥属性列表中读取时间偏移量的初始值,将时 间偏移量的初始值添加到第四明文节点的起始标记和结束标记之间。
[0209] 例如,编码装置将算法参数节点的起始标记〈AlgorithmParameters〉和结束标记 〈/AlgorithmParameters〉添加到密钥节点的起始标记〈Key〉和结束标记〈/Key〉之间,将 响应码格式节点〈ResponseFormat/〉添加到算法参数节点的起始标记和结束标记之间,从 密钥属性列表中读取响应码长度"8"和响应码编码信息"DECIMAL",将响应码长度"8"作 为属性值,生成响应码长度节点"Length = 〃8〃",将响应码编码信息"DECIMAL"作为属性 值,生成响应码编码信息节点"Encoding = "DECIMAL〃",其中,响应码长度节点包括属性名 "Length"和属性值"8",响应码编码信息节点包括属性名"Encoding"和属性值"DECIMAL", 编码装置将上述响应码长度节点和响应码编码信息节点添加到响应码格式节点后,响应 码格式节点被更新为:〈ResponseFormat Length = 〃8〃Encoding = 〃DECIMAL〃/>。编 码装置将时间节点的起始标记〈Time〉和结束标记〈/Time〉添加到数据节点的起始标记 〈Data〉和结束标记〈/Data〉之间,将第二明文节点的起始标记〈PlainValue〉和结束标 记〈/PlainValue〉添加到时间节点的起始标记〈Time〉和结束标记〈/Time〉之间,从密钥 属性列表中读取时间因子的初始值"0",将时间因子的初始值"0"添加到第二明文节点 的起始标记〈PlainValue〉和结束标记〈/PlainValue〉之间;将时间间隔节点的起始标记 〈Timelnterval〉和结束标记〈/Timelnterval〉添加到数据节点的起始标记〈Data〉和结束 标记〈/Data〉之间,将第三明文节点的起始标记〈PlainValue〉和结束标记〈/PlainValue〉 添加到时间间隔节点的起始标记〈Timelnterval〉和结束标记〈/Timelnterval〉之间,从密 钥属性列表中读取时间间隔值"60",将时间间隔值"60"添加到第三明文节点的起始标记 〈PlainValue〉和结束标记〈/PlainValue〉之间;将时间偏移节点的起始标记〈TimeDrift〉 和结束标记〈/TimeDrift〉添加到数据节点的起始标记〈Data〉和结束标记〈/Data〉之 间,将第四明文节点的起始标记〈PlainValue〉和结束标记〈/PlainValue〉添加到时间偏 移节点的起始标记〈TimeDrift〉和结束标记〈/TimeDrift〉之间,从密钥属性列表中读取 时间偏移量的初始值"〇",将时间偏移量的初始值"〇"添加到第四明文节点的起始标记 〈PlainValue〉和结束标记〈/PlainValue〉之间。
[0210] 此外,当密钥信息与事件型动态令牌中的种子密钥相关时,密钥属性列表中还可 包括响应码长度、响应码编码信息和事件因子的初始值,相应地,编码装置生成算法参数节 点,将算法参数节点作为密钥节点的子节点添加到密钥节点中,生成响应码格式节点,将响 应码格式节点作为算法参数节点的子节点添加到算法参数节点中,从密钥属性列表中读取 响应码长度和响应码编码信息,根据响应码长度生成响应码长度节点,根据响应码编码信 息生成响应码编码信息节点,将响应码长度节点和响应码编码信息节点作为属性节点添加 到响应码格式节点中,生成计数器节点,将计数器节点作为数据节点的子节点添加到数据 节点中,生成第五明文节点,将第五明文节点作为计数器节点的子节点添加到计数器节点 中,将事件因子的初始值作为文本节点添加到第五明文节点中。
[0211] 具体地,编码装置可以将算法参数节点的起始标记和结束标记添加到密钥节点的 起始标记和结束标记之间,将响应码格式节点添加到算法参数节点的起始标记和结束标记 之间,从密钥属性列表中读取响应码长度和响应码编码信息,将响应码长度作为属性值生 成响应码长度节点,将响应码编码信息作为属性值生成响应码编码信息节点,将响应码长 度节点和响应码编码信息节点添加到响应码格式节点中。其中,响应码长度节点和响应码 编码信息节点均为属性节点,均包括属性名和属性值。
[0212] 编码装置可以将计数器节点的起始标记和结束标记添加到数据节点的起始标记 和结束标记之间,将第五明文节点的起始标记和结束标记添加到计数器节点的起始标记和 结束标记之间,并在第五明文节点的起始标记和结束标记之间添加事件因子的初始值。
[0213] 例如,编码装置将算法参数节点的起始标记〈AlgorithmParameters〉和结束标记 〈/AlgorithmParameters〉添加到密钥节点的起始标记〈Key〉和结束标记〈/Key〉之间,将 响应码格式节点〈ResponseFormat/〉添加到算法参数节点的起始标记和结束标记之间,从 密钥属性列表中读取响应码长度"8"和响应码编码信息"DECIMAL",将响应码长度"8"作 为属性值,生成响应码长度节点"Length = 〃8〃",将响应码编码信息"DECIMAL"作为属性 值,生成响应码编码信息节点"Encoding = "DECIMAL〃",其中,响应码长度节点包括属性名 "Length"和属性值"8",响应码编码信息节点包括属性名"Encoding"和属性值"DECIMAL", 编码装置将上述响应码长度节点和响应码编码信息节点添加到响应码格式节点后,响应码 格式节点被更新为:〈ResponseFormat Length = 〃8〃Encoding = 〃DECIMAL〃/>。编码装置 将计数器节点的起始标记〈Counter〉和结束标记〈/Counter〉添加到数据节点的起始标记 〈Data〉和结束标记〈/Data〉之间,将第五明文节点的起始标记〈PlainValue〉和结束标记 〈/PlainValue〉添加到计数器节点的起始标记〈Counter〉和结束标记〈/Counter〉之间,并 在第五明文节点的起始标记〈PlainValue〉和结束标记〈/PlainValue〉之间添加事件因子 的初始值"0"。
[0214] 与图1和图2所示的实现密钥信息编码的装置的工作方法相对应,本发明实施例 还提供了实现密钥信息解码的装置的工作方法,如图3至图6所示,包括以下步骤:
[0215] 步骤201,解码装置从密钥文件的根节点中查找密钥包节点,如果查找到,则执行 步骤202 ;否则,解码装置显示错误信息,结束流程。
[0216] 具体地,解码装置可以在密文文件的根节点的起始标记和结束标记之间查找密钥 包节点的起始标记和结束标记,如果查找到,则确定从密钥文件的根节点中查找到密钥包 节点;否则,确定没有从密钥文件的根节点中查找到密钥包节点。其中,密文文件的根节点 为密钥容器节点。
[0217] 例如,解码装置在密钥容器节点的起始标记〈KeyContainer〉和结束标 记〈/KeyContainer〉之间查找密钥包节点的起始标记〈KeyPackage〉和结束标记〈/ KeyPackage〉,如果查找到,则确定从密钥文件的根节点中查找到密钥包节点;否则,确定没 有从密钥文件的根节点中查找到密钥包节点。
[0218] 步骤202,解码装置从密钥包节点中查找设备信息节点,如果查找到,则执行步骤 203 ;否则,执行步骤208。
[0219] 具体地,解码装置可以在密钥包节点的起始标记和结束标记之间查找设备信息节 点的起始标记和结束标记,如果查找到,则确定从密钥包节点中查找到设备信息节点;否 贝1J,确定没有从密钥包节点中查找到设备信息节点。
[0220] 例如,解码装置在密钥包节点的起始标记〈KeyPackage〉和结束标记〈/ KeyPackage〉之间查找设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/ Devicelnfo〉,如果查找到,则确定从密钥包节点中查找到设备信息节点;否则,确定没有从 密钥包节点中查找到设备信息节点。
[0221] 步骤203,解码装置从设备信息节点中查找厂商节点,如果查找到,则执行步骤 204 ;否则,执行步骤205。
[0222] 具体地,解码装置可以在设备信息节点的起始标记和结束标记之间查找厂商节点 的起始标记和结束标记,如果查找到,则确定从设备信息节点中查找到厂商节点;否则,确 定没有从设备信息节点中查找到厂商节点。
[0223] 例如,解码装置在设备信息节点的起始标记〈Deviceinfo〉和结束标 记〈/Deviceinfo〉之间查找厂商节点的起始标记〈Manufacturer〉和结束标记〈/ Manufacturer〉,如果查找到,则确定从设备信息节点中查找到厂商节点;否则,确定没有从 设备信息节点中查找到厂商节点。
[0224] 步骤204,解码装置获取厂商节点的子节点的文本内容,将获取到的文本内容作为 厂商信息进行保存,并执行步骤205。
[0225] 具体地,解码装置可以获取位于厂商节点的起始标记和结束标记之间的文本节点 的文本内容,将该文本内容作为厂商信息进行保存。
[0226] 例如,解码装置获取位于厂商节点的起始标记〈Manufacturer〉和结束标 记〈/Manufacturer〉之间的文本节点的文本内容"Manufacturer",将该文本内容 "Manufacturer"作为厂商信息进行保存。
[0227] 步骤205,解码装置从设备信息节点中查找序列号节点,如果查找到,则执行步骤 206 ;否则,执行步骤207。
[0228] 具体地,解码装置可以在设备信息节点的起始标记和结束标记之间查找序列号节 点的起始标记和结束标记,如果查找到,则确定从设备信息节点中查找到序列号节点;否 贝1J,确定没有从设备信息节点中查找到序列号节点。
[0229] 例如,解码装置在设备信息节点的起始标记〈Deviceinfo〉和结束标记〈/ Deviceinfo〉之间查找序列号节点的起始标记〈SerialNo〉和结束标记〈/SerialNo〉,如果 查找到,则确定从设备信息节点中查找到序列号节点;否则,确定没有从设备信息节点中查 找到序列号节点。
[0230] 步骤206,解码装置获取序列号节点的子节点的文本内容,将获取到的文本内容作 为设备序列号进行保存,并执行步骤207。
[0231] 具体地,解码装置可以获取位于序列号节点的起始标记和结束标记之间的文本节 点的文本内容,将该文本内容作为设备序列号进行保存。
[0232] 例如,解码装置获取位于序列号节点的起始标记〈SerialNo>和结束标记〈/ SerialNo〉之间的文本节点的文本内容"987654321",将该文本内容"987654321"作为设备 序列号进行保存。
[0233] 步骤207,解码装置从密钥包节点中查找密钥节点,如果查找到,则执行步骤208 ; 否则,解码装置显示错误信息,结束流程。
[0234] 具体地,解码装置可以在密钥包节点的起始标记和结束标记之间查找密钥节点的 起始标记和结束标记,如果查找到,则确定从密钥包节点中查找到密钥节点;否则,确定没 有从密钥包节点中查找到密钥节点。
[0235] 例如,解码装置在密钥包节点的起始标记〈KeyPackage〉和结束标记〈/ KeyPackage〉之间查找密钥节点的起始标记〈Key〉和结束标记〈/Key〉,如果查找到,则确定 从密钥包节点中查找到密钥节点;否则,确定没有从密钥包节点中查找到密钥节点。
[0236] 步骤208,解码装置获取密钥节点中的密钥算法节点的属性值,将获取到的属性值 作为密钥算法信息进行保存。
[0237] 具体地,解码装置可以将位于密钥节点的起始标记中的密钥算法节点作为属性节 点,获取密钥算法节点的属性值,并将获取到的属性值作为密钥算法信息进行保存。
[0238] 例如,解码装置将位于密钥节点的起始标记〈Key〉中的密钥算法节点"Algorithm =〃urn: ietf :params:xml :ns:keyprov:pskc:hotp〃"作为属性节点,获取上述密钥算法节 点的属性值,即,"urn: ietf :params:xml :ns:keyprov:pskc:hotp",并将获取到的属性值作 为密钥算法信息进行保存。
[0239] 步骤209,解码装置获取密钥节点中的密钥标识节点的属性值,将获取到的属性值 作为密钥标识进行保存。
[0240] 具体地,解码装置可以将位于密钥节点的起始标记中的密钥标识节点作为属性节 点,获取密钥标识节点的属性值,并将获取到的属性值作为密钥标识进行保存。
[0241] 例如,解码装置将位于密钥节点的起始标记〈Key〉中的密钥标识节点"Id = "12345678""作为属性节点,获取密钥算法节点的属性值"12345678",并将获取到的属性值 " 12345678"作为密钥标识进行保存。
[0242] 步骤210,解码装置从密钥节点中查找数据节点,如果查找到,则执行步骤211 ;否 贝1J,解码装置显示错误信息,结束流程。
[0243] 具体地,解码装置可以在密钥节点的起始标记和结束标记之间查找数据节点的起 始标记和结束标记,如果查找到,则确定从密钥节点中查找到数据节点;否则,确定没有从 密钥节点中查找到数据节点。
[0244] 例如,解码装置在密钥节点的起始标记〈Key〉和结束标记〈/Key〉之间查找数据节 点的起始标记〈Data〉和结束标记〈/Data〉,如果查找到,则确定从密钥节点中查找到数据 节点;否则,确定没有从密钥节点中查找到数据节点。
[0245] 步骤211,解码装置从数据节点中查找密钥值节点,如果查找到,则执行步骤212 ; 否则,解码装置显示错误信息,结束流程。
[0246] 具体地,解码装置可以在数据节点的起始标记和结束标记之间查找密钥值节点的 起始标记和结束标记,如果查找到,则确定从数据节点中查找到密钥值节点;否则,确定没 有从数据节点中查找到密钥值节点。
[0247] 例如,解码装置在数据节点的起始标记和〈Data〉和结束标记〈/Data〉之间查找密 钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉,如果查找到,则确定从数据节点中 查找到密钥值节点;否则,确定没有从数据节点中查找到密钥值节点。
[0248] 步骤212,解码装置从密钥值节点中查找明文节点,如果查找到,则执行步骤213 ; 否则,执行步骤214。
[0249] 具体地,解码装置可以在密钥值节点的起始标记和结束标记之间查找明文节点的 起始标记和结束标记,如果查找到,则确定从密钥值节点中查找到明文节点;否则,确定没 有从密钥值节点中查找到明文节点。
[0250] 例如,解码装置在密钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉之间查 找明文节点的起始标记〈PlainValue〉和结束标记〈/PlainValue〉,如果查找到,则确定从 密钥值节点中查找到明文节点;否则,确定没有从密钥值节点中查找到明文节点。
[0251] 步骤213,解码装置获取明文节点的子节点的文本内容,将获取到的文本内容作为 密钥明文进行保存。
[0252] 具体地,解码装置可以获取位于明文节点的起始标记和结束标记之间的文本节点 的文本内容,将该文本内容作为密钥明文进行保存。
[0253] 例如,解码装置获取位于明文节点的起始标记〈PlainValue〉和结束标记〈/ PlainValue〉之间的文本节点的文本内容"ΜΤΙζΝΑ = = ",将该文本内容"ΜΤΙζΝΑ == "作 为密钥明文进行保存。
[0254] 步骤214,解码装置从密钥值节点中查找密文节点,如果查找到,则执行步骤215 ; 否则,解码装置显示错误信息,结束流程。
[0255] 具体地,解码装置可以在密钥值节点的起始标记和结束标记之间查找密文节点的 起始标记和结束标记,如果查找到,则确定从密钥值节点中查找到密文节点;否则,确定没 有从密钥值节点中查找到密文节点。
[0256] 例如,解码装置在密钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉之间查 找密文节点的起始标记〈EncryptedValue〉和结束标记〈/EncryptedValue〉,如果查找到, 则确定从密钥值节点中查找到密文节点;否则,确定没有从密钥值节点中查找到密文节点。
[0257] 步骤215,解码装置从密文节点中查找第一加密方法节点,如果查找到,则执行步 骤216 ;否则,解码装置显示错误信息,结束流程。
[0258] 具体地,解码装置可以在密文节点的起始标记和结束标记之间查找第一加密方法 节点,如果查找到,则确定从密文节点中查找到第一加密方法节点;否则,确定没有从密文 节点中查找到第一加密方法节点。
[0259] 例如,解码装置在密文节点的起始标记〈EncryptedValue〉和结束标记〈/ EncryptedValue〉之间查找第一加密方法节点<xenc:EncryptionMethod/>,如果查找到, 则确定从密文节点中查找到第一加密方法节点;否则,确定没有从密文节点中查找到第一 加密方法节点。
[0260] 步骤216,解码装置获取第一加密方法节点中的第一加密密钥算法节点的属性值 作为加密密钥算法信息。
[0261] 具体地,解码装置可以将第一加密方法节点中的密钥算法节点作为属性节点,获 取密钥算法节点的属性值,并将获取到的属性值作为密钥算法信息进行保存。
[0262] 例如,解码装置将第一加密方法节点中的密钥算法节点"Algorithm = 〃aesl28-CbC〃"作为属性节点,获取密钥算法节点的属性值,S卩,"aesl28- CbC",并将获取到 的属性值作为密钥算法信息进行保存。
[0263] 步骤217,解码装置从密文节点中查找第一密码数据节点,如果查找到,则执行步 骤218 ;否则,解码装置显示错误信息,结束流程。
[0264] 具体地,解码装置可以在密文节点的起始标记和结束标记之间查找第一密码数据 节点的起始标记和结束标记,如果查找到,则确定从密文节点中查找到第一密码数据节点; 否则,确定没有从密文节点中查找到第一密码数据节点。
[0265] 例如,解码装置在密文节点的起始标记〈EncryptedValue〉和结束标记〈/ EncryptedValue〉之间查找第一密码数据节点的起始标记<xenc:CipherData>和结束标记 </xenc:CipherData>,如果查找到,则确定从密文节点中查找到第一密码数据节点;否则, 确定没有从密文节点中查找到第一密码数据节点。
[0266] 步骤218,解码装置从第一密码数据节点中查找第一密码值节点,如果查找到,则 执行步骤219 ;否则,解码装置显示错误信息,结束流程。
[0267] 具体地,解码装置可以在第一密码数据节点的起始标记和结束标记之间查找第一 密码值节点的起始标记和结束标记,如果查找到,则确定从第一密码数据节点中查找到第 一密码值节点;否则,确定没有从第一密码数据节点中查找到第一密码值节点。
[0268] 例如,解码装置在第一密码数据节点的起始标记<xenc:CipherData>和结束标记 </xenc:CipherData>之间查找第一密码值节点的起始标记<xenc:CipherValue>和结束标 记</xenc:CipherValue>,如果查找到,则确定从第一密码数据节点中查找到第一密码值节 点;否则,确定没有从第一密码数据节点中查找到第一密码值节点。
[0269] 步骤219,解码装置获取第一密码值节点的子节点的文本内容作为密钥密文。
[0270] 具体地,解码装置可以获取位于第一密码值节点的起始标记和结束标记之间的文 本节点的文本内容作为密钥密文。
[0271] 例如,解码装置获取位于第一密码值节点的起始标记<xenc:CipherValue>和结 束标记</xenc:CipherValue>之间的文本节点的文本内容,即,AAECAwQFBgcICQoLDAOOD+c IHItlB3WralDUpxVv0x21ef lVmNPCM18jwZqI UqGv,作为密钥密文。
[0272] 步骤220,解码装置从密钥文件的根节点中查找加密密钥节点,如果查找到,则执 行步骤221 ;否则,解码装置显示错误信息,结束流程。
[0273] 具体地,解码装置可以在密文文件的根节点的起始标记和结束标记之间查找加密 密钥节点的起始标记和结束标记,如果查找到,则确定从密钥文件的根节点中查找到加密 密钥节点;否则,确定没有从密钥文件的根节点中查找到加密密钥节点。其中,密钥文件的 根节点为密钥容器节点
[0274] 例如,解码装置在密钥容器节点的起始标记〈KeyContainer〉和结束标记〈/ KeyContainer〉之间查找加密密钥节点的起始标记〈EncryptionKey〉和结束标记〈/ EncryptionKey〉,如果查找到,则确定从密钥文件的根节点中查找到加密密钥节点;否则, 确定没有从密钥文件的根节点中查找到加密密钥节点。
[0275] 步骤221,解码装置从加密密钥节点中查找密钥名节点,如果查找到,则执行步骤 222 ;否则,解码装置显示错误信息,结束流程。
[0276] 具体地,解码装置可以在加密密钥节点的起始标记和结束标记之间查找密钥名节 点的起始标记和结束标记,如果查找到,则确定从加密密钥节点中查找到密钥名节点;否 贝1J,确定没有从加密密钥节点中查找到密钥名节点。
[0277] 例如,解码装置在加密密钥节点的起始标记〈EncryptionKey〉和结束标 记〈/EncryptionKey〉之间查找密钥名节点的起始标记<ds: KeyName〉和结束标记〈/ dszKeyName〉,如果查找到,则确定从加密密钥节点中查找到密钥名节点;否则,确定没有从 加密密钥节点中查找到密钥名节点。
[0278] 步骤222,解码装置获取密钥名节点的子节点的文本内容作为加密密钥名,根据与 加密密钥名对应的密钥,使用与获取到的加密密钥算法信息对应的策略,对获取到的密钥 密文进行解密,得到密钥明文。
[0279] 具体地,解码装置可以获取位于密钥名节点的起始标记和结束标记之间的文本节 点的文本内容作为加密密钥名,根据与加密密钥名对应的密钥,使用与获取到的加密密钥 算法信息对应的策略,对获取到的密钥密文进行解密,得到密钥明文。
[0280] 例如,解码装置获取位于密钥名节点的起始标记<ds:KeyName>和结束标记〈/ ds: KeyName〉之间的文本节点的文本内容"Pre-shared-key "作为加密密钥名,根据与加 密密钥名"Pre-shared-key"对应的密钥,使用与通过步骤216获取到的加密密钥算法信 息,即"aesl28-cbc,"对应的策略,对通过步骤219获取到的密钥密文,S卩,"AAECAwQFBgc ICQoLDA00D+cIHItlB3WralDUpxVv0x21eflVmNPCM18jwZ qlUqGv" 进行解密,得到密钥明文 "ΜΤΙζΝΑ == "。
[0281] 步骤223,解码装置从密钥值节点中查找MAC值节点,如果查找到,则执行步骤 225 ;否则,执行步骤224。
[0282] 具体地,解码装置可以在密钥值节点的起始标记和结束标记之间查找MAC值节点 的起始标记和结束标记,如果查找到,则确定从密钥值节点中查找到MAC值节点;否则,确 定没有从密钥值节点中查找到MAC值节点。
[0283] 例如,解码装置在密钥值节点的起始标记〈Secret〉和结束标记〈/Secret〉之间查 找MAC值节点的起始标记〈ValueMAC〉和结束标记〈/ValueMAC〉,如果查找到,则确定从密钥 值节点中查找到MAC值节点;否则,确定没有从密钥值节点中查找到MAC值节点。
[0284] 步骤224,解码装置对解密得到的密钥明文进行保存。
[0285] 例如,解码装置对通过步骤222解密得到的密钥明文"ΜΤΙζΝΑ == "进行保存。
[0286] 步骤225,解码装置获取MAC值节点的子节点的文本内容作为摘要值。
[0287] 具体地,解码装置可以获取位于MAC值节点的起始标记和结束标记之间的文本节 点的文本内容作为摘要值。
[0288] 例如,解码装置获取位于MAC值节点的起始标记〈ValueMAC〉和结束标记〈/ ValueMAC〉之间的文本节点的文本内容"Su+NvtQfmvf JzF6bmQi JqoLRExc = "作为摘要值。
[0289] 步骤226,解码装置从密钥文件的根节点中查找MAC方法节点,如果查找到,则执 行步骤227 ;否则,解码装置显示错误信息,结束流程。
[0290] 具体地,解码装置可以在密文文件的根节点的起始标记和结束标记之间查找MAC 方法节点的起始标记和结束标记,如果查找到,则确定从密钥文件的根节点中查找到MAC 方法节点;否则,确定没有从密钥文件的根节点中查找到MAC方法节点。其中,密文文件的 根节点为密钥容器节点。
[0291 ] 例如,解码装置在密钥容器节点的起始标记〈KeyContainer〉和结束标记 〈/KeyContainer〉之间查找MAC方法节点的起始标记〈MACMethod〉和结束标记〈/ MACMethod〉,如果查找到,则确定从密钥文件的根节点中查找到MAC方法节点;否则,确定 没有从密钥文件的根节点中查找到MAC方法节点。
[0292] 步骤227,解码装置获取MAC方法节点中的MAC算法节点的属性值作为MAC算法信 肩、。
[0293] 具体地,解码装置可以将位于MAC方法节点的起始标记中的密钥算法节点作为属 性节点,获取MAC算法节点的属性值作为MAC算法信息。
[0294] 例如,解码装置将位于MAC方法节点的起始标记〈MACMethod〉中的MAC算法 节点,即,"Algorithm = 〃hmac-shal〃"作为属性节点,获取MAC算法节点的属性值,即, "hmac-shal "作为MAC算法信息。
[0295] 步骤228,解码装置从MAC方法节点中查找MAC密钥节点,如果查找到,则执行步骤 229 ;否则,解码装置显示错误信息,结束流程。
[0296] 具体地,解码装置可以在MAC方法节点的起始标记和结束标记之间查找MAC密钥 节点的起始标记和结束标记,如果查找到,则确定从MAC方法节点中查找到MAC密钥节点; 否则,确定没有从MAC方法节点中查找到MAC密钥节点。
[0297] 例如,解码装置在MAC方法节点的起始标记〈MACMethod〉和结束标记〈/ MACMethod〉之间查找MAC密钥节点的起始标记〈MACKey〉和结束标记〈/MACKey〉,如果查找 至IJ,则确定从MAC方法节点中查找到MAC密钥节点;否则,确定没有从MAC方法节点中查找 到MAC密钥节点。
[0298] 步骤229,解码装置从MAC密钥节点中查找第二加密方法节点,如果查找到,则执 行步骤230 ;否则,解码装置显示错误信息,结束流程。
[0299] 具体地,解码装置可以在MAC密钥节点的起始标记和结束标记之间查找第二加密 方法节点,如果查找到,则确定从MAC密钥节点中查找到第二加密方法节点;否则,确定没 有从MAC密钥节点中查找到第二加密方法节点。
[0300] 例如,解码装置在MAC密钥节点的起始标记〈MACKey〉和结束标记〈/MACKey〉之间 查找第二加密方法节点,如果查找到,则确定从MAC密钥节点中查找到第二加密方法节点; 否则,确定没有从MAC密钥节点中查找到第二加密方法节点。
[0301] 步骤230,解码装置获取第二加密方法节点中的第二加密密钥算法节点的属性值 作为加密密钥算法信息。
[0302] 具体地,解码装置可以将第二加密方法节点中的第二加密密钥算法节点作为属性 节点,获取第二加密密钥算法节点的属性值作为加密密钥算法信息。
[0303] 例如,解码装置将第二加密方法节点中的第二加密密钥算法节点" A1 gor i thm = 〃aesl28-cbc""作为属性节点,获取第二加密密钥算法节点的属性值,S卩,"aesl28-cbc"作 为加密密钥算法信息。
[0304] 步骤231,解码装置从MAC密钥节点中查找第二密码数据节点,如果查找到,则执 行步骤232 ;否则,解码装置显示错误信息,结束流程。
[0305] 具体地,解码装置可以在MAC密钥节点的起始标记和结束标记之间查找第二密码 数据节点的起始标记和结束标记,如果查找到,则确定从MAC密钥节点中查找到第二密码 数据节点;否则,确定没有从MAC密钥节点中查找到第二密码数据节点。
[0306] 例如,解码装置在MAC密钥节点的起始标记〈MACKey〉和结束标记〈/MACKey〉之间 查找第二密码数据节点的起始标记〈xenc:CipherData>和结束标记</xenc:CipherData>, 如果查找到,则确定从MAC密钥节点中查找到第二密码数据节点;否则,确定没有从MAC密 钥节点中查找到第二密码数据节点。
[0307] 步骤232,解码装置从第二密码数据节点中查找第二密码值节点,如果查找到,则 执行步骤233 ;否则,解码装置显示错误信息,结束流程。
[0308] 具体地,解码装置可以在第二密码数据节点的起始标记和结束标记之间查找第二 密码值节点的起始标记和结束标记,如果查找到,则确定从第二密码数据节点中查找到第 二密码值节点;否则,确定没有从第二密码数据节点中查找到第二密码值节点。
[0309] 例如,解码装置在第二密码数据节点的起始标记<xenc:CipherData>和结束标记 </xenc:CipherData>之间查找第二密码值节点的起始标记<xenc:CipherValue>和结束标 记</xenc:CipherValue>,如果查找到,则确定从第二密码数据节点中查找到第二密码值节 点;否则,确定没有从第二密码数据节点中查找到第二密码值节点。
[0310] 步骤233,解码装置获取第二密码值节点的子节点的文本内容作为MAC密钥密文。
[0311] 具体地,解码装置可以获取位于第二密码值节点的起始标记和结束标记之间的文 本节点的文本内容作为MAC密钥密文。
[0312] 例如,解码装置获取位于第二密码值节点的起始标记<xenc:CipherValue>和结 束标记</xenc:CipherValue>之间的文本节点的文本内容,S卩,"ESIzRFVmd4iZABEiM0RVZg Kn6WjLaTClsbeBMSvIhRejN9vJa2B01SaMrR7I5wSX" 作为 MAC 密钥密文。
[0313] 步骤234,解码装置根据与获取到的加密密钥名对应的密钥,使用与获取到的加密 密钥算法信息对应的策略,对获取到的MAC密钥密文进行解密,得到MAC密钥。
[0314] 例如,解码装置根据与通过步骤222获取到的加密密钥名"Pre-shared-key"对应 的密钥,使用与通过步骤230获取到的加密密钥算法信息"aesl28- CbC"对应的策略,对通 过步骤 233 获取到的 MAC 密钥密文,S卩,"ESIzRFVmd4iZABEiM0RVZgKn6WjLaTClsbeBMSvIhR e jN9vJa2B01SaMrR7I5wSX" 进行解密,得到 MAC 密钥。
[0315] 步骤235,解码装置根据解密得到的MAC密钥,对解密得到的密钥明文进行摘要处 理,得到摘要值。
[0316] 例如,解码装置根据通过步骤234解密得到的MAC密钥,对通过步骤222解密得 到的密钥明文"ΜΤΙζΝΑ == "进行摘要处理,得到摘要值"Su+NvtQfmvfJzF6bmQiJqoLRExc _" 〇
[0317] 步骤236,解码装置判断摘要处理得到的摘要值是否与从MAC值节点中获取的摘 要值相同,如果是,则执行步骤237 ;否则,解码装置显示错误信息,结束流程。
[0318] 例如,解码装置判断出通过步骤235摘要处理得到的摘要值 "Su+NvtQfmvf JzF6bmQiJqoLRExc = "与通过步骤225从MAC值节点中获取的摘要值 " Su+NvtQfmvfJzF6bmQiJqoLRExc = " 相同。
[0319] 步骤237,解码装置对解密得到的密钥明文进行保存。
[0320] 例如,解码装置对通过步骤222解密得到的密钥明文"ΜΤΙζΝΑ == "进行保存。
[0321] 本发明达到的有益效果:解码装置对统一格式的密钥文件进行解码,得到密钥信 息,使得认证系统能够对多个设备厂商配置的密钥信息执行统一的处理流程,减轻了认证 系统的工作负担。
[0322] 进一步地,本发明的另一种实施方式中,解码装置从密钥包节点中查找到密钥节 点之后,还可以从密钥节点中查找发行方节点,获取发行方节点的子节点的文本内容,将获 取到的文本内容作为发行方信息进行保存。
[0323] 解码装置从密钥包节点中查找到设备信息节点之后,还可以从设备信息节点中查 找设备用户标识节点,获取设备用户标识节点的子节点的文本内容,将获取到的文本内容 作为设备用户标识进行保存。
[0324] 解码装置从密钥文件的根节点中查找到密钥包节点之后,还可以从密钥包节点中 查找密码模块节点,从密码模块节点中查找密码模块标识节点,获取密码模块标识节点的 子节点的文本内容,将获取到的文本内容作为密码模块标识进行保存。
[0325] 解码装置从密钥包节点中查找到密钥节点之后,还可以从密钥节点中查找密钥用 户标识节点,获取密钥用户标识节点的子节点的文本内容,将获取到的文本内容作为密钥 用户标识进行保存。
[0326] 解码装置从密钥包节点中查找到密钥节点之后,还可以从密钥节点中查找策略节 点,从策略节点中查找起始日期节点、终结日期节点和密钥用途节点,获取起始日期节点的 子节点的文本内容,将获取到的文本内容作为密钥起始日期进行保存;获取终结日期节点 的子节点的文本内容,将获取到的文本内容作为密钥终结日期进行保存;获取密钥用途节 点的子节点的文本内容,将获取到的文本内容作为密钥用途信息进行保存。
[0327] 解码装置从密钥包节点中查找到密钥节点之后,还可以从密钥节点中查找算法参 数节点,从算法参数节点中查找响应码格式节点,获取响应码格式节点中的响应码长度节 点的属性值,将获取到的属性值作为响应码长度进行保存,获取响应码格式节点中的响应 码编码信息节点的属性值,将获取到的属性值作为响应码编码信息进行保存;
[0328] 相应地,解码装置从密钥节点中查找到数据节点之后,还可以从数据节点中查找 时间节点、时间间隔节点和时间偏移节点,从时间节点中查找第二明文节点,获取第二明文 节点的子节点的文本内容,将获取到的文本内容作为时间因子的初始值进行保存;从时间 间隔节点中查找第三明文节点,获取第三明文节点的子节点的文本内容,将获取到的文本 内容作为时间间隔值进行保存;从时间偏移节点中查找第四明文节点,获取第四明文节点 的子节点的文本内容,将获取到的文本内容作为时间偏移量的初始值进行保存。
[0329] 解码装置从密钥节点中查找到数据节点之后,还可以从数据节点中查找计数器节 点,从计数器节点中查找第五明文节点,获取第五明文节点的子节点的文本内容,将获取到 的文本内容作为事件因子的初始值进行保存。
[0330] 基于上述实现密钥信息编码的装置的工作方法,本发明实施例还提供了一种编码 装置,如图7所示,包括:
[0331] 读取模块710,用于从密钥信息的密钥属性列表中读取厂商信息、设备序列号、密 钥标识、密钥算法信息和密钥明文;
[0332] 生成模块720,用于生成密钥容器节点,将密钥容器节点作为根节点添加到密钥文 件中;生成密钥包节点,将密钥包节点作为密钥容器节点的子节点添加到密钥容器节点中; 生成设备信息节点和密钥节点,将设备信息节点和密钥节点作为密钥包节点的子节点添加 到密钥包节点中;
[0333] 生成厂商节点和序列号节点,将厂商节点和序列号节点作为设备信息节点的子节 点添加到设备信息节点中;将读取模块710读取到的厂商信息作为文本节点添加到厂商节 点中,将读取模块710读取到的设备序列号作为文本节点添加到序列号节点中;
[0334] 根据读取模块710读取到的密钥算法信息生成密钥算法节点,根据读取模块710 读取到的密钥标识生成密钥标识节点,将密钥标识节点和密钥算法节点作为属性节点添加 到密钥节点中;生成数据节点,将数据节点作为密钥节点的子节点添加到密钥节点中;生 成密钥值节点,将密钥值节点作为数据节点的子节点添加到数据节点中;
[0335] 添加模块730,用于将读取模块710读取到的密钥明文或与密钥明文对应的密钥 密文添加到密钥值节点中。
[0336] 进一步地,上述读取模块710,还用于从密钥信息中读取密钥传输方式;
[0337] 相应地,上述编码装置,还包括:
[0338] 第一判断模块740,用于判断密钥传输方式是否为明文传输;
[0339] 上述添加模块730,具体用于在第一判断模块740判断出密钥传输方式为明文传 输时,生成第一明文节点,将第一明文节点作为密钥值节点的子节点添加到密钥值节点中, 将读取模块710读取到的密钥明文作为文本节点添加到第一明文节点中。
[0340] 进一步地,上述读取模块710,还用于从密钥信息中读取加密密钥名和加密密钥算 法息;
[0341] 上述生成模块720,还用于生成加密密钥节点,将加密密钥节点作为密钥容器节点 的子节点添加到密钥容器节点中;生成密钥名节点,将密钥名节点作为加密密钥节点的子 节点添加到加密密钥节点中;将读取模块710读取到的加密密钥名作为文本节点添加到密 钥名节点中;
[0342] 上述添加模块730,具体用于在第一判断模块740判断出密钥传输方式不是明文 传输时,生成密文节点,将密文节点作为密钥值节点的子节点添加到密钥值节点中;生成第 一加密方法节点和第一密码数据节点,将第一加密方法节点和第一密码数据节点作为密文 节点的子节点添加到密文节点中;根据读取模块710读取到的加密密钥算法信息生成第一 加密密钥算法节点,将第一加密密钥算法节点作为属性节点添加到第一加密方法节点中; 生成第一密码值节点,将第一密码值节点作为第一密码数据节点的子节点添加到第一密码 数据节点中;根据与加密密钥名对应的密钥,使用与加密密钥算法信息对应的策略,对密钥 明文进行加密,将加密得到的密钥密文作为文本节点添加到第一密码值节点中。
[0343] 进一步地,上述读取模块710,还用于从密钥信息中读取MAC算法信息、加密密钥 算法信息和MAC密钥;
[0344] 相应地,上述生成模块720,还用于生成MAC方法节点,将MAC方法节点作为密钥 容器节点的子节点添加到密钥容器节点中;根据读取模块710读取到的MAC算法信息生成 MAC算法节点,将MAC算法节点作为属性节点添加到MAC方法节点中;生成MAC密钥节点,将 MAC密钥节点作为MAC方法节点的子节点添加到MAC方法节点中;生成第二加密方法节点 和第二密码数据节点,将第二加密方法节点和第二密码数据节点作为子节点添加到MAC密 钥节点中;根据读取模块710读取到的加密密钥算法信息生成第二加密密钥算法节点,将 第二加密密钥算法节点作为属性节点添加到第二加密方法节点中;生成第二密码值节点, 将第二密码值节点作为第二密码数据节点的子节点添加到第二密码数据节点中;根据与读 取模块710读取到的加密密钥名对应的密钥,使用与加密密钥算法信息对应的策略,对读 取模块710读取到的MAC密钥进行加密,将加密得到的密文作为文本节点添加到第二密码 值节点中;生成MAC值节点,将MAC值节点作为密钥值节点的子节点添加到密钥值节点中; 根据读取模块710读取到的MAC密钥,使用与读取模块710读取到的MAC算法信息对应的 策略,对密钥明文进行摘要处理,将得到的摘要值作为文本节点添加到MAC值节点中。
[0345] 进一步地,上述编码装置,还包括:
[0346] 选择模块750,用于从密钥信息中选取一个未被处理过的密钥属性列表作为当前 列表;
[0347] 相应地,上述读取模块710,具体用于从选择模块750选取的当前列表中读取厂商 信息、设备序列号、密钥标识、密钥算法信息和密钥明文;
[0348] 上述编码装置,还包括:
[0349] 第二判断模块760,用于在添加模块730将密钥明文或与密钥明文对应的密钥密 文添加到密钥值节点中后,判断密钥信息中是否存在未被处理过的密钥属性列表,如果是, 则触发选择模块750从密钥信息中选取一个未被处理过的密钥属性列表作为当前列表;否 贝1J,确定编码结束。
[0350] 相应地,上述读取模块710,还用于从密钥属性列表中读取发行方信息;
[0351] 上述生成模块720,还用于生成发行方节点,将发行方节点作为密钥节点的子节点 添加到密钥节点中,将发行方信息作为文本节点添加到发行方节点中。
[0352] 进一步地,上述读取模块710,还用于从密钥属性列表中读取设备用户标识;
[0353] 相应地,上述生成模块720,还用于生成设备用户标识节点,将设备用户标识节点 作为设备信息节点的子节点添加到设备信息节点中,将设备用户标识作为文本节点添加到 设备用户标识节点中。
[0354] 进一步地,上述读取模块710,还用于从密钥属性列表中读取密码模块标识,
[0355] 生成模块720,还用于生成密码模块节点,将密码模块节点作为密钥包节点的子节 点添加到密钥包节点中,生成密码模块标识节点,将密码模块标识节点作为密码模块节点 的子节点添加到密码模块节点中,将密码模块标识作为文本节点添加到密码模块标识节点 中。
[0356] 进一步地,上述读取模块710,还用于从密钥属性列表中读取密钥用户标识;
[0357] 相应地,上述生成模块720,还用于生成密钥用户标识节点,将密钥用户标识节点 作为密钥节点的子节点添加到密钥节点中,将密钥用户标识作为文本节点添加到密钥用户 标识节点中。
[0358] 进一步地,上述读取模块710,还用于从密钥属性列表中读取密钥起始日期、密钥 终结日期和密钥用途信息;
[0359] 相应地,上述生成模块720,还用于生成策略节点,将策略节点作为密钥节点的子 节点添加到密钥节点中,生成起始日期节点、终结日期节点和密钥用途节点,将起始日期节 点、终结日期节点和密钥用途节点添加到策略节点中,将密钥起始日期作为文本节点添加 到起始日期节点中,将密钥终结日期作为文本节点添加到终结日期节点中,将密钥用途信 息作为文本节点添加到密钥用途节点中。
[0360] 进一步地,上述读取模块710,还用于从密钥属性列表中读取响应码长度、响应码 编码信息、时间因子的初始值、时间间隔值和时间偏移量的初始值;
[0361] 相应地,上述生成模块720,还用于生成算法参数节点,将算法参数节点作为密钥 节点的子节点添加到密钥节点中,生成响应码格式节点,将响应码格式节点作为算法参数 节点的子节点添加到算法参数节点中,根据响应码长度生成响应码长度节点,根据响应码 编码信息生成响应码编码信息节点,将响应码长度节点和响应码编码信息节点作为属性节 点添加到响应码格式节点中;生成时间节点,将时间节点作为数据节点的子节点添加到数 据节点中,生成第二明文节点,将第二明文节点作为时间节点的子节点添加到时间节点中, 将时间因子的初始值作为文本节点添加到第二明文节点中;生成时间间隔节点,将时间间 隔节点作为数据节点的子节点添加到数据节点中,生成第三明文节点,将第三明文节点作 为时间间隔节点的子节点添加到时间间隔节点中,将时间间隔值作为文本节点添加到第三 明文节点中;生成时间偏移节点,将时间偏移节点作为数据节点的子节点添加到数据节点 中,生成第四明文节点,将第四明文节点作为时间偏移节点的子节点添加到时间偏移节点 中,将时间偏移量的初始值作为文本节点添加到第四明文节点中。
[0362] 进一步地,上述读取模块710,还用于从密钥属性列表中读取响应码长度、响应码 编码信息和事件因子的初始值;
[0363] 相应地,上述生成模块720,还用于生成算法参数节点,将算法参数节点作为密钥 节点的子节点添加到密钥节点中,生成响应码格式节点,将响应码格式节点作为算法参数 节点的子节点添加到算法参数节点中,根据响应码长度生成响应码长度节点,根据响应码 编码信息生成响应码编码信息节点,将响应码长度节点和响应码编码信息节点作为属性节 点添加到响应码格式节点中;生成计数器节点,将计数器节点作为数据节点的子节点添加 到数据节点中,生成第五明文节点,将第五明文节点作为计数器节点的子节点添加到计数 器节点中,将事件因子的初始值作为文本节点添加到第五明文节点中。
[0364] 本发明达到的有益效果:编码装置将密钥信息编码为统一格式的密钥文件,使得 认证系统能够对多个设备厂商配置的密钥信息执行统一的处理流程,减轻了认证系统的工 作负担。
[0365] 基于上述实现密钥信息解码的装置的工作方法,本发明实施例还提供了一种解码 装置,如图8所示,包括:
[0366] 查找模块810,用于从密钥文件的根节点中查找密钥包节点,如果查找到密钥包节 点,则从密钥包节点中查找设备信息节点,从设备信息节点中查找厂商节点、序列号节点和 密钥节点;如果查找到密钥节点,则从密钥节点中查找数据节点;如果查找到数据节点,则 从数据节点中查找密钥值节点;
[0367] 第一获取模块820,用于在查找模块810查找到厂商节点时,获取厂商节点的子节 点的文本内容,将获取到的文本内容作为厂商信息进行保存;在查找模块810查找到序列 号节点时,获取序列号节点的子节点的文本内容,将获取到的文本内容作为设备序列号进 行保存;在查找模块810查找到密钥节点时,获取密钥节点中的密钥算法节点的属性值,将 获取到的属性值作为密钥算法信息进行保存;获取密钥节点中的密钥标识节点的属性值, 将获取到的属性值作为密钥标识进行保存;
[0368] 第二获取模块830,用于在查找模块810查找到密钥值节点时,从密钥值节点中获 取密钥明文进行保存,
[0369] 或者,从密钥值节点中获取密钥密文,对密钥密文进行解密,对解密得到的密钥明 文进行保存;
[0370] 显示模块840,用于在查找模块810没有查找到密钥包节点、密钥节点、数据节点 或密钥值节点时,显示错误信息。
[0371] 具体地,上述第二获取模块830,具体用于从密钥值节点中查找明文节点,获取明 文节点的子节点的文本内容,将获取到的文本内容作为密钥明文进行保存。
[0372] 或者,
[0373] 从密钥值节点中查找密文节点,从密文节点中查找第一加密方法节点和第一密码 数据节点,获取第一加密方法节点中的第一加密密钥算法节点的属性值作为加密密钥算法 信息,从第一密码数据节点中查找第一密码值节点,获取第一密码值节点的子节点的文本 内容作为密钥密文;
[0374] 从密钥文件的根节点中查找加密密钥节点,从加密密钥节点中查找密钥名节点, 获取密钥名节点的子节点的文本内容作为加密密钥名,根据与加密密钥名对应的密钥,使 用与加密密钥算法信息对应的策略,对密钥密文进行解密,得到密钥明文。
[0375] 进一步地,上述查找模块810,还用于在从数据节点中查找到密钥值节点之后,从 密钥值节点中查找MAC值节点,从密钥文件的根节点中查找MAC方法节点,从MAC方法节点 中查找MAC密钥节点,从MAC密钥节点中查找第二加密方法节点和第二密码数据节点,从第 二密码数据节点中查找第二密码值节点;
[0376] 相应地,上述第一获取模块820,还用于获取MAC值节点的子节点的文本内容作为 摘要值,获取MAC方法节点中的MAC算法节点的属性值作为MAC算法信息,获取第二加密方 法节点中的第二加密密钥算法节点的属性值作为加密密钥算法信息,获取第二密码值节点 的子节点的文本内容作为MAC密钥密文,根据加密密钥名对应的密钥,使用与加密密钥算 法信息对应的策略,对MAC密钥密文进行解密,得到MAC密钥;
[0377] 上述解码装置,还包括:
[0378] 摘要模块850,用于根据第一获取模块820获取到的MAC密钥,对密钥明文进行摘 要处理;
[0379] 判断模块860,用于判断摘要模块850摘要处理得到的摘要值是否与第一获取模 块820从MAC值节点中获取的摘要值相同;
[0380] 第二获取模块830,具体用于从密钥值节点中获取密钥密文,对密钥密文进行解 密,得到密钥明文,并在判断模块860判断出摘要模块850摘要处理得到的摘要值与第一获 取模块820从密钥值节点中的MAC值节点中获取的摘要值相同时,对密钥明文进行保存;
[0381] 显示模块840,还用于在判断模块860判断出摘要模块850摘要处理得到的摘要值 与第一获取模块820从密钥值节点中的MAC值节点中获取的摘要值不同时,显示错误信息。
[0382] 进一步地,上述查找模块810,还用于在从密钥包节点中查找到密钥节点之后,从 密钥节点中查找发行方节点;
[0383] 相应地,上述第一获取模块820,还用于在查找模块810查找到发行方节点时,获 取发行方节点的子节点的文本内容,将获取到的文本内容作为发行方信息进行保存。
[0384] 进一步地,上述查找模块810,还用于在从密钥包节点中查找到设备信息节点之 后,从设备信息节点中查找设备用户标识节点;
[0385] 相应地,上述第一获取模块820,还用于在查找模块810查找到设备用户标识节点 时,获取设备用户标识节点的子节点的文本内容,将获取到的文本内容作为设备用户标识 进行保存。
[0386] 进一步地,上述查找模块810,还用于在从密钥文件的根节点中查找到密钥包节点 之后,从密钥包节点中查找密码模块节点,从密码模块节点中查找密码模块标识节点;
[0387] 相应地,上述第一获取模块820,还用于在查找模块810查找到密码模块标识节点 时,获取密码模块标识节点的子节点的文本内容,将获取到的文本内容作为密码模块标识 进行保存。
[0388] 进一步地,上述查找模块810,还用于在从密钥包节点中查找到密钥节点之后,从 密钥节点中查找密钥用户标识节点;
[0389] 相应地,上述第一获取模块820,还用于在查找模块810查找到密钥用户标识节点 时,获取密钥用户标识节点的子节点的文本内容,将获取到的文本内容作为密钥用户标识 进行保存。
[0390] 进一步地,上述查找模块810,还用于在从密钥包节点中查找到密钥节点之后,从 密钥节点中查找策略节点,从策略节点中查找起始日期节点、终结日期节点和密钥用途节 占.
[0391] 相应地,上述第一获取模块820,还用于在查找模块810查找到起始日期节点时, 获取起始日期节点的子节点的文本内容,将获取到的文本内容作为密钥起始日期进行保 存;在查找模块810查找到终结日期节点时,获取终结日期节点的子节点的文本内容,将获 取到的文本内容作为密钥终结日期进行保存;在查找模块810查找到密钥用途节点时,获 取密钥用途节点的子节点的文本内容,将获取到的文本内容作为密钥用途信息进行保存。
[0392] 进一步地,上述查找模块810,还用于在从密钥包节点中查找到密钥节点之后,从 密钥节点中查找算法参数节点,从算法参数节点中查找响应码格式节点;在从密钥节点中 查找到数据节点之后,从数据节点中查找时间节点、时间间隔节点和时间偏移节点,从时间 节点中查找第二明文节点,从时间间隔节点中查找第三明文节点,从时间偏移节点中查找 第四明文节点;
[0393] 相应地,上述第一获取模块820,还用于在查找模块810查找到响应码格式节点 时,获取响应码格式节点中的响应码长度节点的属性值,将获取到的属性值作为响应码长 度进行保存,获取响应码格式节点中的响应码编码信息节点的属性值,将获取到的属性值 作为响应码编码信息进行保存;在查找模块810查找到第二明文节点时,获取第二明文节 点的子节点的文本内容,将获取到的文本内容作为时间因子的初始值进行保存;在查找模 块810查找到第三明文节点时,获取第三明文节点的子节点的文本内容,将获取到的文本 内容作为时间间隔值进行保存;在查找模块810查找到第四明文节点时,获取第四明文节 点的子节点的文本内容,将获取到的文本内容作为时间偏移量的初始值进行保存。
[0394] 进一步地,上述查找模块810,还用于在从密钥包节点中查找到密钥节点之后, 从密钥节点中查找算法参数节点,从算法参数节点中查找响应码格式节点;在从密钥节点 中查找到数据节点之后,从数据节点中查找计数器节点,从计数器节点中查找第五明文节 占.
[0395] 相应地,上述第一获取模块820,还用于在查找模块810查找到响应码格式节点 时,获取响应码格式节点中的响应码长度节点的属性值,将获取到的属性值作为响应码长 度进行保存,获取响应码格式节点中的响应码编码信息节点的属性值,将获取到的属性值 作为响应码编码信息进行保存;在查找模块810查找到第五明文节点时,获取第五明文节 点的子节点的文本内容,将获取到的文本内容作为事件因子的初始值进行保存。
[0396] 本发明达到的有益效果:解码装置对统一格式的密钥文件进行解码,得到密钥信 息,使得认证系统能够对多个设备厂商配置的密钥信息执行统一的处理流程,减轻了认证 系统的工作负担。
[0397] 结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的 软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器 (ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】 内所公知的任意其它形式的存储介质中。
[0398] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1. 一种实现密钥信息编码的装置的工作方法,其特征在于,包括以下步骤: 51、 编码装置生成密钥容器节点,将所述密钥容器节点作为根节点添加到密钥文件 中; 52、 所述编码装置生成密钥包节点,将所述密钥包节点作为所述密钥容器节点的子节 点添加到所述密钥容器节点中; 53、 所述编码装置生成设备信息节点,将所述设备信息节点作为所述密钥包节点的子 节点添加到所述密钥包节点中; 54、 所述编码装置生成厂商节点和序列号节点,将所述厂商节点和所述序列号节点作 为所述设备信息节点的子节点添加到所述设备信息节点中,从密钥信息的密钥属性列表中 读取厂商信息和设备序列号,将所述厂商信息作为文本节点添加到所述厂商节点中,将所 述设备序列号作为文本节点添加到所述序列号节点中; 55、 所述编码装置生成密钥节点,将所述密钥节点作为所述密钥包节点的子节点添加 到所述密钥包节点中; 56、 所述编码装置从所述密钥属性列表中读取密钥标识、密钥算法信息和密钥明文,根 据所述密钥标识生成密钥标识节点,根据所述密钥算法信息生成密钥算法节点,将所述密 钥标识节点和所述密钥算法节点作为属性节点添加到所述密钥节点中;所述编码装置生成 数据节点,将所述数据节点作为所述密钥节点的子节点添加到所述密钥节点中;所述编码 装置生成密钥值节点,将所述密钥值节点作为所述数据节点的子节点添加到所述数据节点 中,将所述密钥明文或与所述密钥明文对应的密钥密文添加到所述密钥值节点中。
2. 如权利要求1所述的方法,其特征在于,所述编码装置将所述密钥明文添加到所述 密钥值节点中之前,还包括: 所述编码装置从所述密钥信息中读取密钥传输方式,并判断出所述密钥传输方式为明 文传输; 所述编码装置将所述密钥明文添加到所述密钥值节点中,具体为: 所述编码装置生成第一明文节点,将所述第一明文节点作为所述密钥值节点的子节点 添加到所述密钥值节点中,将所述密钥明文作为文本节点添加到所述第一明文节点中。
3. 如权利要求1所述的方法,其特征在于,所述步骤S1之后,还包括: 所述编码装置从所述密钥信息中读取密钥传输方式,并判断出所述密钥传输方式不是 明文传输; 所述编码装置生成加密密钥节点,将所述加密密钥节点作为所述密钥容器节点的子节 点添加到所述密钥容器节点中;所述编码装置生成密钥名节点,将所述密钥名节点作为所 述加密密钥节点的子节点添加到所述加密密钥节点中;所述编码装置从所述密钥信息中读 取加密密钥名,将所述加密密钥名作为文本节点添加到所述密钥名节点中; 所述编码装置将与所述密钥明文对应的密钥密文添加到所述密钥值节点中,具体为: 所述编码装置生成密文节点,将所述密文节点作为所述密钥值节点的子节点添加到所 述密钥值节点中; 所述编码装置生成第一加密方法节点和第一密码数据节点,将所述第一加密方法节点 和所述第一密码数据节点作为所述密文节点的子节点添加到所述密文节点中;所述编码 装置从所述密钥信息中读取加密密钥算法信息,根据所述加密密钥算法信息生成第一加密 密钥算法节点,将所述第一加密密钥算法节点作为属性节点添加到所述第一加密方法节点 中;所述编码装置生成第一密码值节点,将所述第一密码值节点作为所述第一密码数据节 点的子节点添加到所述第一密码数据节点中;所述编码装置根据与所述加密密钥名对应的 密钥,使用与所述加密密钥算法信息对应的策略,对所述密钥明文进行加密,将加密得到的 密钥密文作为文本节点添加到所述第一密码值节点中。
4. 如权利要求3所述的方法,其特征在于,所述步骤S2之前,还包括: 所述编码装置生成MAC方法节点,将所述MAC方法节点作为所述密钥容器节点的子节 点添加到所述密钥容器节点中; 所述编码装置从所述密钥信息中读取MAC算法信息,根据所述MAC算法信息生成MAC 算法节点,将所述MAC算法节点作为属性节点添加到所述MAC方法节点中;所述编码装置 生成MAC密钥节点,将所述MAC密钥节点作为所述MAC方法节点的子节点添加到所述MAC 方法节点中;所述编码装置生成第二加密方法节点和第二密码数据节点,将所述第二加密 方法节点和所述第二密码数据节点作为子节点添加到所述MAC密钥节点中;所述编码装置 从所述密钥信息中读取加密密钥算法信息,根据所述加密密钥算法信息生成第二加密密钥 算法节点,将所述第二加密密钥算法节点作为属性节点添加到所述第二加密方法节点中; 所述编码装置生成第二密码值节点,将所述第二密码值节点作为所述第二密码数据节点的 子节点添加到所述第二密码数据节点中;所述编码装置从所述密钥信息中读取MAC密钥, 根据与所述加密密钥名对应的密钥,使用与所述加密密钥算法信息对应的策略,对所述MAC 密钥进行加密,将加密得到的密文作为文本节点添加到所述第二密码值节点中; 所述编码装置生成密钥值节点之后,还包括: 所述编码装置生成MAC值节点,将所述MAC值节点作为所述密钥值节点的子节点添加 到所述密钥值节点中; 所述编码装置根据所述MAC密钥,使用与所述MAC算法信息对应的策略,对所述密钥明 文进行摘要处理,将得到的摘要值作为文本节点添加到所述MAC值节点中。
5. 如权利要求1所述的方法,其特征在于,所述步骤S2之前,还包括: S7、所述编码装置从密钥信息中选取一个未被处理过的密钥属性列表作为当前列表; 所述编码装置从密钥信息的密钥属性列表中读取厂商信息和设备序列号,具体为: 所述编码装置从当前列表中读取厂商信息和设备序列号; 所述编码装置从所述密钥属性列表中读取密钥标识、密钥算法信息和密钥明文,具体 为: 所述编码装置从当前列表中读取密钥标识、密钥算法信息和密钥明文; 所述步骤S6之后,还包括: 所述编码装置判断所述密钥信息中是否存在未被处理过的密钥属性列表,如果是,则 返回步骤S7;否则,结束流程。
6. 如权利要求1所述的方法,其特征在于,所述编码装置生成密钥节点之后,还包括: 所述编码装置生成发行方节点,将所述发行方节点作为所述密钥节点的子节点添加到 所述密钥节点中,从所述密钥属性列表中读取发行方信息,将所述发行方信息作为文本节 点添加到所述发行方节点中。
7. 如权利要求1所述的方法,其特征在于,所述编码装置生成设备信息节点之后,还包 括: 所述编码装置生成设备用户标识节点,将所述设备用户标识节点作为所述设备信息节 点的子节点添加到所述设备信息节点中,从所述密钥属性列表中读取设备用户标识,将所 述设备用户标识作为文本节点添加到所述设备用户标识节点中。
8. 如权利要求1所述的方法,其特征在于,所述编码装置生成密钥包节点之后,还包 括: 所述编码装置生成密码模块节点,将所述密码模块节点作为所述密钥包节点的子节点 添加到所述密钥包节点中,生成密码模块标识节点,将所述密码模块标识节点作为所述密 码模块节点的子节点添加到所述密码模块节点中,从所述密钥属性列表中读取密码模块标 识,将所述密码模块标识作为文本节点添加到所述密码模块标识节点中。
9. 如权利要求1所述的方法,其特征在于,所述编码装置生成密钥节点之后,还包括: 所述编码装置生成密钥用户标识节点,将所述密钥用户标识节点作为所述密钥节点的 子节点添加到所述密钥节点中,从所述密钥属性列表中读取密钥用户标识,将所述密钥用 户标识作为文本节点添加到所述密钥用户标识节点中。
10. 如权利要求1所述的方法,其特征在于,所述编码装置生成密钥节点之后,还包括: 所述编码装置生成策略节点,将所述策略节点作为所述密钥节点的子节点添加到所述 密钥节点中,生成起始日期节点、终结日期节点和密钥用途节点,将所述起始日期节点、所 述终结日期节点和所述密钥用途节点添加到所述策略节点中,从所述密钥属性列表中读取 密钥起始日期、密钥终结日期和密钥用途信息,将所述密钥起始日期作为文本节点添加到 所述起始日期节点中,将所述密钥终结日期作为文本节点添加到所述终结日期节点中,将 所述密钥用途信息作为文本节点添加到所述密钥用途节点中。
11. 如权利要求1所述的方法,其特征在于,所述编码装置生成密钥节点之后,还包括: 所述编码装置生成算法参数节点,将所述算法参数节点作为所述密钥节点的子节点添 加到所述密钥节点中,生成响应码格式节点,将所述响应码格式节点作为所述算法参数节 点的子节点添加到所述算法参数节点中,从所述密钥属性列表中读取响应码长度和响应码 编码信息,根据所述响应码长度生成响应码长度节点,根据所述响应码编码信息生成响应 码编码信息节点,将所述响应码长度节点和所述响应码编码信息节点作为属性节点添加到 所述响应码格式节点中; 所述编码装置生成数据节点之后,还包括: 所述编码装置生成时间节点,将所述时间节点作为所述数据节点的子节点添加到所述 数据节点中,生成第二明文节点,将所述第二明文节点作为所述时间节点的子节点添加到 所述时间节点中,从所述密钥属性列表中读取时间因子的初始值,将所述时间因子的初始 值作为文本节点添加到所述第二明文节点中; 所述编码装置生成时间间隔节点,将所述时间间隔节点作为所述数据节点的子节点添 加到所述数据节点中,生成第三明文节点,将所述第三明文节点作为所述时间间隔节点的 子节点添加到所述时间间隔节点中,从所述密钥属性列表中读取时间间隔值,将所述时间 间隔值作为文本节点添加到所述第三明文节点中; 所述编码装置生成时间偏移节点,将所述时间偏移节点作为所述数据节点的子节点添 加到所述数据节点中,生成第四明文节点,将所述第四明文节点作为所述时间偏移节点的 子节点添加到所述时间偏移节点中,从所述密钥属性列表中读取时间偏移量的初始值,将 所述时间偏移量的初始值作为文本节点添加到所述第四明文节点中。
12. 如权利要求1所述的方法,其特征在于,所述编码装置生成密钥节点之后,还包括: 所述编码装置生成算法参数节点,将所述算法参数节点作为所述密钥节点的子节点添 加到所述密钥节点中,生成响应码格式节点,将所述响应码格式节点作为所述算法参数节 点的子节点添加到所述算法参数节点中,从所述密钥属性列表中读取响应码长度和响应码 编码信息,根据所述响应码长度生成响应码长度节点,根据所述响应码编码信息生成响应 码编码信息节点,将所述响应码长度节点和所述响应码编码信息节点作为属性节点添加到 所述响应码格式节点中; 所述编码装置生成数据节点之后,还包括: 所述编码装置生成计数器节点,将所述计数器节点作为所述数据节点的子节点添加到 所述数据节点中,生成第五明文节点,将所述第五明文节点作为所述计数器节点的子节点 添加到所述计数器节点中,从所述密钥属性列表中读取事件因子的初始值,将所述事件因 子的初始值作为文本节点添加到所述第五明文节点中。
13. -种实现密钥信息解码的装置的工作方法,其特征在于,包括以下步骤: 51、 解码装置从密钥文件的根节点中查找密钥包节点,如果查找到,则执行步骤S2 ;否 贝1J,显示错误信息,结束流程; 52、 所述解码装置从所述密钥包节点中查找设备信息节点,从所述设备信息节点中查 找厂商节点和序列号节点,获取所述厂商节点的子节点的文本内容,将获取到的文本内容 作为厂商信息进行保存,获取所述序列号节点的子节点的文本内容,将获取到的文本内容 作为设备序列号进行保存; 53、 所述解码装置从所述密钥包节点中查找密钥节点,如果查找到,则执行步骤S4 ;否 贝1J,显示错误信息,结束流程; 54、 所述解码装置获取所述密钥节点中的密钥算法节点的属性值,将获取到的属性值 作为密钥算法信息进行保存;获取所述密钥节点中的密钥标识节点的属性值,将获取到的 属性值作为密钥标识进行保存; 55、 所述解码装置从所述密钥节点中查找数据节点,如果查找到,则执行步骤S6 ;否 贝1J,显示错误信息,结束流程; 56、 所述解码装置从所述数据节点中查找密钥值节点,如果查找到,则执行步骤S7 ;否 贝1J,显示错误信息,结束流程; 57、 所述解码装置从所述密钥值节点中获取密钥明文进行保存, 或者,所述解码装置从所述密钥值节点中获取密钥密文,对所述密钥密文进行解密,对 解密得到的密钥明文进行保存。
14. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥值节点中获取 密钥明文进行保存,具体为: 所述解码装置从所述密钥值节点中查找明文节点,获取所述明文节点的子节点的文本 内容,将获取到的文本内容作为密钥明文进行保存。
15. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥值节点中获取 密钥密文,对所述密钥密文进行解密,对解密得到的密钥明文进行保存,具体为: 所述解码装置从所述密钥值节点中查找密文节点,从所述密文节点中查找第一加密方 法节点和第一密码数据节点,获取所述第一加密方法节点中的第一加密密钥算法节点的属 性值作为加密密钥算法信息,从所述第一密码数据节点中查找第一密码值节点,获取所述 第一密码值节点的子节点的文本内容作为密钥密文; 所述解码装置从所述密钥文件的根节点中查找加密密钥节点,从所述加密密钥节点中 查找密钥名节点,获取所述密钥名节点的子节点的文本内容作为加密密钥名,根据与所述 加密密钥名对应的密钥,使用与所述加密密钥算法信息对应的策略,对所述密钥密文进行 解密,得到密钥明文。
16. 如权利要求15所述的方法,其特征在于,所述解码装置从所述数据节点中查找到 密钥值节点之后,还包括: 所述解码装置从所述密钥文件的根节点中查找MAC方法节点,获取所述MAC方法节点 中的MAC算法节点的属性值作为MAC算法信息,从所述MAC方法节点中查找MAC密钥节点, 从所述MAC密钥节点中查找第二加密方法节点和第二密码数据节点,获取所述第二加密方 法节点中的第二加密密钥算法节点的属性值作为加密密钥算法信息,从所述第二密码数据 节点中查找第二密码值节点,获取所述第二密码值节点的子节点的文本内容作为MAC密钥 密文,根据所述加密密钥名对应的密钥,使用与所述加密密钥算法信息对应的策略,对所述 MAC密钥密文进行解密,得到MAC密钥; 所述解码装置根据所述MAC密钥,对所述密钥明文进行摘要处理,判断摘要处理得到 的摘要值是否与从所述密钥值节点中的MAC值节点中获取的摘要值相同,如果是,则对所 述密钥明文进行保存;否则,显示错误信息,结束流程。
17. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥包节点中查找 到密钥节点之后,还包括: 所述解码装置从所述密钥节点中查找发行方节点,获取所述发行方节点的子节点的文 本内容,将获取到的文本内容作为发行方信息进行保存。
18. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥包节点中查找 到设备信息节点之后,还包括: 所述解码装置从所述设备信息节点中查找设备用户标识节点,获取所述设备用户标识 节点的子节点的文本内容,将获取到的文本内容作为设备用户标识进行保存。
19. 如权利要求13所述的方法,其特征在于,所述解码装置从密钥文件的根节点中查 找到密钥包节点之后,还包括: 所述解码装置从所述密钥包节点中查找密码模块节点,从所述密码模块节点中查找密 码模块标识节点,获取所述密码模块标识节点的子节点的文本内容,将获取到的文本内容 作为密码模块标识进行保存。
20. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥包节点中查找 到密钥节点之后,还包括: 所述解码装置从所述密钥节点中查找密钥用户标识节点,获取所述密钥用户标识节点 的子节点的文本内容,将获取到的文本内容作为密钥用户标识进行保存。
21. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥包节点中查找 到密钥节点之后,还包括: 所述解码装置从所述密钥节点中查找策略节点,从所述策略节点中查找起始日期节 点、终结日期节点和密钥用途节点,获取所述起始日期节点的子节点的文本内容,将获取到 的文本内容作为密钥起始日期进行保存;获取所述终结日期节点的子节点的文本内容,将 获取到的文本内容作为密钥终结日期进行保存;获取所述密钥用途节点的子节点的文本内 容,将获取到的文本内容作为密钥用途信息进行保存。
22. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥包节点中查找 到密钥节点之后,还包括: 所述解码装置从所述密钥节点中查找算法参数节点,从所述算法参数节点中查找响应 码格式节点,获取所述响应码格式节点中的响应码长度节点的属性值,将获取到的属性值 作为响应码长度进行保存,获取所述响应码格式节点中的响应码编码信息节点的属性值, 将获取到的属性值作为响应码编码信息进行保存; 所述解码装置从所述密钥节点中查找到数据节点之后,还包括: 所述解码装置从所述数据节点中查找时间节点、时间间隔节点和时间偏移节点,从所 述时间节点中查找第二明文节点,获取所述第二明文节点的子节点的文本内容,将获取到 的文本内容作为时间因子的初始值进行保存;从所述时间间隔节点中查找第三明文节点, 获取所述第三明文节点的子节点的文本内容,将获取到的文本内容作为时间间隔值进行保 存;从所述时间偏移节点中查找第四明文节点,获取所述第四明文节点的子节点的文本内 容,将获取到的文本内容作为时间偏移量的初始值进行保存。
23. 如权利要求13所述的方法,其特征在于,所述解码装置从所述密钥包节点中查找 到密钥节点之后,还包括: 所述解码装置从所述密钥节点中查找算法参数节点,从所述算法参数节点中查找响应 码格式节点,获取所述响应码格式节点中的响应码长度节点的属性值,将获取到的属性值 作为响应码长度进行保存,获取所述响应码格式节点中的响应码编码信息节点的属性值, 将获取到的属性值作为响应码编码信息进行保存; 所述解码装置从所述密钥节点中查找到数据节点之后,还包括: 所述解码装置从所述数据节点中查找计数器节点,从所述计数器节点中查找第五明文 节点,获取所述第五明文节点的子节点的文本内容,将获取到的文本内容作为事件因子的 初始值进行保存。
24. -种编码装置,其特征在于,包括: 读取模块,用于从密钥信息的密钥属性列表中读取厂商信息、设备序列号、密钥标识、 密钥算法信息和密钥明文; 生成模块,用于生成密钥容器节点,将所述密钥容器节点作为根节点添加到密钥文件 中;生成密钥包节点,将所述密钥包节点作为所述密钥容器节点的子节点添加到所述密钥 容器节点中;生成设备信息节点和密钥节点,将所述设备信息节点和所述密钥节点作为所 述密钥包节点的子节点添加到所述密钥包节点中; 生成厂商节点和序列号节点,将所述厂商节点和所述序列号节点作为所述设备信息节 点的子节点添加到所述设备信息节点中;将所述读取模块读取到的所述厂商信息作为文本 节点添加到所述厂商节点中,将所述读取模块读取到的所述设备序列号作为文本节点添加 到所述序列号节点中; 根据所述读取模块读取到的所述密钥算法信息生成密钥算法节点,根据所述读取模块 读取到的密钥标识生成密钥标识节点,将所述密钥标识节点和所述密钥算法节点作为属性 节点添加到所述密钥节点中;生成数据节点,将所述数据节点作为所述密钥节点的子节点 添加到所述密钥节点中;生成密钥值节点,将所述密钥值节点作为所述数据节点的子节点 添加到所述数据节点中; 添加模块,用于将所述读取模块读取到的所述密钥明文或与所述密钥明文对应的密钥 密文添加到所述密钥值节点中。
25. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥信息中读取密钥传输方式; 所述编码装置,还包括: 第一判断模块,用于判断所述密钥传输方式是否为明文传输; 所述添加模块,具体用于在所述第一判断模块判断出所述密钥传输方式为明文传输 时,生成第一明文节点,将所述第一明文节点作为所述密钥值节点的子节点添加到所述密 钥值节点中,将所述读取模块读取到的所述密钥明文作为文本节点添加到所述第一明文节 点中。
26. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥信息中读取密钥传输方式、加密密钥名和加密密钥 算法息; 所述编码装置,还包括: 第一判断模块,用于判断所述密钥传输方式是否为明文传输; 所述生成模块,还用于生成加密密钥节点,将所述加密密钥节点作为所述密钥容器节 点的子节点添加到所述密钥容器节点中;生成密钥名节点,将所述密钥名节点作为所述加 密密钥节点的子节点添加到所述加密密钥节点中;将所述读取模块读取到的所述加密密钥 名作为文本节点添加到所述密钥名节点中; 所述添加模块,具体用于在所述第一判断模块判断出所述密钥传输方式不是明文传输 时,生成密文节点,将所述密文节点作为所述密钥值节点的子节点添加到所述密钥值节点 中;生成第一加密方法节点和第一密码数据节点,将所述第一加密方法节点和所述第一密 码数据节点作为所述密文节点的子节点添加到所述密文节点中;根据所述读取模块读取到 的所述加密密钥算法信息生成第一加密密钥算法节点,将所述第一加密密钥算法节点作为 属性节点添加到所述第一加密方法节点中;生成第一密码值节点,将所述第一密码值节点 作为所述第一密码数据节点的子节点添加到所述第一密码数据节点中;根据与所述加密密 钥名对应的密钥,使用与所述加密密钥算法信息对应的策略,对所述密钥明文进行加密,将 加密得到的密钥密文作为文本节点添加到所述第一密码值节点中。
27. 如权利要求26所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥信息中读取MAC算法信息、加密密钥算法信息和MAC 密钥; 所述生成模块,还用于生成MAC方法节点,将所述MAC方法节点作为所述密钥容器节点 的子节点添加到所述密钥容器节点中;根据所述读取模块读取到的所述MAC算法信息生成 MAC算法节点,将所述MAC算法节点作为属性节点添加到所述MAC方法节点中;生成MAC密 钥节点,将所述MAC密钥节点作为所述MAC方法节点的子节点添加到所述MAC方法节点中; 生成第二加密方法节点和第二密码数据节点,将所述第二加密方法节点和所述第二密码数 据节点作为子节点添加到所述MAC密钥节点中;根据所述读取模块读取到的所述加密密钥 算法信息生成第二加密密钥算法节点,将所述第二加密密钥算法节点作为属性节点添加到 所述第二加密方法节点中;生成第二密码值节点,将所述第二密码值节点作为所述第二密 码数据节点的子节点添加到所述第二密码数据节点中;根据与所述读取模块读取到的所述 加密密钥名对应的密钥,使用与所述加密密钥算法信息对应的策略,对所述读取模块读取 到的所述MAC密钥进行加密,将加密得到的密文作为文本节点添加到所述第二密码值节点 中;生成MAC值节点,将所述MAC值节点作为所述密钥值节点的子节点添加到所述密钥值节 点中;根据所述读取模块读取到的所述MAC密钥,使用与所述读取模块读取到的所述MAC算 法信息对应的策略,对所述密钥明文进行摘要处理,将得到的摘要值作为文本节点添加到 所述MAC值节点中。
28. 如权利要求24所述的编码装置,其特征在于,还包括: 选择模块,用于从所述密钥信息中选取一个未被处理过的密钥属性列表作为当前列 表; 所述读取模块,具体用于从所述选择模块选取的当前列表中读取厂商信息、设备序列 号、密钥标识、密钥算法信息和密钥明文; 所述编码装置,还包括: 第二判断模块,用于在所述添加模块将所述密钥明文或与所述密钥明文对应的密钥 密文添加到所述密钥值节点中后,判断所述密钥信息中是否存在未被处理过的密钥属性列 表,如果是,则触发所述选择模块从所述密钥信息中选取一个未被处理过的密钥属性列表 作为当前列表;否则,确定编码结束。
29. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取发行方信息; 所述生成模块,还用于生成发行方节点,将所述发行方节点作为所述密钥节点的子节 点添加到所述密钥节点中,将所述发行方信息作为文本节点添加到所述发行方节点中。
30. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取设备用户标识; 所述生成模块,还用于生成设备用户标识节点,将所述设备用户标识节点作为所述设 备信息节点的子节点添加到所述设备信息节点中,将所述设备用户标识作为文本节点添加 到所述设备用户标识节点中。
31. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取密码模块标识, 所述生成模块,还用于生成密码模块节点,将所述密码模块节点作为所述密钥包节点 的子节点添加到所述密钥包节点中,生成密码模块标识节点,将所述密码模块标识节点作 为所述密码模块节点的子节点添加到密码模块节点中,将所述密码模块标识作为文本节点 添加到所述密码模块标识节点中。
32. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取密钥用户标识; 所述生成模块,还用于生成密钥用户标识节点,将所述密钥用户标识节点作为所述密 钥节点的子节点添加到所述密钥节点中,将所述密钥用户标识作为文本节点添加到所述密 钥用户标识节点中。
33. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取密钥起始日期、密钥终结日期和密 钥用途信息; 所述生成模块,还用于生成策略节点,将所述策略节点作为所述密钥节点的子节点添 加到所述密钥节点中,生成起始日期节点、终结日期节点和密钥用途节点,将所述起始日期 节点、所述终结日期节点和所述密钥用途节点添加到所述策略节点中,将所述密钥起始日 期作为文本节点添加到所述起始日期节点中,将所述密钥终结日期作为文本节点添加到所 述终结日期节点中,将所述密钥用途信息作为文本节点添加到所述密钥用途节点中。
34. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取响应码长度、响应码编码信息、时间 因子的初始值、时间间隔值和时间偏移量的初始值; 所述生成模块,还用于生成算法参数节点,将所述算法参数节点作为所述密钥节点的 子节点添加到所述密钥节点中,生成响应码格式节点,将所述响应码格式节点作为所述算 法参数节点的子节点添加到所述算法参数节点中,根据所述响应码长度生成响应码长度节 点,根据所述响应码编码信息生成响应码编码信息节点,将所述响应码长度节点和所述响 应码编码信息节点作为属性节点添加到所述响应码格式节点中;生成时间节点,将所述时 间节点作为所述数据节点的子节点添加到所述数据节点中,生成第二明文节点,将所述第 二明文节点作为所述时间节点的子节点添加到所述时间节点中,将所述时间因子的初始值 作为文本节点添加到所述第二明文节点中;生成时间间隔节点,将所述时间间隔节点作为 所述数据节点的子节点添加到所述数据节点中,生成第三明文节点,将所述第三明文节点 作为所述时间间隔节点的子节点添加到所述时间间隔节点中,将所述时间间隔值作为文本 节点添加到所述第三明文节点中;生成时间偏移节点,将所述时间偏移节点作为所述数据 节点的子节点添加到所述数据节点中,生成第四明文节点,将所述第四明文节点作为所述 时间偏移节点的子节点添加到所述时间偏移节点中,将所述时间偏移量的初始值作为文本 节点添加到所述第四明文节点中。
35. 如权利要求24所述的编码装置,其特征在于, 所述读取模块,还用于从所述密钥属性列表中读取响应码长度、响应码编码信息和事 件因子的初始值; 所述生成模块,还用于生成算法参数节点,将所述算法参数节点作为所述密钥节点的 子节点添加到所述密钥节点中,生成响应码格式节点,将所述响应码格式节点作为所述算 法参数节点的子节点添加到所述算法参数节点中,根据所述响应码长度生成响应码长度节 点,根据所述响应码编码信息生成响应码编码信息节点,将所述响应码长度节点和所述响 应码编码信息节点作为属性节点添加到所述响应码格式节点中;生成计数器节点,将所述 计数器节点作为所述数据节点的子节点添加到所述数据节点中,生成第五明文节点,将所 述第五明文节点作为所述计数器节点的子节点添加到所述计数器节点中,将所述事件因子 的初始值作为文本节点添加到所述第五明文节点中。
36. -种解码装置,其特征在于,包括: 查找模块,用于从密钥文件的根节点中查找密钥包节点,如果查找到所述密钥包节点, 则从所述密钥包节点中查找设备信息节点,从所述设备信息节点中查找厂商节点、序列号 节点和密钥节点;如果查找到所述密钥节点,则从所述密钥节点中查找数据节点;如果查 找到所述数据节点,则从所述数据节点中查找密钥值节点; 第一获取模块,用于在所述查找模块查找到所述厂商节点时,获取所述厂商节点的子 节点的文本内容,将获取到的文本内容作为厂商信息进行保存;在所述查找模块查找到所 述序列号节点时,获取所述序列号节点的子节点的文本内容,将获取到的文本内容作为设 备序列号进行保存;在所述查找模块查找到所述密钥节点时,获取所述密钥节点中的密钥 算法节点的属性值,将获取到的属性值作为密钥算法信息进行保存;获取所述密钥节点中 的密钥标识节点的属性值,将获取到的属性值作为密钥标识进行保存; 第二获取模块,用于在所述查找模块查找到密钥值节点时,从所述密钥值节点中获取 密钥明文进行保存, 或者,从所述密钥值节点中获取密钥密文,对所述密钥密文进行解密,对解密得到的密 钥明文进行保存; 显示模块,用于在所述查找模块没有查找到所述密钥包节点、所述密钥节点、所述数据 节点或所述密钥值节点时,显示错误信息。
37. 如权利要求36所述的解码装置,其特征在于, 所述第二获取模块,具体用于从所述密钥值节点中查找明文节点,获取所述明文节点 的子节点的文本内容,将获取到的文本内容作为密钥明文进行保存。
38. 如权利要求36所述的解码装置,其特征在于, 所述第二获取模块,具体用于从所述密钥值节点中查找密文节点,从所述密文节点中 查找第一加密方法节点和第一密码数据节点,获取所述第一加密方法节点中的第一加密密 钥算法节点的属性值作为加密密钥算法信息,从所述第一密码数据节点中查找第一密码值 节点,获取所述第一密码值节点的子节点的文本内容作为密钥密文; 从所述密钥文件的根节点中查找加密密钥节点,从所述加密密钥节点中查找密钥名节 点,获取所述密钥名节点的子节点的文本内容作为加密密钥名,根据与所述加密密钥名对 应的密钥,使用与所述加密密钥算法信息对应的策略,对所述密钥密文进行解密,得到密钥 明文。
39. 如权利要求38所述的解码装置,其特征在于, 所述查找模块,还用于在从所述数据节点中查找到密钥值节点之后,从所述密钥值节 点中查找MAC值节点,从所述密钥文件的根节点中查找MAC方法节点,从所述MAC方法节点 中查找MAC密钥节点,从所述MAC密钥节点中查找第二加密方法节点和第二密码数据节点, 从所述第二密码数据节点中查找第二密码值节点; 所述第一获取模块,还用于获取所述MAC值节点的子节点的文本内容作为摘要值,获 取所述MAC方法节点中的MAC算法节点的属性值作为MAC算法信息,获取所述第二加密方 法节点中的第二加密密钥算法节点的属性值作为加密密钥算法信息,获取所述第二密码值 节点的子节点的文本内容作为MAC密钥密文,根据所述加密密钥名对应的密钥,使用与所 述加密密钥算法信息对应的策略,对所述MAC密钥密文进行解密,得到MAC密钥; 所述解码装置,还包括: 摘要模块,用于根据所述第一获取模块获取到的所述MAC密钥,对所述密钥明文进行 摘要处理; 判断模块,用于判断所述摘要模块摘要处理得到的摘要值是否与所述第一获取模块从 所述MAC值节点中获取的摘要值相同; 所述第二获取模块,具体用于从所述密钥值节点中获取密钥密文,对所述密钥密文进 行解密,得到密钥明文,并在所述判断模块判断出所述摘要模块摘要处理得到的摘要值与 所述第一获取模块从所述密钥值节点中的MAC值节点中获取的摘要值相同时,对所述密钥 明文进行保存; 所述显示模块,还用于在所述判断模块判断出所述摘要模块摘要处理得到的摘要值与 所述第一获取模块从所述密钥值节点中的MAC值节点中获取的摘要值不同时,显示错误信 肩、。
40. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥包节点中查找到密钥节点之后,从所述密钥节点 中查找发行方节点; 所述第一获取模块,还用于在所述查找模块查找到所述发行方节点时,获取所述发行 方节点的子节点的文本内容,将获取到的文本内容作为发行方信息进行保存。
41. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥包节点中查找到设备信息节点之后,从所述设备 信息节点中查找设备用户标识节点; 所述第一获取模块,还用于在所述查找模块查找到所述设备用户标识节点时,获取所 述设备用户标识节点的子节点的文本内容,将获取到的文本内容作为设备用户标识进行保 存。
42. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥文件的根节点中查找到密钥包节点之后,从所述 密钥包节点中查找密码模块节点,从所述密码模块节点中查找密码模块标识节点; 所述第一获取模块,还用于在所述查找模块查找到所述密码模块标识节点时,获取所 述密码模块标识节点的子节点的文本内容,将获取到的文本内容作为密码模块标识进行保 存。
43. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥包节点中查找到密钥节点之后,从所述密钥节点 中查找密钥用户标识节点; 所述第一获取模块,还用于在所述查找模块查找到所述密钥用户标识节点时,获取所 述密钥用户标识节点的子节点的文本内容,将获取到的文本内容作为密钥用户标识进行保 存。
44. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥包节点中查找到密钥节点之后,从所述密钥节点 中查找策略节点,从所述策略节点中查找起始日期节点、终结日期节点和密钥用途节点; 所述第一获取模块,还用于在所述查找模块查找到所述起始日期节点时,获取所述起 始日期节点的子节点的文本内容,将获取到的文本内容作为密钥起始日期进行保存;在所 述查找模块查找到所述终结日期节点时,获取所述终结日期节点的子节点的文本内容,将 获取到的文本内容作为密钥终结日期进行保存;在所述查找模块查找到所述密钥用途节点 时,获取所述密钥用途节点的子节点的文本内容,将获取到的文本内容作为密钥用途信息 进行保存。
45. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥包节点中查找到密钥节点之后,从所述密钥节点 中查找算法参数节点,从所述算法参数节点中查找响应码格式节点;在从所述密钥节点中 查找到数据节点之后,从所述数据节点中查找时间节点、时间间隔节点和时间偏移节点,从 所述时间节点中查找第二明文节点,从所述时间间隔节点中查找第三明文节点,从所述时 间偏移节点中查找第四明文节点; 所述第一获取模块,还用于在所述查找模块查找到所述响应码格式节点时,获取所述 响应码格式节点中的响应码长度节点的属性值,将获取到的属性值作为响应码长度进行保 存,获取所述响应码格式节点中的响应码编码信息节点的属性值,将获取到的属性值作为 响应码编码信息进行保存;在所述查找模块查找到所述第二明文节点时,获取所述第二明 文节点的子节点的文本内容,将获取到的文本内容作为时间因子的初始值进行保存;在所 述查找模块查找到所述第三明文节点时,获取所述第三明文节点的子节点的文本内容,将 获取到的文本内容作为时间间隔值进行保存;在所述查找模块查找到所述第四明文节点 时,获取所述第四明文节点的子节点的文本内容,将获取到的文本内容作为时间偏移量的 初始值进行保存。
46. 如权利要求36所述的解码装置,其特征在于, 所述查找模块,还用于在从所述密钥包节点中查找到密钥节点之后,从所述密钥节点 中查找算法参数节点,从所述算法参数节点中查找响应码格式节点;在从所述密钥节点中 查找到数据节点之后,从所述数据节点中查找计数器节点,从所述计数器节点中查找第五 明文节点; 所述第一获取模块,还用于在所述查找模块查找到所述响应码格式节点时,获取所述 响应码格式节点中的响应码长度节点的属性值,将获取到的属性值作为响应码长度进行保 存,获取所述响应码格式节点中的响应码编码信息节点的属性值,将获取到的属性值作为 响应码编码信息进行保存;在所述查找模块查找到所述第五明文节点时,获取所述第五明 文节点的子节点的文本内容,将获取到的文本内容作为事件因子的初始值进行保存。
【文档编号】H04L9/08GK104092537SQ201410314409
【公开日】2014年10月8日 申请日期:2014年7月3日 优先权日:2014年7月3日
【发明者】陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1