CN103563289A - 保护加密系统中的控制向量 - Google Patents

保护加密系统中的控制向量 Download PDF

Info

Publication number
CN103563289A
CN103563289A CN201280025794.6A CN201280025794A CN103563289A CN 103563289 A CN103563289 A CN 103563289A CN 201280025794 A CN201280025794 A CN 201280025794A CN 103563289 A CN103563289 A CN 103563289A
Authority
CN
China
Prior art keywords
key
optional
parameter
block
length
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.)
Granted
Application number
CN201280025794.6A
Other languages
English (en)
Other versions
CN103563289B (zh
Inventor
R·V·基斯利
T·W·阿诺德
C·D·弗雷尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103563289A publication Critical patent/CN103563289A/zh
Application granted granted Critical
Publication of CN103563289B publication Critical patent/CN103563289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于保护加密系统中的控制向量的方法,包括:验证传递到参数数据库的参数;计算控制向量CV数据所需的长度;根据所述计算的结果准备可选块;将所述CV转换为用于标准化密钥块的格式,同时将所转换的CV复制到所述可选块中;以及更新所述标准化密钥块中的可选块数据。

Description

保护加密系统中的控制向量
背景技术
本发明涉及数据处理,更具体地说,涉及加密方法和结构。
安全软件供应商具有专用的密钥管理数据结构和控制机制,以便帮助实施客户密钥管理策略。这些数据结构称为密钥令牌或密钥块。最近,随着对增加安全性的需要的增长,不同实体开始使用来自不同供应商的多种密钥管理数据结构。这导致需要不同供应商的此类多种密钥管理数据结构系统之间的接口。
因此,通过美国国家标准协会(ANSI)X9工作组开发一种技术报告(TR),以便创建一种用于在相关方之间进行密钥交换的格式。该格式称为TR-31,并且指定标准化密钥块的布局包括用于密钥类型、算法和控制的数个数据字段以及包装机制,这些包装机制使用另一个密钥将密钥包装为放置在密钥块之后的有效负载中的不透明数据块。包装机制指定一种方法,该方法以加密方式将密钥控制信息绑定到密钥块中作为包装机制的一部分。具体地说,TR-31密钥块定义用于密钥使用、密钥管理和包装信息的属性字段以及数个用于其它用途的其它字段。但是,TR-31密钥块未指定用于将专用密钥数据结构映射到TR-31密钥块的方法。
例如,给定启用加密的计算系统可以包括实现公共加密体系结构(CCA)的硬件安全模块(HSM),CCA指定密钥控制信息的字节数组(即,控制向量(CV)),CV在密钥令牌中以加密方式绑定到加密密钥。在这种情况下,CV控制HSM安全边界内部的密钥控制信息,并且涉及密钥使用和密钥管理,其中数据表示密钥类型、密钥子类型、密钥管理策略和密钥使用策略。密钥类型是可以使用密钥实现的广泛能力,例如对数据进行加密和/或解密,对密钥进行包装或解包,计算或检验消息验证代码,用于各种金融活动,例如对PIN信息进行加密或解密,以及生成或检验PIN信息。密钥子类型是在密钥类型支持的操作中针对密钥能力的限制,例如将密钥限于仅用于对数据进行加密或者对数据进行解密,但不用于这两者。密钥管理策略控制可如何分发(或者不分发)密钥,例如是否可以将密钥导出到另一个系统,并且如果可以,其是否可以在被包装在TR-31密钥块中时导出。密钥使用策略控制可如何在类型和子类型施加的这些限制之外使用密钥,这些限制例如包括针对可以处理的数据类型的限制(对于将成为加密/解密密钥的密钥),或者针对可以与密钥一起包装的密钥类型的限制(对于将用于对其它密钥进行包装/解包的密钥)。如上所述,未指定用于将此类CCA CV数据转换为适用于TR-31密钥块的表示的方法。
发明内容
根据本发明的一个方面,提供一种计算机程序产品,并且所述计算机程序产品包括有形存储介质,所述有形存储介质可由处理电路读取并且其上存储指令以便由所述处理电路执行以执行一种方法。所述方法包括:验证传递到参数数据库的参数;计算控制向量(CV)数据所需的长度;根据所述计算的结果准备可选块;将所述CV转换为用于标准化密钥块的格式,同时将所转换的CV复制到所述可选块中;以及更新所述标准化密钥块中的可选块数据。
根据本发明的另一个方面,提供一种方法。所述方法包括:验证传递到参数数据库的参数;计算控制向量(CV)数据所需的长度;根据所述计算的结果准备可选块;将所述CV转换为用于标准化密钥块的格式,同时将所转换的CV复制到所述可选块中;以及更新所述标准化密钥块中的可选块数据。
根据本发明的另一个方面,提供一种系统。所述系统包括被配置为执行一种方法的处理电路。所述方法包括:验证传递到参数数据库的参数;计算控制向量(CV)数据所需的长度;根据所述计算的结果准备可选块;将所述CV转换为用于标准化密钥块的格式,同时将所转换的CV复制到所述可选块中;以及更新所述标准化密钥块中的可选块数据。
通过本发明的技术实现其它特性和优点。在此详细描述了本发明的其它实施例和方面,并且这些实施例和方面被视为要求保护的本发明的一部分。为了更好地理解本发明以及优点和特性,将参考说明书和附图。
附图说明
现在仅通过实例的方式参考附图描述本发明的一个或多个实施例,这些附图是:
图1是计算系统的示意图;
图2是密钥块字段的图;
图3是示出在导出操作中映射密钥信息的方法的流程图;
图4是示出构建可选块的方法的流程图;
图5是示出保护可选块中的控制向量的方法的流程图;
图6是示出在导入操作中映射密钥信息的方法的流程图;以及
图7是示出解析可选块数据的方法的流程图。
具体实施方式
本发明的各个方面涉及一种用于将密钥令牌控制信息映射到标准化密钥块指定的数据字段的方法,其中所述方法包括导出操作。输出密钥块将包含密钥控制信息,其通过标准密钥块的包装方法以加密方式绑定到密钥材料。将从密钥令牌和消歧信息获得该密钥控制信息,以便指导在导出操作之前或期间指定的转换。本发明的各个方面还涉及一种用于迭代构建可选块的有效包的方法,该有效包在随后创建标准化密钥块中用作输入。本发明的各个方面还指定一种以适合用于密钥块可选块的表示对密钥令牌信息进行编码的方法,以及一种用于安全地记录该操作被允许或不允许的方法。
本发明的各个方面还涉及一种用于将标准密钥块指定的数据字段信息映射到密钥令牌信息的方法,其中所述方法包括导入操作。这不同于导出情况,因为安全权衡是不对称的,并且在导入时,可能危及本地系统。输出密钥令牌将包含密钥控制信息,其通过已定义的包装方法以加密方式绑定到密钥材料。将从标准密钥块中的密钥控制信息和消歧信息获得该密钥控制信息,以便指导在导出操作之前或期间指定的转换。本发明的各个方面还涉及一种方法,所述方法用于解析和验证标准密钥块,并且返回与驻留在密钥块中的可选块数据有关的特定和/或被请求的信息。
参考图1,提供计算系统10作为访问控制系统,其中由服务和可以在该服务中执行的特定的功能来限制用户能力。每个能力称为访问控制点(ACP)。可以包含管理用于用户操作的ACP的访问控制系统,以便在包括至少第一和第二计算设备20和30的加密处理系统中控制访问。
第一和第二计算设备20和30通过有线或无线网络40彼此相连。第一和第二计算设备20和30均包括有形存储介质21和31,有形存储介质21和31可由处理电路22和32读取,并且具有存储在其上的可执行指令以便由处理电路22和32执行以执行在此描述的一种或多种方法。具体地说,第一和第二计算设备20和30均包括由相应存储介质21、31协作定义的相应硬件安全模块(HSM),以及相应处理电路22、32。相应HSM处理密钥控制信息到加密密钥的绑定以及其它职责,并且每个HSM可以为此实现数个体系架构中的任何一个或多个。因此,相应HSM可以实现相同或不同的体系结构。
在一个示例性实例中,第一计算设备20的HSM实现公共加密体系结构(CCA),并且被指示向第二计算设备30发送密钥令牌100,密钥令牌100包括密钥控制信息和密钥控制信息以加密方式被绑定到的加密密钥。因此,因为第一和第二计算设备20和30中的每一个的HSM可以实现也可以不实现相同的体系结构,所以第一计算设备20的HSM必须借助参数数据库201和转换表202(均存储在存储介质21中)以安全方式将密钥控制信息导出到标准化密钥块,并且第二计算设备30的HSM必须借助参数数据库301和转换表302(均存储在存储介质31中)从密钥块导入所导出的密钥控制信息。
如上所述,HSM可以均实现相同(即,CCA)或不同的体系结构,但在任何一种情况下,第一计算设备20的HSM可能必须修改密钥令牌100,从而生成标准化密钥块400(以下称为“密钥块400”),其包括已导出的密钥控制信息。第二计算设备30的HSM在接收到密钥块400之后,可能进一步必须从密钥块400导入密钥控制信息并且将其导入到新的密钥令牌500。因此,第一和第二计算设备20和30的HSM可能需要针对密钥块400执行信息转换(即,通过在导出操作中将信息转换为密钥块400的格式,或者在导入操作中执行相反操作)。
在均使用CCA的HSM的实例中,转换表202、302提供各种密钥块400使用和模式值与CV密钥类型和子类型值之间的映射。根据CCA文档定义“输出CCA类型”值和“输出CCA使用”值。每个转换可能需要启用可能唯一的ACP,并且通过这种方式,系统安全管理员可以直接按用户控制允许用户从密钥块400格式导入的CCA密钥类型。这很重要,因为密钥块400通常可以导入到多个CCA类型和子类型组合。
虽然在此提供的描述可以涉及多个体系结构以便以加密方式将密钥控制信息绑定到加密密钥和任何标准化密钥块,但出于清晰和简洁目的,假设第一和第二计算设备20和30中的每个设备的相应HSM实现CCA,并且密钥块400是ANSI TR-31(以下称为“TR-31”)的密钥块。
参考图2,密钥块400包括至少九个密钥块字段,如下所示。密钥块版本标识(ID)字段410标识密钥块400的版本,版本本身定义用于以加密方式保护密钥块400的方法以及密钥块400的进一步标识的内容和布局。密钥块长度字段420提供密钥块400的长度。密钥使用字段430提供有关以加密方式绑定到密钥块400的受保护密钥和/或敏感数据的预期功能的信息。算法字段440指示可以针对其使用以加密方式绑定到密钥块400的受保护密钥和/或敏感数据的算法。使用模式字段450定义以加密方式绑定到密钥块400的受保护密钥和/或敏感数据可以执行的操作。密钥版本号字段460是字符版本号,其用于指示密钥块400的内容是旧密钥的组成部分或者用于防止重新注入旧密钥。可导出性字段470定义是否可以在加密域之外传输以加密方式绑定到密钥块400的受保护密钥和/或敏感数据。可选块数量字段480定义包括在密钥块400中的可选块数量。可选块字段490包括可变数量的可选块,每个可选块包含ID、长度信息和可变长度数据。
在导出操作中,第一计算设备20的用户将以下参数传递到第一计算设备20的HSM访问的对象(例如参数数据库201),以便将密钥控制信息导出到密钥块400。所述参数包括指示对应指令的规则数组关键字,例如要放置在密钥块版本ID字段410中的单个密钥块保护方法、要放置在密钥使用字段430中的输出密钥块400的密钥使用值、要放置在使用模式字段450中的密钥使用模式、用于设置可导出性字段470的可选导出控制代码,以及要放置在可选块字段490中的可选控制向量传输控制。
密钥块保护方法可以是以下任何一个:VARXOR-A类型,其使用对应于TR31-KBV的变体方法并且通过放置在密钥块版本ID字段410中的“A”标识;VARDRV-B类型,其使用对应于TR31-KBV的密钥推导方法并且通过放置在密钥块版本ID字段410中的“B”标识;以及VARXOR-C类型,其使用对应于TR31-KBV的变体方法并且通过放置在密钥块版本ID字段410中的“C”标识。
密钥使用值可以是以下任何一个:具有关键字“BDK”的基本推导密钥,其通过放置在密钥使用字段430中的“B0”标识;具有关键字“CVK”的卡检验密钥,其通过放置在密钥使用字段430中的“C0”标识;具有关键字“ENC”的数据加密密钥,其通过放置在密钥使用字段430中的“D0”标识;具有关键字“EMVACMK”的EMV应用加密主密钥,其通过放置在密钥使用字段430中的“E0”标识;具有关键字“EMVSCMK”的EMV机密性安全消息传送主密钥,其通过放置在密钥使用字段430中的“E1”标识;具有关键字“EMVSIMK”的EMV完整性安全消息传送主密钥,其通过放置在密钥使用字段430中的“E2”标识;具有关键字“EMVDAMK”的EMV数据认证代码密钥,其通过放置在密钥使用字段430中的“E3”标识;具有关键字“EMVDNMK”的EMV动态数量主密钥,其通过放置在密钥使用字段430中的“E4”标识;具有关键字“EMVCPMK”的EMV卡个性化主密钥,其通过放置在密钥使用字段430中的“E5”标识;具有关键字“KEK”的密钥加密密钥,通过放置在密钥使用字段中的“K0”标识;具有关键字“KEK-WRAP”的用于对TR-31块进行包装的密钥加密密钥,其通过放置在密钥使用字段430中的“K1”标识;具有关键字“ISOMAC0”的用于使用TDES的ISO16609MAC算法1的密钥,其通过放置在密钥使用字段430中的“M0”标识;具有关键字“ISOMAC1”的用于ISO9797-1MAC算法1的密钥,其通过放置在密钥使用字段430中的“M1”标识;具有关键字“ISOMAC3”的用于ISO9797-1MAC算法3的密钥,其通过放置在密钥使用字段430中的“M3”标识;具有关键字“PINENC”的PIN加密密钥,其通过放置在密钥使用字段430中的“P0”标识;具有关键字“PINVO”的PIN检验密钥(“other”算法),其通过放置在密钥使用字段430中的“V0”标识;具有关键字“PINV3624”的用于IBM3624算法的PIN检验密钥,其通过放置在密钥使用字段430中的“V1”标识;以及具有关键字“VISAPVV”的PIN检验密钥(VISAPVV算法),其通过放置在密钥使用字段430中的“V2”标识。
密钥使用模式可以是以下任何一个:具有关键字“ENCDEC”的加密和解密,其通过放置在使用模式字段450中的“B”标识;具有关键字“DEC-ONLY”的仅解密,其通过放置在使用模式字段450中的“D”标识;具有关键字“ENC-ONLY”的仅加密,其通过放置在使用模式字段450中的“E”标识;具有关键字“GENVER”的MAC或PIN生成和检验,其通过放置在使用模式字段450中的“C”标识;具有关键字“GEN-ONLY”的仅MAC或PIN生成,其通过放置在使用模式字段450中的“G”标识;具有关键字“VER-ONLY”的仅MAC或PIN检验,其通过放置在使用模式字段450中的“V”标识;具有关键字“DERIVE”的密钥推导,其通过放置在使用模式字段450中的“X”标识;以及具有关键字“ANY”的任何允许模式,其通过放置在使用模式字段450中的“N”标识。
用于设置可导出性字段470的可选导出控制代码可以指示以下任何一个:具有关键字“EXP-ANY”的使用任何密钥加密密钥的允许导出,其通过放置在可导出性字段470中的“S”标识;具有关键字“EXP-TRST”的使用可信密钥加密密钥(如在用于密钥块400的标准中定义)的允许导出,其通过放置在可导出性字段470中的“E”标识;以及具有关键字“EXP-NONE”的禁止导出,其通过放置在可导出性字段470中的“N”标识。要放置在可选块字段490中的可选控制向量传输控制可以指示以下任何一个:具有关键字“INCL-CV”的用于将CV作为可选字段包括在密钥块400标头中的指令,其中根据下面描述的转换将密钥使用字段430和使用模式字段450设置为非数字值;以及具有关键字“ATTR-CV”的用于将CV作为可选字段包括在密钥块400标头中的指令,其中将密钥使用字段430和使用模式字段450设置为预定值。
所述参数还包括“密钥版本号”、“密钥字段长度”、“源密钥标识符长度”、“源密钥标识符”、“解包kek标识符长度”、“解包kek标识符”、“包装kek标识符长度”、“包装kek标识符”、“可选块长度”、“可选块”、“tr31密钥块长度”以及“tr31密钥块”。密钥版本号参数可以是两字节数字,并且可以复制到密钥块400的密钥版本号字段460中,除非密钥令牌100中的源密钥标识符参数是密钥一部分,在这种情况下将忽略该参数并且将密钥版本号字段设置为值“c0”。密钥字段长度参数可以是整数参数,其指定在密钥块400中加密的密钥字段的长度。根据各实施例,长度是8的倍数,并且大于或等于在密钥令牌100中与源密钥标识符参数一起传递的“明文”密钥的长度加上密钥块400中在该密钥之前的2字节密钥长度的长度。源密钥标识符长度参数指向整数,该整数指定源密钥标识符参数的长度。源密钥标识符参数指向字符串变量,该变量包含要导出的密钥令牌100。解包kek标识符长度参数指向整数,该整数指定解包kek标识符参数的长度。解包kek标识符参数指向包含密钥令牌100的字符串变量,密钥令牌100包含用于解包的包装密钥,前提是源密钥标识符参数中的密钥令牌100在不同于保存在第一计算设备20的HSM内部的密钥的密钥下进行包装。如果未指定包装kek标识符参数,则使用该参数对密钥块400进行包装。包装kek标识符长度参数指向整数,该整数指定包装kek标识符参数的长度。包装kek标识符指向字符串变量,该变量包含密钥令牌100,密钥令牌100包含用于对密钥块400进行包装的包装密钥。可选块长度参数指向整数变量,该变量指定可选块参数的长度。可选块参数指向缓冲区,该缓冲区包含要包括在输出密钥块400中的可选块数组。可能需要先前以正确格式准备可选块数组。tr31密钥块长度参数指向整数,该整数指定tr31密钥块参数的长度。根据各实施例,在输入时,tr31密钥块长度参数指定可用于输出密钥块400的缓冲区大小,并且在返回时,更新tr31密钥块长度参数以便包含该返回的令牌的实际长度。tr31密钥块指向其中将放置输出密钥块400的字符串变量。
参考图3,现在将描述导出过程。初始地,在操作600中检查导出所需的条件。检查包括验证规则数组参数,验证包括最小数量的关键字并且每个所需的关键字组中仅1个关键字,以及检验规则数组、密钥版本号、密钥字段长度、源密钥标识符长度、源密钥标识符、解包kek标识符长度、解包kek标识符、包装kek标识符长度、包装kek标识符、可选块长度、可选块、tr31密钥块长度以及tr31密钥块参数都未缺少,如在某些实施例中通过检测空指针发现的那样。如果缺少任何参数(即,它们是空指针),则所述过程中止。
操作600的检查还包括验证在源密钥标识符、解包kek标识符和包装kek标识符参数中传递的密钥令牌100。该验证包括检验使用源密钥标识符参数传递的值是具有版本、长度、控制信息的有效密钥令牌100,并且如果不是,则所述过程中止。验证还包括检验使用解包kek标识符传递的值是有效密钥令牌100,并且如果不是,则所述过程中止。当已解析源密钥标识符参数和解包kek标识符参数两者时,使用解包kek标识符参数或保存在第一计算设备20的HSM内部的包装密钥对源密钥标识符中的密钥材料进行解包。验证还包括检验使用包装kek标识符传递的值是有效密钥令牌100以及是否传递任何令牌。如果不是,则所述过程中止。
操作600的检查还包括检验在解包kek标识符参数中接收的密钥令牌100是否具有CV以便允许对源密钥标识符参数进行解包或转换,检验在包装kek标识符参数中接收的密钥令牌100是否具有CV以便允许对源密钥标识符参数进行包装或转换,并且验证是否可以导出源密钥标识符参数中的密钥令牌100。此时还确定是否可以将密钥令牌100导出为密钥块400,以及检查是否针对适当的ACP授权所请求的操作。
如果操作600的检查结果是肯定的,则所述方法在操作610中继续,以准备密钥块400。该操作首先包括验证密钥字段长度参数并且验证在可选块参数中传递的可选块。该验证包括不允许重复的块标记,允许数字块标记,字母块标记需要符合标准,长度字段足够,计算数字可选块参数(如果计数大于预定数值(例如99),则所述过程中止),判定可选块部分的总长度是否促使密钥块400总长度太大,以及将可选块复制到可选块字段490。
操作610的准备还包括准备任何其它可选块,例如用于承载编码版本的源密钥标识符参数CV的可选块,并且验证密钥版本号具有正确的格式。如果传递的密钥版本号参数以“c”开头并且密钥令牌100不是部分的,则所述过程中止。如果传递的密钥版本号参数以“c”开头并且密钥令牌100是部分的,则所述过程使用传递的版本号代替默认“c0”。如果传递的密钥版本号参数不以“c”开头并且密钥令牌100是部分的,则将完全忽略密钥版本号参数并且针对密钥块400使用“c0”。
在操作610的准备之后,所述方法继续,在操作620中创建密钥块400。操作620的创建包括创建和填充空密钥块400结构,并且确定要用于密钥块400的CV转换方法。所述确定包括为可选块字段490准备CV,并且根据CV准备密钥使用字段430和使用模式字段450,如在转换表202中描述的那样,前提是将INCL-CV传递到参数数据库201。备选地,所述确定包括为可选块字段490准备CV,并且将密钥使用字段430和使用模式字段450设置为预定值,前提是将ATTR-CV传递到参数数据库201。根据另一个备选方案,所述确定包括根据CV准备密钥使用字段430和使用模式字段450,如在转换表202中描述的那样,前提是未将关键字传递到参数数据库201。
在操作620的创建之后,在操作630中完成密钥块400。操作630的完成包括根据规定的包装方法准备密钥块400的密钥承载部分,在可选块字段490之后连接包装密钥部分以便创建密钥块400,以及将密钥块复制到tr31密钥块参数并将tr31密钥块长度更新为最终长度。
根据本发明的进一步方面,提供一种方法,由此迭代构建针对密钥块400设置格式的有效可选块数组。
根据本发明,本发明的用户通过其它方法或者按照值,将以下参数(它们全部定义为指针)传递到参数数据库201。所述参数包括可选块缓冲区长度参数、可选块长度参数、可选块参数、数字可选块参数、可选块id参数、可选块数据长度参数以及可选块数据参数。可选块缓冲区长度参数指向整数,该整数包含使用可选块参数传递的缓冲区的长度。该长度用于确定向缓冲区的当前内容中添加新可选块是否将使缓冲区溢出。可选块长度参数指向整数,该整数包含可选块缓冲区中的数据的长度。在输入时,该参数指定当前在可选块中的数据的长度。在输出时,使用在向该缓冲区中的可选块组中添加新可选块之后的长度更新该参数。可选块参数指向缓冲区,该缓冲区包含构建的可选块组。初始地,该参数将为空,然后在每次迭代中将可选块附加到缓冲区。可选块缓冲区长度参数指定该缓冲区的总长度,并且如果在可选块数据参数中向当前内容中添加可选块而超过该长度,则返回错误。数字可选块参数指向整数,该整数包含在可选块参数中返回的结构中包含的可选块数量。提供该参数作为输出参数,以便它可以随后用作处理的输入,该处理可以构建完整密钥块400。在输入时不检查该参数,仅在成功输出时更新该参数。可选块id参数指向两字节值,该值将成为在可选块数据参数中传递的可选块的标识符标记。可选块数据长度参数指向整数,该整数指定在可选块数据参数中传递的数据的长度。该长度可以是零,因为可选块可以有效地具有标记和长度,但没有数据。可选块数据参数指向缓冲区,应用在可选块参数中将以下可选块的数据传递到该缓冲区:该可选块要添加到已经在缓冲区中的那些可选块。在可选块数据长度参数中指定该数据的长度。
参考图4,示出根据各实施例的迭代构建针对密钥块400设置格式的有效可选块数组的方法。
所述方法包括初始检验操作700,后跟解析操作710。操作700的检验包括检验可选块缓冲区长度、可选块长度、可选块、数字可选块、可选块id、可选块数据长度或可选块数据参数都未缺少(即,它们是空指针)。如果任何参数为空,则所述过程中止。接下来,检验可选块缓冲区长度、可选块长度、数字可选块、可选块数据长度整数参数都没有负值(即,它们具有大于或等于0的值)。然后,检验缓冲区具有足够的空间以便向其中添加新的可选块。
操作710的解析包括解析可选块参数中的可选块数据,以便验证它并且确定它的长度和包含的可选块数量,前提是用户自身已准备缓冲区的一部分,以便本发明必须能够保证可选块的输出数组完全有效。操作710的解析还禁止重复的块标记,允许数字块标记,检验字母块标记针对密钥块400具有正确的格式,检验长度字段具有足够的长度,并且确定如果数字可选块参数等于99,则无法添加另一个可选块。
在操作710的解析之后,在操作720中验证要添加的可选块ID,其中防止用户尝试添加填充块“PB”。根据操作720,不允许与已经在数组中的那些块标记重复,允许数字块标记,并且字母块标记必须针对密钥块400具有正确的格式。接下来,在操作730中根据可选块参数的值来确定将新可选块存储在缓冲区中的何处。
然后在操作740中,根据可选块参数将新可选块插入到缓冲区的上述计算的起始地址处。插入包括检验可选块id参数中的值具有正确的格式,将值从可选块id参数复制到可选块字段490,检验值适当,将长度值从可选块数据长度参数转换为正确的格式,将具有正确格式的长度值复制到密钥块长度字段420,检验缓冲区中的数据具有正确的格式,以及将在可选块数据参数中传递的数据复制到密钥块400。
在操作750中,更新可选块长度参数的值以便指示添加新可选块之后的新长度,使得可选块长度参数的值等于可选块长度参数加上新数据长度参数的值。在操作760中,在可选块参数的值中返回可选块的数字可选块参数的值中的新的正确总计数。
根据本发明的另一方面,第一计算设备20的用户可能希望即使在第二计算设备30的HSM也实现与第一计算设备20相同的体系结构的情况下,当导出密钥块400中的密钥令牌100时,也能够保持他的CV以加密方式绑定到密钥。但是,通常密钥块400没有指定的用于将专用密钥控制数据结构(例如CCA CV)映射到密钥块400的方法。因此,提供一种方法,由此以适合于密钥块400的表示将专用材料编码在密钥块400中,并且针对给定CCA CV密钥安全地记录是允许还是禁止该操作。
本方法在密钥块400中使用一个可选块,并且定义格式和处理方法以便在可选块字段490中对CV进行编码。根据密钥块400标准,某些数字可选块标记表示在可选块字段490中表示的专用信息。本方法涉及两点。第一点是对用户关于是否可以以密钥块400的格式导出CCA密钥所做的策略决策进行安全编码。通过在HSM内部执行CCA密钥包装方法,将该策略安全地绑定到CCA密钥,以便如果在HSM外部存储密钥承载数据结构时更改了CV策略位,则CCA密钥材料值随后在HSM内部解包时将有所不同并且因此无用。第二点涉及可选块“数据”部分中的数据的格式化和编码,其中根据以下所述来布置得到的可选块字段490。
参考图5,当第一计算设备20的用户请求在密钥块400中对密钥令牌100进行编码并且请求密钥令牌100附带CV时,根据以下所述来继续所述方法。首先,在操作800中验证传递到参数数据库201的参数。在此,将密钥令牌100定义为一种数据结构,其包含CV和以加密方式绑定到CV的密钥,使得改变CV将更改密钥并且致使其无用,其中密钥令牌100具有有效的版本和格式,包含密钥和CV,并且CV表示允许在密钥块400中导出密钥令牌100。此外,至少初始地将密钥块400定义为部分准备好的密钥块400,其具有用于添加新可选块的空间和小于最大值的计数。接下来,在操作810中计算和检验CV数据的必需长度,并且在操作820中准备密钥块400的可选块标记和长度字段。在操作830中准备专用信息的标识符、子块标识符和长度字段,并且在操作840中将CV转换为正确的格式。最后,在操作850中更新可选块计数。
在导入操作中,第二计算设备30的用户将以下参数传递到由第二计算设备30的HSM访问的参数数据库301,以便将信息从密钥块400导入到新密钥令牌500。所述参数包括规则数组关键字,例如单一密钥包装方法、“C0”子组、“K0”或“K1”子组、“V0”/“V1”/“V2”子组、“E0”/“E2”子组、“E1”子组、“E5”子组、密钥推导级别以及密钥类型修饰符。单一密钥包装方法可以是以下之一:指内部密钥令牌的“INTERNAL”和指外部密钥令牌的“EXTERNAL”。如转换表302定义的,每个子组对应于新密钥令牌500中的一个指令。
在“C0”子组中可以是CVK-CVV和CVK-CSC指令之一,以便将密钥块400CVK指令转换为新密钥令牌500指令,从而用于计算各种信用卡检验值。在“K0”或“K1”子组中可以是EXPORTER、OKEYXLAT、IMPORTER和IKEYXLAT指令之一,以便用于密钥块400K0-E/D或K0-B使用和模式密钥,从而将密钥块400KEK指令转换为新密钥令牌500类型密钥。在“V0”/“V1”/“V2”子组中可以是PINGEN和PINVER指令之一,以便将密钥块400PIB检验密钥转换为新密钥令牌500PINGEN或PINVER密钥。在“E0”/“E2”子组中可以是DMAC和DMV指令之一,以便将应用加密或安全消息传送指令的密钥块400EMV主密钥转换为新密钥令牌500DKYGENKY类型密钥,其具有DMAC或DMV子类型。在“E1”子组中可以是DMPIN和DDATA指令之一,以便将机密性安全消息传送指令的密钥块400EMV主密钥转换为新密钥令牌500DKYGENKY类型密钥,其具有DMPIN或DDATA子类型。在“E5”子组中可以是DMAC、DMV和DEXP指令之一,以便将用于卡个性化的密钥块400EMV主密钥转换为新密钥令牌500类型密钥,其具有DMAC、DMV或DEXP子类型。在密钥推导级别中可以是DKYL0和DKYL1指令之一,以便在推导级别DKYL0或DKYL1将密钥块400EMV主密钥转换为新密钥令牌500类型密钥。在密钥类型修饰符中可以是NOOFFSET指令,该指令仅针对“V0”/“V1”密钥块400使用值有效,并且指示第二计算设备30的HSM将无法参与生成或检验的PINGEN或PINVER类型密钥导入密钥令牌500中。
所述参数还包括tr31密钥块长度参数、tr31密钥块参数、解包kek标识符长度参数、解包kek标识符参数、包装kek标识符长度参数、包装kek标识符参数、输出密钥标识符长度参数、输出密钥标识符参数、数字可选块参数、cv源参数以及保护方法参数。tr31密钥块长度参数指向整数,该整数指定tr31密钥块参数的长度。tr31密钥块参数指向字符串变量,该变量包含要导入的密钥块400输入密钥块。解包kek标识符长度参数指向整数,该整数指定解包kek标识符参数的长度。解包kek标识符参数指向字符串变量,该变量包含新密钥令牌500,新密钥令牌500包含包装密钥以便用于对tr31密钥块参数进行解包。如果未指定包装kek标识符并且传递“EXTERNAL”规则数组关键字,则该参数还用于对新密钥令牌500进行包装以便同样用于输出。包装kek标识符长度参数指向整数,该整数指定包装kek标识符参数的长度。包装kek标识符参数指向字符串变量,该变量包含新密钥令牌500,新密钥令牌500包含包装密钥以便用于对输出新密钥令牌500进行包装,前提是需要不同的包装密钥并且传递了“EXTERNAL”规则数组关键字。输出密钥标识符长度参数指向整数,该整数指定输出密钥标识符参数的长度。在输入时,该参数必须指定可用缓冲区的大小,并且在返回时,更新该参数以便包含该返回的令牌的实际长度。输出密钥标识符参数指向其中将放置新密钥令牌500的字符串变量。数字可选块参数指向整数变量,其中将放置存在于密钥块400中的可选块的数量。cv源参数指向整数变量,该变量在输出时将保存指示如何在输出新密钥令牌500中创建CV的值。该参数可以是以下三个值之一:0x00,其指示可选密钥块400中不存在CV,并且根据输入规则数组关键字和密钥块400中的属性创建输出CV;0x01,其指示从密钥块400中的可选块获得CV,还指定使用和模式,并且使用CV针对这些值检验兼容性,然后将CV用于输出新密钥令牌500;或者0x02,其指示从密钥块400中的可选块获得CV,使用和模式保存指示包括的CV是控制信息的唯一源的预定值,并且使用来自密钥块400的CV作为新密钥令牌500的CV。保护方法参数指向整数变量,该变量在输出时将保存指示使用何种方法保护输入密钥块400的值。该参数可以是以下三个值之一:0x00、0x01或0x02,它们指示使用具有密钥块版本ID“A”、“B”或“C”的方法保护密钥块400。
参考图6,现在将描述导入过程。初始地,在操作900中检查导入所需的条件。所述检查包括验证规则数组参数,所述验证包括最小数量的关键字并且每个所需的关键字组中仅1个关键字以及每个可选的关键字组中0或1个关键字,并且检验tr31密钥块长度、tr31密钥块、解包kek标识符长度、解包kek标识符、包装kek标识符长度、包装kek标识符、输出密钥标识符长度、输出密钥标识符、数字可选块、cv源以及保护方法参数都未缺少(即,它们是空指针)。
操作900的检查还包括验证在解包kek标识符和包装kek标识符参数中传递到参数数据库301的密钥令牌100。该验证包括检验使用解包kek标识符参数传递到参数数据库301的值有效,以及检验使用包装kek标识符传递到参数数据库301的值有效。
操作900的检查还包括检验在解包kek标识符参数中接收的密钥令牌100是否具有CV以便允许通过CV控制集对tr31密钥块参数进行解包或转换,检验在包装kek标识符参数中接收的密钥令牌100是否具有CV以便允许对输出密钥标识符参数进行包装或转换,并且验证密钥块400。该验证包括验证密钥块字段是否具有包含正确格式文本和特定字段约束的有效值,并且验证密钥块400的版本受支持。
该验证还包括解析密钥块400中由tr31密钥参数引用的可选块数据以便对其进行验证,确定它的长度和包含的可选块数量。解析包括检验可选块的计数对应于用于该计数的密钥块字段中标注的计数并且对应于数字可选块参数,确认长度字段正确并具有正确的格式,禁止重复的可选块标记,允许数字可选块标记,检验字母块标记具有正确的格式,并且如果发现在可选块中对CV进行编码,则将CV转换为二进制数据以便为验证做准备。
在操作900的检查之后,所述方法继续到操作910,使用在解包kek标识符参数中传递的密钥加密密钥和密钥块版本ID字段410指示的解包方法,对密钥块400进行解密,并且在操作920中,验证特定于密钥块版本ID字段410的ACP。然后,在操作930中确定要用于新密钥令牌500的CV。存在3种确定可能性:可能将CV作为可选块与数字密钥块400使用和模式值一起传递,可能将CV作为可选块与必须对照CV内容检查的非数字密钥块使用和模式值一起传递,以及可能不将CV作为密钥块400中的可选块来传递。
如果将CV作为可选块与数字密钥块400使用和模式值一起传递,并且如果密钥使用字段430具有例如值“10”而使用模式字段450具有例如值“1”,则将使用该CV构造新密钥令牌500(如果这些值是数字但不同,则所述过程中止并出现错误)。如果不传递CV,则对照在构建新密钥令牌500时指定进一步解释的规则数组关键字验证密钥使用字段430和使用模式字段450的值,使用转换表302选择密钥类型、子类型和限制,并且根据选择的密钥类型、子类型和规则数组关键字创建CV。
如果将CV作为可选块与非数字密钥使用字段430和非数字使用模式字段450一起传递,则使用转换表302检验CV中的属性与非数字密钥使用字段430和非数字使用模式字段450之间的兼容性。如果不存在兼容性,则所述过程中止,如果存在兼容性,则针对操作检查适当的ACP(多个),验证密钥部分位是否开启,验证密钥版本号字段460正确,并且使用该CV构造新密钥令牌500。
此时,所述方法继续,分别在操作940和950中准备和构建新密钥令牌500。操作940的准备包括将选择或创建的CV复制到缓冲区,并且设置版本和属性字段。操作950的创建按如下方式继续。如果将“EXTERNAL”规则数组关键字传递到参数数据库301,则使用解包kek标识符或包装kek标识符参数(如果传递)对来自解包密钥块400的密钥材料以及新CV进行包装,并且将结果放置在新密钥令牌500的包装密钥字段中。如果传递“INTERNAL”规则数组关键字,则使用HSM主密钥对来自解包密钥块400的密钥材料以及新CV进行包装,并且将结果放置在新密钥令牌500的包装密钥字段中。然后,根据tr31数字可选参数设置数字可选块参数的值,并且参考转换表302设置cv源和保护方法参数的值。然后将最终输出新密钥令牌500复制到输出密钥标识符参数,并且更新输出密钥标识符长度参数中的长度。
根据本发明的另一方面,提供一种方法,以便解析和验证密钥块400中的信息,并且返回特定和/或被请求的有关驻留在密钥块400中的可选块数据的信息。根据所述方法,本发明的用户将以下参数(它们全部定义为指针)传递到参数数据库301。可以根据本发明,通过其它方法或者按照值传递参数。
所述参数包括规则数组参数、tr31密钥长度参数和tr31密钥参数。规则数组参数指向字符串变量,该变量包含指示所需信息的关键字。关键字的长度为8字节并且必须左对齐而在右侧使用空白字符填充。规则数组关键字包括INFO,其与用于返回有关密钥块400中的整个可选块数组的信息的指令关联,并且包括DATA,其与用于从可选块数组返回包含在指定可选块中的数据的指令关联。tr31密钥长度参数指向整数,该整数包含tr31密钥参数的长度,并且tr31密钥参数指向缓冲区,该缓冲区包含要解析的密钥块400。
用于规则数组关键字INFO参数的参数包括数字可选块参数、可选块id参数和可选块长度参数。数字可选块参数指向整数,该整数包含密钥块400中的可选块的数量。将值与密钥块标头中的对应值比较,并且如果它们不匹配,则所述方法中止并出现错误。包括该参数的原因是用户必须为可选块id和可选块长度参数提供的缓冲区大小与可选块数量相关。如果用户并未准确知道可选块数量,则可能分配太短的缓冲区。可选块长度参数指向16位无符号整数值数组。从所述方法成功返回时,按照可选块出现的相同顺序,使用包含在密钥块400中的每个可选块的长度(字节)填充该参数指向的数组。这对应于在可选块id参数中返回的数组。返回的列表的总长度将是可选块数量的两倍(16位无符号整数是2字节存储),因此用户必须提供以下缓冲区:其长度至少是它在数字可选块参数中传递的值的两倍。
用于规则数组关键字DATA参数的参数包括可选块id参数、可选块数据长度参数和可选块数据参数。可选块id参数指向2字节字符串,该字符串包含应用针对其请求数据的块的标识符。可选块数据长度参数指向整数变量,该变量包含可选块数据参数的长度。在输入时,必须将该参数设置为应用程序提供的缓冲区的长度,并且在输出时,更新该参数以便包含返回的可选块数据的长度(字节)。可选块数据参数指向缓冲区,将从指定可选块读取的数据存储在其中。缓冲区必须具有足够的空间以用于数据,如可选块数据长度参数的输入值指示的那样。在输出时,将对应于可选块id参数的可选块数据复制到缓冲区,并且将其长度存储在可选块数据长度参数中。
参考图7,所述方法包括检验操作1000,初始解析操作1010、辅助INFO解析操作1020以及辅助DATA解析操作1030。操作1000的检验包括检验规则数组、tr31密钥长度和tr31密钥都未缺少(即,它们是空指针),针对规则数组关键字INFO检验数字可选块、可选块id和可选块长度参数都未缺少(即,它们是空指针),并且针对规则数组关键字DATA检验可选块id、可选块数据长度和可选块数据参数都未缺少(即,它们是空指针)。操作1000的检验还包括检验tr31密钥长度参数未缺少(即,该参数不是空指针),针对规则数组关键字INFO检验数字可选块参数未缺少(即,该参数不是空指针),并且针对规则数组关键字DATA检验可选块数据长度参数未缺少(即,该参数不是空指针)。操作1000的检验还包括验证tr31密钥参数中的密钥块字段是允许的值范围。这包括验证密钥块数据格式化具有正确的格式,并且密钥块400的版本受支持。
操作1010的初始解析将解析密钥块400中由tr31密钥参数引用的可选块数据以便对其进行验证,确定它的长度和包含的可选块数量。根据解析,可选块的计数必须对应于用于该计数的密钥块字段中标注的计数并且对应于数字可选块参数,长度字段必须具有正确的格式,不允许重复的可选块标记,允许数字可选块标记,并且字母块标记必须与密钥块400的那些标记一致。
当存在规则数组关键字INFO时,采用操作1020的辅助INFO解析。在此,如果未发现可选块,则所述方法设置数字可选块参数以便指示零个块并且返回成功指示。然后,迭代解析tr31密钥参数中的密钥块,以便发现标头中的每个可选块的标记和长度字段。当解析时,对于遇到的每个可选块,将块添加到包含每个块标记(这些标记采用它们在标头中的出现顺序)的可选块id参数中的数组,并且添加到包含每个可选块长度(这些长度按照它们在标头中的出现顺序转换为正确的格式)的可选块长度参数中的数组。
当存在规则数组关键字DATA时,采用操作1030的辅助DATA解析。在此,如果未发现可选块,则所述方法中止。然后,迭代解析tr31密钥参数中的密钥块,并且将每个密钥块的标记与可选块id参数中的值比较。如果在到达可选块部分的结尾之前未发现被请求标记,则所述方法中止。然后,将该可选块的数据部分复制到可选块数据参数,并且具有由可选块的长度字段指示的长度,转换可选块的长度字段并将其作为值放在可选块数据长度参数中,并且向用户返回成功通知。
本发明的技术效果和效益包括提供一种安全转换的方法,以便用户不需要在硬件安全模块(HSM)外部操作并因此暴露密钥材料。根据所述方法,用户不需要怀疑可选块的数组有效性,并且可以在创建标准化密钥块时直接使用生成的数组。此外,直接使用户能够将密钥令牌导出到密钥块并且将这些密钥块导入到密钥令牌,而不丢失密钥令牌信息。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
下面权利要求中的对应结构、材料、操作以及所有装置或步骤加功能元件的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明实施例的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
此外,所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (9)

1.一种保护启用加密的计算系统中的控制向量的方法,所述方法包括:
验证传递到参数数据库的参数;
计算控制向量(CV)数据所需的长度;
根据所述计算的结果准备可选块;
将所述CV转换为用于标准化密钥块的格式,同时将所转换的CV复制到所述可选块中;以及
更新所述标准化密钥块中的可选块数据。
2.根据权利要求1的方法,其中所述验证包括:
将密钥令牌定义为数据结构,所述数据结构包含所述CV和在加密上绑定到所述CV的密钥控制信息,使得改变所述CV将更改所述密钥控制信息;以及
部分地准备所述标准化密钥块。
3.根据权利要求2的方法,其中所述定义进一步包括确认所述密钥令牌具有有效的版本和格式,确认所述密钥令牌包含所述密钥和所述CV,以及确认所述CV表示所述密钥令牌可以导出。
4.根据权利要求2的方法,其中所述部分地准备包括确认所述密钥块具有用于添加新可选块的空间和小于预定最大值的计数。
5.根据任一上述权利要求的方法,其中所述计算包括:
计算所述CV数据的所需长度;
计算子块的所需长度。
6.根据权利要求5的方法,其中准备所述可选块包括:
准备所述标准化密钥块的可选块标记和长度字段;以及
准备专用信息标识符、子块标识符和长度字段。
7.根据任一上述权利要求的方法,其中所述更新包括更新所述标准化密钥块的可选块计数和整体长度字段。
8.一种包括处理电路的加密系统,所述处理电路被配置为执行根据任一上述权利要求的方法的所有步骤。
9.一种包括有形存储介质的计算机程序产品,所述有形存储介质可由处理电路读取并且其上存储指令以便由所述处理电路执行,以执行根据权利要求1至7中的任一权利要求的方法。
CN201280025794.6A 2011-05-31 2012-05-15 保护加密系统中的控制向量的方法和系统 Active CN103563289B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/118,951 2011-05-31
US13/118,951 US8675871B2 (en) 2011-05-31 2011-05-31 Protecting a control vector in an optional block of a standard key block
PCT/IB2012/052431 WO2012164427A1 (en) 2011-05-31 2012-05-15 Protecting a control vector in a cryptographic system

Publications (2)

Publication Number Publication Date
CN103563289A true CN103563289A (zh) 2014-02-05
CN103563289B CN103563289B (zh) 2016-08-17

Family

ID=47258463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280025794.6A Active CN103563289B (zh) 2011-05-31 2012-05-15 保护加密系统中的控制向量的方法和系统

Country Status (5)

Country Link
US (2) US8675871B2 (zh)
CN (1) CN103563289B (zh)
DE (1) DE112012002332B4 (zh)
GB (1) GB2505602B (zh)
WO (1) WO2012164427A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115004623A (zh) * 2020-02-18 2022-09-02 国际商业机器公司 保护加密密钥
US11616844B2 (en) * 2019-03-14 2023-03-28 Sphero, Inc. Modular electronic and digital building systems and methods of using the same

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905187B (zh) * 2012-12-26 2018-04-03 厦门雅迅网络股份有限公司 一种基于内容的网络通信加密方法
US9252944B2 (en) * 2014-03-21 2016-02-02 International Business Machines Corporation Key wrapping for common cryptographic architecture (CCA) key token
US10607017B2 (en) * 2017-01-04 2020-03-31 Ca, Inc. Restricting access to sensitive data using tokenization
IT201700050153A1 (it) * 2017-05-09 2018-11-09 St Microelectronics Srl Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo
EP3742317A1 (en) * 2019-05-21 2020-11-25 Ordnance Survey Limited Method and system for granting access to data in an immutable ledger system
US11575520B2 (en) 2020-12-14 2023-02-07 International Business Machines Corporation Key block enhanced wrapping

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1285102A (zh) * 1998-02-24 2001-02-21 莫斯科戈罗德电话设备公开股份公司 离散数据的分块加密方法
CN1383644A (zh) * 2000-04-06 2002-12-04 索尼公司 信息处理系统、信息处理方法以及信息记录介质和程序提供介质
US20040003246A1 (en) * 2002-06-28 2004-01-01 Compaq Information Technologies Group, L.P. Method and system for secure storage, transmission and control of cryptographic keys
CN1878059A (zh) * 2006-07-07 2006-12-13 北京财富投资有限公司 一种分组加密及解密算法
US20100031021A1 (en) * 2006-09-22 2010-02-04 International Business Machines Corporation Method for improved key management for atms and other remote devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142578A (en) 1991-08-22 1992-08-25 International Business Machines Corporation Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
US5265164A (en) 1991-10-31 1993-11-23 International Business Machines Corporation Cryptographic facility environment backup/restore and replication in a public key cryptosystem

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1285102A (zh) * 1998-02-24 2001-02-21 莫斯科戈罗德电话设备公开股份公司 离散数据的分块加密方法
CN1383644A (zh) * 2000-04-06 2002-12-04 索尼公司 信息处理系统、信息处理方法以及信息记录介质和程序提供介质
US20040003246A1 (en) * 2002-06-28 2004-01-01 Compaq Information Technologies Group, L.P. Method and system for secure storage, transmission and control of cryptographic keys
CN1878059A (zh) * 2006-07-07 2006-12-13 北京财富投资有限公司 一种分组加密及解密算法
US20100031021A1 (en) * 2006-09-22 2010-02-04 International Business Machines Corporation Method for improved key management for atms and other remote devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616844B2 (en) * 2019-03-14 2023-03-28 Sphero, Inc. Modular electronic and digital building systems and methods of using the same
CN115004623A (zh) * 2020-02-18 2022-09-02 国际商业机器公司 保护加密密钥

Also Published As

Publication number Publication date
US20120307999A1 (en) 2012-12-06
DE112012002332T5 (de) 2014-02-20
US8675871B2 (en) 2014-03-18
GB201321840D0 (en) 2014-01-22
US9178703B2 (en) 2015-11-03
US20130058486A1 (en) 2013-03-07
WO2012164427A1 (en) 2012-12-06
GB2505602A (en) 2014-03-05
DE112012002332B4 (de) 2020-12-24
GB2505602B (en) 2014-09-24
CN103563289B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN103563289B (zh) 保护加密系统中的控制向量的方法和系统
CN103563290B (zh) 公共加密体系结构服务中组合密钥控制信息的方法和系统
CN110287654B (zh) 使用硬件信任根的媒体客户端装置鉴权
US8739297B2 (en) Key usage policies for cryptographic keys
CN110199287A (zh) 利用密封包围区的数据解封
CN111131278B (zh) 数据处理方法及装置、计算机存储介质、电子设备
CN109478214B (zh) 用于证书注册的装置和方法
CN102024107A (zh) 应用软件控制平台、开发者终端、分发系统及方法
KR101989813B1 (ko) 특정 포맷을 가지는 대체 데이터의 생성 및 검증
CN109560931A (zh) 一种基于无证书体系的设备远程升级方法
CN104601681A (zh) 一种文件分片的处理方法和装置
CN110955896A (zh) 一种通过近场通信实现单片机固件安全升级的方法
JP2020022057A (ja) 暗号化データ生成装置、デジタル署名生成装置、デジタル署名付きデータ生成装置、およびデジタル署名付きデータ生成システム
US8856520B2 (en) Secure key management
CN116846548A (zh) 一种带格式数据密文的生成方法、解密方法和通信系统
CN105281895B (zh) 一种数字媒体内容保护方法及装置
Moriarty et al. Pkcs# 12: Personal information exchange syntax v1. 1
CN115174261A (zh) 基于分阶划层与密中密分发的混合加密解密系统与方法
US11575520B2 (en) Key block enhanced wrapping
CN115589316A (zh) 一种数据加密传输方法、装置、电子设备及存储介质
US20130058487A1 (en) Method of building optional blocks
CN109150510B (zh) 一种获取对称密钥的方法及设备
US9081971B2 (en) Method of parsing optional block data
CN112269698A (zh) 密码机测试装置及用其进行密码机测试的方法
CN115801266A (zh) 数据传输方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant