CN116709316A - 基于智能卡的大规模动态群组的无状态组密钥更新方法 - Google Patents
基于智能卡的大规模动态群组的无状态组密钥更新方法 Download PDFInfo
- Publication number
- CN116709316A CN116709316A CN202310827605.7A CN202310827605A CN116709316A CN 116709316 A CN116709316 A CN 116709316A CN 202310827605 A CN202310827605 A CN 202310827605A CN 116709316 A CN116709316 A CN 116709316A
- Authority
- CN
- China
- Prior art keywords
- group
- group key
- user
- key
- membership
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000004891 communication Methods 0.000 claims abstract description 84
- 230000006870 function Effects 0.000 claims description 79
- 238000012795 verification Methods 0.000 claims description 23
- 238000007906 compression Methods 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 19
- 238000009826 distribution Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000002474 experimental method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 235000015114 espresso Nutrition 0.000 description 4
- 238000005304 joining Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000009827 uniform distribution Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012733 comparative method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/043—Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
- H04W12/0433—Key management protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于智能卡的大规模动态群组的无状态组密钥更新方法,当一个用户首次通过注册加入群组,组控制器为该用户分配一张智能卡,并写入用户标识UID、MAC密钥、AES密钥、密钥种子和组密钥生成器;当组控制器开启一个新的会话,从保密组通信会话标识序列中选取一个未使用的会话标识SID,组控制器GC自身根据当前会话标识SID生成新的组密钥,然后构建一个组密钥更新消息并分发给当前保密组中的所有用户,每个用户在接收到组密钥更新消息后,将组密钥更新消息转发至对应的智能卡,智能卡根据组密钥更新消息为用户生成更新后的组密钥。本发明中组控制器和用户独立且同步生成组密钥,提高安全性的同时降低通信开销,更适合应用于大规模动态群组。
Description
技术领域
本发明属于通信安全技术领域,更为具体地讲,涉及一种基于智能卡的大规模动态群组的无状态组密钥更新方法。
背景技术
组密钥更新协议致力于解决组通信的安全性问题,通过适当的方式在组成员间共享一个组密钥来提供访问控制、数据机密性(用组密钥加密组通信)、隐私性、数据源认证等安全服务。为了确保组通信内容仅为当前合法的组成员访问,组密钥更新协议必须实现以下两个安全目标:当新用户加入时,更新组密钥以防止新加入的用户访问过去的组通信内容(组后向安全性);当用户离开时,更新组密钥以防止该用户继续访问未来的组通信内容(组前向安全性)。对成员数目动辄百万且组成员资格频繁变动(加入、离开或逐出)的大规模动态群组,如果组密钥更新协议设计不当,为实现组后向安全性和组前向安全性而更新组密钥所付出的通信开销(即组密钥更新消息的大小)、组控制器或组成员的存储开销或计算开销可能会非常巨大,甚至达到O(N)的线性复杂度(N为当前组成员数目),这就是所谓的组密钥更新(分发)难题。
组密钥更新协议可以分为有状态的组密钥更新协议和无状态的组密钥更新协议。有状态的组密钥更新协议要求组成员在整个组通信期间一直保持在线状态以接收每一条组密钥更新消息,并基于每一条组密钥更新消息即时更新自己所持有的个人密钥信息,一旦某个用户错过了某一条组密钥更新消息,则他(或她)将无法从之后的组密钥更新消息中提取出更新后的组密钥(也就无法解密用这些更新后的组密钥加密的组通信内容)。现有的大部分组密钥更新协议都是有状态的。单个成员变动时,目前最先进的有状态组密钥更新协议的通信开销为O(log2N),每个组成员的存储开销为O(log2N),因此非常适用于大规模动态群组的保密通信。在无状态的组密钥更新协议(也称广播加密协议)中,当前组密钥更新消息独立于历史组密钥更新消息,即使用户错过了某些组密钥更新消息,也不会影响之后的组密钥更新。对于一些用户无法长时间保持在线的应用场景(例如网络信道不可靠、数字电视中的条件访问控制、数字版权保护等),无状态组密钥更新协议(也称为广播加密协议)将更为合适。对于当前广泛应用的无状态组密钥更新协议Subset Difference Protocol(后称SD协议)和蓝光光盘加密标准Advanced Access Content System(AACS),组成员的的存储开销为O(1),当R个组成员离开或被逐出时,组密钥更新时的通信开销包括:(1)密文块通信开销为(2R-1)*Block Size,其中Block Size为分组加密的密文块大小;(2)Subset IDInfo(子集标识信息,后简称SII)通信开销为(2R-1)*ID_length,其中ID_length为用户身份标识的长度。当离开成员(被逐成员)数目R巨大(接近N)且成员资格变动频繁时,组密钥更新的通信开销将会非常巨大,因此SD协议和蓝光光盘加密标准AACS仅适用于少量用户离开或被逐出的应用场景(例如数字版权保护)。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于智能卡的大规模动态群组的无状态组密钥更新方法,组成员采用智能卡生成组密钥,从而使得组控制器和用户独立且同步生成组密钥,提高安全性的同时降低通信开销,更适合应用于大规模动态群组。
为了实现上述发明目的,基于智能卡的大规模动态群组的无状态组密钥更新方法包括以上步骤:
S1:当一个用户首次通过注册加入群组,组控制器GC为该用户分配一个唯一的用户标识UID和一张智能卡,并将用户的UID写入该智能卡的只读存储器中;
S2:组控制器GC在新注册用户智能卡的只读存储器中写入MAC密钥、AES密钥k、密钥种子s0和组密钥生成器,其中:
MAC密钥用于用户对组控制器GC发送的组密钥更新消息进行身份验证;
组密钥生成器用于根据AES密钥k、密钥种子s0以及保密组通信的会话标识SID为对应用户生成当前保密组通信的密钥,具体的组密钥生成方法为:
组密钥生成器从组控制器GC接收当前保密组通信的会话标识SID,然后采用如下公式计算得到用于当前保密组通信的组密钥S:
其中:
I′=AES_D(k,SID)
AES_D()表示AES的解密操作;S′表示上一个保密组通信会话所使用的组密钥,其初始值即为密钥种子s0;表示异或操作;
S3:预先设置一个保密组通信会话标识序列,包含若干个备用的会话标识SID;当保密组通信中的成员资格发生变动时,组控制器GC开启一个新的会话,并从保密组通信会话标识序列中选取一个未使用的会话标识SID;组控制器GC自身采用组密钥生成方法根据当前会话标识SID生成新的组密钥,然后构建一个组密钥更新消息并分发给当前保密组中的所有用户,其中组密钥更新消息包含4个信息域,分别为信息类型、会话标识SID、成员资格和MAC签名,其中:
信息类型用于标识当前信息为组密钥更新消息;
会话标识SID用于标识当前保密组通信会话;
成员资格用于标识当前保密组中所包含的成员用户;
MAC签名基于MAC密钥生成,用于标识组控制器GC;
S4:每个用户在接收到组密钥更新消息后,将组密钥更新消息转发至对应的智能卡,智能卡根据组密钥更新消息为用户生成更新后的组密钥,具体方法为:
S4.1:从组密钥更新消息中解析得到MAC签名并根据MAC密钥进行MAC签名验证,判断是否MAC签名验证通过,如果未通过,进入步骤S4.2,如果通过,进入步骤S4.3;
S4.2:组密钥更新结束,智能卡向用户反馈MAC签名错误信息;
S4.3:从组密钥更新消息中解析得到消息类型和成员资格,判断当前用户是否为合法成员,如果不是合法成员,进入步骤S4.4,否则进入步骤S4.5;
S4.4:组密钥更新结束,智能卡向用户反馈非法成员提示信息;
S4.5:从组密钥更新消息中解析得到会话标识SID,然后调用组密钥生成器生成新的组密钥并反馈给用户。
本发明基于智能卡的大规模动态群组的无状态组密钥更新方法,当一个用户首次通过注册加入群组,组控制器为该用户分配一张智能卡,并写入用户标识UID、MAC密钥、AES密钥、密钥种子和组密钥生成器;当组控制器开启一个新的会话,从保密组通信会话标识序列中选取一个未使用的会话标识SID,组控制器GC自身根据当前会话标识SID生成新的组密钥,然后构建一个组密钥更新消息并分发给当前保密组中的所有用户,每个用户在接收到组密钥更新消息后,将组密钥更新消息转发至对应的智能卡,智能卡根据组密钥更新消息为用户生成更新后的组密钥。
本发明具有以下有益效果:
1)本发明中用户采用智能卡进行组密钥更新,组控制器和组成员的智能卡可以独立且同步的生成组密钥,组密钥本身不需要被加密或编码在组密钥更新消息中,组密钥更新消息仅需包含组成员资格判定信息即可,确保接收方的智能卡据此能够判定智能卡用户是否为合法的组成员,可以有效防止组密钥泄露,提高安全性;
2)由于智能卡的硬件防篡改特性,智能卡用户(或主动敌手)无法获取或修改保存在智能卡只读存储器中的任何敏感信息(例如智能卡用户的身份信息、用于生成组密钥的种子、MAC验证密钥等),也无法干预智能卡内部程序的运行过程,这就确保了非组成员(或主动敌手)不能从智能卡获取关于组密钥的任何信息;
3)经实验验证,对于大规模动态群组的无状态组密钥分发(更新),本发明的通信开销远远低于目前广泛应用的SD协议和AACS协议。
附图说明
图1是本发明基于智能卡的大规模动态群组的无状态组密钥更新方法的具体实施方式流程图;
图2是本发明中组密钥生成器的工作过程示意图;
图3是本发明中的组密钥更新消息的报文结构图;
图4是本发明中智能卡进行组密钥更新的流程图;
图5是本发明和对比方法的通信开销对比图;
图6是本发明和对比方法通信开销随组规模的变化曲线图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明基于智能卡的大规模动态群组的无状态组密钥更新方法的具体实施方式流程图。如图1所示,本发明基于智能卡的大规模动态群组的无状态组密钥更新方法的具体步骤包括:
S101:用户注册:
当一个用户首次通过注册加入群组,组控制器GC为该用户分配一个唯一的UID和一张智能卡,并将用户的UID写入该智能卡的只读存储器中。
S102:智能卡配置:
智能卡是一种内嵌微芯片的塑料卡片,芯片内含有一个微处理器(CPU),可编程只读存储器(EEPROM)、随机存储器(RAM)和固化在只读存储器ROM中的卡内操作系统(COS),其功能相当于一台微型计算机。智能卡在设计时就注重高度安全性,存储在智能卡的数据受硬件保护,用户无法获取存储在智能卡内的数据,而且智能卡具有硬件防篡改的特性,任何篡改卡内信息的行为,都会毁掉卡内的数据。软件方面,卡内应用程序都在隔离的环境下执行,所有程序对卡片数据的写入、读取、修改也受到权限机制的控制保护,无论使用何种读卡设备都不能跨越权限去存取不属于自己的数据。有的智能卡包含加密协处理器,支持随机数发生器,硬件DES、3DES、AES等加密算法。因此,基于智能卡进行无状态组密钥更新,可以有效提升安全性。为了智能卡能够实现本发明的目的,需要对用户关联的智能卡进行配置,具体方法为:
组控制器GC在新注册用户智能卡的只读存储器中写入MAC密钥、AES密钥k、密钥种子s0和组密钥生成器(key generator,KeyGen),其中:
MAC密钥用于用户对组控制器GC发送的组密钥更新消息进行身份验证。也就是说,本发明中组控制器GC和各个用户的智能卡共享同样的MAC密钥,当该密钥用于生成MAC签名时可称之为MAC签名密钥,当其用于智能卡验证消息鉴别码时可称之为MAC验证密钥。
组密钥生成器用于根据AES密钥k、密钥种子s0以及保密组通信的会话标识SID为对应用户生成当前保密组通信的密钥。组密钥生成器需要确保组密钥的生成是一致随机的,用户不能通过已有的组密钥预测出之后的组密钥。最简单的实现方式是通过伪随机数发生器(Pseudorandom Generator,简称PRG)R和密钥种子(seed,简称S)来生成组密钥,R(S)可以源源不断的生成0、1比特位,每一位0、1都是随机出现。基于智能卡的物理防篡改特性,主动敌手不可能从智能卡中提取出密钥种子S,因此不能获得组播密钥。然而由于智能卡存储空间有限,不可能通过伪随机函数一次性生成足够长度的密钥流,只能获得数目十分有限的组密钥。因此为了适应实际的应用需要,本发明提出了一种适用于智能卡的组密钥生成器。图2是本发明中组密钥生成器的工作过程示意图。如图2所示,本发明中组密钥生成器所采用的组密钥生成方法为:
组密钥生成器从组控制器GC接收当前保密组通信的会话标识SID,然后采用如下公式计算得到用于当前保密组通信的组密钥S:
其中:
I′=AES_D(k,SID) (2)
AES_D()表示AES的解密操作,S′表示上一个保密组通信会话所使用的组密钥,其初始值即为密钥种子s0。表示异或操作。标准AES算法支持128位、192位、256位操作,实际应用中根据需要设置即可,如图2所示,本实施例中采用128位,此时AES密钥k、密钥种子s0、会话标识SID都为128位。
根据以上描述可知,本发明中通过智能卡配置,组控制器GC和所有组成员间就安全地共享了同样的MAC密钥、AES密钥k、密钥种子s0和组密钥生成器,上述密钥素材的安全性由智能卡的硬件防篡改特性保证。
S103:组控制器分发组密钥更新消息:
当组成员资格发生变动(加入、离开或逐出)时,为了确保组前向安全性和组后向安全性,即需要更新组密钥。在实际应用中,如果每发生一个组成员的变动就立刻更新组播密钥,称之为立即组密钥更新(immediate rekeying)。可想而知,对于大规模动态群组,频繁的立即组密钥更新会带来巨大的通信开销。但是,对于某些安全不十分敏感的应用来说,不必使用立即组密钥更新,而可以每隔一段时间或者成员变动的次数达到一个阈值的时候来批量的处理成员的加入、离开或逐出,称之为批量组密钥更新(batch rekeying)。本发明所提出的组密钥更新方法是无状态的,既适用于立即组密钥更新,也适用于批量组密钥更新。在本发明中,定义用同一个组播密钥加密的组通信属于同一个会话(session),不同的会话使用不同的组密钥加密。在immediate rekeying中,每一个成员的加入、离开或逐出都会导致保密组通信进入另一个会话,而在batch rekeying中,保密组通信通常会在特定的时间间隔后才进入另一个会话。
预先设置一个保密组通信会话标识(Session ID,SID)序列,包含若干个备用的会话标识SID。简单起见,可以将保密组通信会话标识序列设置为递增序列。根据之前的组密钥生成方法可知,会话标识SID在标识会话的同时,也用来同步组控制器GC以及所有组成员的组密钥更新。
当保密组通信中的成员资格发生变动时,组控制器GC开启一个新的会话,并从保密组通信会话标识序列中选取一个未使用的会话标识SID。组控制器GC自身采用组密钥生成方法根据当前会话标识SID生成新的组密钥,然后构建一个组密钥更新消息并分发(广播或组播)给当前保密组中的所有用户。
图3是本发明中的组密钥更新消息的报文结构图。如图3所示,本发明中组密钥更新消息包含4个信息域,分别为信息类型、会话标识SID、成员资格和MAC签名,其中:
信息类型用于标识当前信息为组密钥更新消息。
会话标识SID用于标识当前保密组通信会话。
成员资格用于标识当前保密组中所包含的成员用户。
MAC签名基于MAC密钥生成,用于标识组控制器GC。
S104:智能卡完成组密钥更新:
每个用户在接收到组密钥更新消息后,将组密钥更新消息转发至对应的智能卡,智能卡根据组密钥更新消息为用户生成更新后的组密钥。图4是本发明中智能卡进行组密钥更新的流程图。如图4所示,本发明中智能卡进行组密钥更新的具体步骤包括:
S401:从组密钥更新消息中解析得到MAC签名并采用MAC密钥进行MAC签名验证,判断是否MAC签名验证通过,如果未通过,进入步骤S401如果通过,进入步骤S403。
S402:反馈MAC签名错误信息:
组密钥更新结束,智能卡向用户反馈MAC签名错误信息。
S403:从组密钥更新消息中解析得到消息类型和成员资格,判断当前用户是否为合法成员,如果不是合法成员,进入步骤S404,否则进入步骤S405。
S404:反馈非法成员提示信息:
组密钥更新结束,智能卡向用户反馈非法成员提示信息。
由于某些智能卡(例如Java card)支持在运行期动态安装卸载卡内应用,所以在实际应用中,一旦检测到用户为非组成员,智能卡可以直接删除组密钥生成器。
S405:生成新的组密钥:
从组密钥更新消息中解析得到会话标识SID,然后调用组密钥生成器生成新的组密钥并反馈给用户。
根据以上流程可知,本发明中用户的智能卡必须首先判断其用户是否是合法的组成员,如果是,才在智能卡内生成并分发更新的组密钥给该用户。一种最简单直接的合法成员判定办法是,在由组控制器GC分发的组密钥更新消息中直接给出全局的组成员名单(全局白名单)或者全局的非组成员(离开或被逐出)名单(全局黑名单)。假设每个组成员的用户标识UID用nbit表示,那么群组规模为N=2n,如果全局白名单中的成员数目为m,则组密钥更新的通信开销约等于m×n bits,如果每个成员资格变动是随机的,那么组密钥更新消息的平均通信开销大约是N*n/2bits,对于大规模动态群组,这个通信开销是巨大的。为了降低组密钥更新的通信开销,本发明提出了三种合法成员判定方法,分别为位表示法,带压缩的位表示法,以及成员资格函数。
·位表示法
位表示法(Membership Bit Pattern,MBP)是使用一个比特串来表达成员资格判定信息。具体来说,组控制器GC的组密钥更新消息中,成员资格为一个比特串,其中第i个比特标识了第i个用户的组成员资格状态,用比特1表示合法成员,0表示非法成员,i=1,2,3,…,N,N表示用户总数。假设组规模为8,则用8-bit的位串01010101来表示UID分别为2,4,6,和8的用户为合法组成员,其他用户为非组成员。智能卡接收组密钥更新消息后,根据用户在比特串中所对应的比特的取值来判断是否为合法的组成员。
对于组成员数为N的群组,位表示法的通信开销恒为N bits,因此这种成员资格判定方法仅适合组播规模较小的应用,例如,组播规模N很大(百万级),而白名单中的合法成员数目m又远远小于N的情况下,位表示法的通信开销就远大于白名单方法。
·带压缩的位表示法
位表示法将用户的组成员资格判定信息映射成比特串,由于极可能存在大量的0比特或者1比特连续分布的情况,因此可以考虑采用某种压缩手段进一步压缩用位表示法编码的成员资格判定信息。本实施例中采用经典的步长编码方法(Run-Length Encoding,简称RLE)。步长编码又称游程编码,是一种无损数据压缩技术。举例来说,给定一个字符串AAAABCCCCDD,经过步长编码可以压缩为4A1B4C2D,其中4A代表4个连续的A字符,其余以此类推,每个字符重复出现的次数称为步长。这种方法的优点在于可以将重复性高的数据进行高效的压缩。在具体的编码过程中,可以采取4位步长表示法,即用4个比特位表示步长,也可以采用8位步长表示法,采用几位长度根据实际应用而定。
基于位表示法编码得到组密钥更新消息中成员资格信息的具体方法为:首先将成员资格表示为一个比特串,其中第i个比特标识了第i个用户的组成员资格状态,用比特1表示合法成员,0表示非法成员,i=1,2,3,...,N,N表示用户总数。然后采用步长编码对该比特串进行压缩,将压缩后的比特串作为成员资格信息。智能卡在判断当前用户是否为合法成员时,首先根据压缩方法的逆操作将压缩后的比特串进行还原,根据用户在还原比特串中所对应的比特的取值来判断是否为合法成员。
此处举例说明如何使用步长编码对用位表示法编码的成员资格判定信息进行压缩的具体方法,考虑到本发明中需要压缩的数据中只有0和1,本实施例中提供两种编码方式。假设一个大小为32的组,采用位表示法编码的成员资格判定信息如下:
1111111111 0000000000 1111111111 00
第一种方式,采用步长编码对其进行压缩后得到:(10,1),(10,0),(10,1),(2,0),代表10个连续的比特1,然后10个连续的比特0,其余以此类推。进一步采用4位步长编码,压缩后的数据表示为:
1010 1 1010 0 1010 1 0010 0
(10,1) (10,0) (10,1) (2,0)
第二种方式,由于成员资格判定信息中的字符只有0和1两种,可以用(起始-结束)编码方式只对比特1(或0)进行编码,对于上面的成员资格判定信息,可以压缩成(0,9),(20,29),表示第0位到第9位,第20位到第29位为比特1,其余为比特0。最终压缩后的数据表示为:
00000 01001 10100 11101
0 9 20 29
由于步长编码可以将连续重复的数据压缩成较小的单元,它普遍应用于二值图像压缩领域。但如果数据的重复率不高,采用步长编码后的数据有可能会比原始数据还要大。假设组规模为N,有r个非法成员,在最坏的情况下,r个用户互不相邻,需要f+1个编码块,每个块用2*ID_length bit编码,则经过步长编码后的成员资格判定信息长度为2(r+1)*ID_length bits。当r趋近与N/2时,经过步长编码的成员资格判定信息长度为N*ID_lengthbits。
·成员资格函数
为了进一步压缩通信开销,本实施例中还提出了一种基于布尔函数的成员资格函数。本实施例中,基于布尔函数设计的成员资格函数表示如下:
f:UID→{true,false} (4)
当且仅当用户标识UID所代表的用户为组成员时,成员资格函数接受UID作为输入,然后输出true。用户标识UID可以表达为一个二进制位串,二进制位串的第i位的取值用一个布尔变量xi表示,其取值为1(true)或0(false),用表示xi的逻辑非,用xixi′表示xi与xi′的逻辑与,用xi+xi′表示逻辑或,x1x2…xk表示一个k元乘积项(product)。组规模决定了用户标识UID的二进制长度,如组规模为8,可采用3bit的UID。
不失一般性,下面以一个规模为8的群组为例,介绍如何构造成员资格函数,假如该群组的组成员(用UID标识每个成员)集合为:{001,010,011,110,111},根据该白名单,按照如下方式构造一个含3个布尔变量x1,x2,x3的布尔函数作为其成员资格函数:白名单中的每个用户标识UID对应一个三元乘积项(例如白名单中的001对应乘积项010对应乘积项/>),各乘积项间用逻辑或连接,这样构造得到一个如下的Sum of ProductsExpression(SOPE)表达式:
很容易验证,输入组内成员的用户标识UID,该成员资格函数永远输出true,而输入组外用户的UID,其输出永远为false,例如f(011)=true,f(101)=false。
根据上述成员资格函数的构造方式,按照成员资格函数编码后的成员资格判定信息的通信复杂度将与白名单方式一样,对于大规模动态群组,其通信开销同样会十分巨大。但是可以采用硬件逻辑设计中成熟的布尔函数最小化技术(Boolean FunctionMinimization,BFM)来化简成员资格函数,使它包含更少的乘积项,更少的布尔变量,从而降低组密钥更新消息的通信开销。
一个常用的布尔函数最小化方法是卡诺图化简法,使用该方法,公式(5)可以简化为:卡诺图提供了一种直观可视的布尔函数最小化方法,然而,当布尔变量的数量比较大时,卡诺图化简法的操作就会变得异常麻烦,而且,卡诺图并不适合用计算机来处理。目前,常用的布尔函数最小化算法有Quine-McCluskey算法,Espresso算法及其演变算法,TT-Min算法。Quine-McCluskey算法采用了文字表格的形式,通过寻找素蕴涵项(implicant)和本质素蕴涵项(prime implicant)来确定布尔函数的最简形式,更适合在计算机上实现,但缺点是效率太低,算法的运行时间随输入大小(即布尔变量个数)呈指数增长。Espresso算法在布尔函数的最小化过程中加入了启发式信息,使得运行效率大大提升,但并不能保证结果一定是最优的。TT-Min算法与Espresso算法类似,但由于采用了基于三叉树的最小化技术,其计算效率比Espresso算法更高。
基于布尔函数的成员资格信息的编码的具体方法为:首先获取所有用户标识UID,基于布尔函数生成成员资格函数,然后进行布尔函数最小化,对得到的最小布尔函数表达式进行三进制编码,再进行二进制编码,从而得到成员资格信息。智能卡在判断当前用户是否为合法成员时,将二进制的成员资格信息还原为三进制编码,然后将当前用户的用户标识UID转化为二进制,将每一个二进制位与成员资格信息中对应位置的三进制位进行按位比较,当且仅当用户标识UID的二进制位与成员资格判定信息中对应位置的三进制位同为1或0时,判定用户为合法成员,否则用户为非法成员。
不失一般性,下面以一个规模为8的群组为例,具体说明怎样基于成员资格函数来对组密钥更新消息中的成员资格判定信息进行编码和解码。由于组规模为8,每个用户的UID可用3bits表示,假定当前组成员的UID集合(白名单)为{001,010,011,110,111}(即有5名组成员);2名非法成员(离开或被逐出)的UID集合(黑名单)为{000,100};未分配的UID集合为{101}。由于在本发明中,更新的组密钥只能由智能卡生成,组控制器GC不会为未分配的用户标识UID分发智能卡,如果智能卡验证组密钥更新消息的同时,还要验证组密钥更新消息的新鲜性,就不用考虑组密钥会泄漏给未来的组成员(确保了组后向安全性),因而可以将每个未分配的UID对应于布尔函数最小化时的一个无关项(即Don’t care productterm),这将进一步提高布尔函数最小化时的压缩率。
(1)生成成员资格函数
本实施例中可以采取以下四种方式生成不同的成员资格函数(而不同的成员资格函数将对应不同大小的组密钥更新消息):
1)白名单式
可以按照白名单的方式来构造成员资格函数用以确认任意一个UID所代表的用户是否为合法的组成员,此时,成员资格函数中的每个乘积项都对应一个合法成员的UID。这样,上述示例组的基于白名单的成员资格函数为:
2)黑名单式
同理,可以按照黑名单的方式来构造成员资格函数用以确认任意一个UID所代表的用户是否为非法的组成员(离开或被逐出),此时,成员资格函数中的每个乘积项对应一个非法成员的UID。这样,上述示例组的基于黑名单的成员资格函数为:
3)白名单式+未分配UID
对于上述示例组,UID 101尚未分配,其对应的无关项为:无关项不会影响布尔函数的输出结果,而且,在布尔函数的最小化过程中,可以通过加入无关项来辅助布尔函数的化简以提高化简效率,加入无关项后的基于白名单的成员资格函数为:
4)黑名单式+尚未分配成员
同样,加入无关项后的基于黑名单的成员资格函数为:
(2)布尔函数最小化
使用布尔函数最小化算法,第(1)步中得到的四个成员资格函数被化简为:
f3(x1,x2,x3)=x2+x3 (12)
可见,对于上述示例组,后三种方式构造的成员资格函数的化简效果最好,在具体工程实现时,可以根据实际情况从四种成员资格函数的构造方式中,选择化简效果最优的方式来为成员资格判定信息进行编码以节省通信开销。
(3)编码
对化简后的最小布尔函数表达式进行编码。按照化简后的结果,布尔函数的每个变量可能有三个值:
0:表明变量为逻辑补的形式(如某乘积项的最高位对应变量则该乘积项编码后的最高位为0),
1:表明变量为非逻辑补的形式(如某乘积项的最高位对应变量x1则该乘积项编码后的最高位为1),
2:表明这个变量在乘积项中不出现(如变量x1在某乘积项中不出现,则该乘积项编码后的最高位为2)。
所以,以f3(x1,x2,x3)=x2+x3举例,f3(x1,x2,x3)=x2+x3可用三进制编码为:(2123,2213),每一组三进制位(含三个三进制位)对应最小化后的布尔函数中的一个最小项,例如2123对应最小项x2,最后,将三进制格式转换成二进制的编码为(101112,110012)并发送给接收端的智能卡。
当智能卡接收到GC发送的基于布尔函数最小化的组成员资格编码信息10111110012时,智能卡首先提取前5个二进制位将其转换为三进制101112=2123(对应于最小项x2),然后将智能卡中保存的用户标识UID(先转化为二进制)中的每一个二进制位与成员资格信息中对应位置的三进制位进行按位比较,比较规则是:如果后者中对应位置的三进制位为2,则忽略用户UID中该二进制位,继续比较下一位,当且仅当UID的二进制位与成员资格判定信息中对应位置的三进制位同为1或0时,终止解码并输出成员资格判定结果:True,该结果表明该UID所代表的用户是合法的组成员;否则继续从成员资格编码信息中提取下5个二进制位并将其转换为三进制位串,继续将用户UID中的二进制位和这一组三进制位串进行按位比较,如果按照上述规则处理完所有的成员资格编码信息后,始终没有输出True,则终止解码并输出False,表示该UID所代表的用户不是组成员。这个按位比较的过程相当于将用户UID的二进制值带入最小化后的成员资格函数f3(x1,x2,x3)进行计算的过程。例如:假设用户的UID为1102,智能卡首先从成员资格编码信息中提取前5个二进制位将其转换为三进制101112=2123(对应于最小项x2),按照上述按位比较规则将1102与2123进行比较,忽略第1位和第3位,由于两者在第2位取值同为1,解码结束并输出True,表明1102代表的用户是合法的组成员。
经研究发现,对于一个规模为N的组,采用布尔函数最小化技术后,最小项的平均个数为O(log2N),对应于本发明,如果采用布尔函数最小化技术编码成员资格判定信息,组密钥更新消息的平均通信开销为所以这种方式非常适合大规模动态群组。
尽量本实施例中已经提出了对成员资格信息进行压缩以降低通信开销的方法,但是对于大型群组,组密钥更新消息仍然十分巨大,存储受限的智能卡将无法把整个组密钥更新消息一次性读取到智能卡内部缓冲区中进行处理,换一句话说,当密钥更新消息的大小超出了智能卡缓冲区的大小时,智能卡将无法处理该消息,所以在实际应用中,组控制器GC可以将组密钥更新消息进行分块发送,智能卡每次读取组密钥更新消息的一个数据块到缓冲区中进行处理。
根据成员资格信息的不同,也可以采用不同的组密钥更新消息的分块方式:如果成员资格信息采用的是位表示法或带压缩的位表示法编码,可以按照智能卡缓冲区大小对组密钥更新消息进行平均分割;如果采用的布尔函数最小化编码,则以最小项为最小单位来进行分块,智能卡应用程序从组密钥更新消息中读取一块成员资格判定信息提交给智能卡。
由于智能卡必须使用MAC签名对整条组密钥更新消息的完整性和起源进行鉴别,之后才进行成员资格判定(以防止敌手篡改和伪造组密钥更新消息),但是对于大小超过智能卡缓冲区大小的组密钥更新消息,成员资格判定信息必须分块处理并同时进行成员资格判定,那么如在这种情况下,组控制器GC在发送组密钥更新消息的时候,根据接收方智能卡缓冲区的大小来对组密钥更新消息(特别是消息中的成员资格判定信息)进行分块的同时,为每一个数据块计算一个MAC签名信息,附在每一个原始数据块之后,智能卡在接收到组密钥更新消息的数据块后,为该数据块单独进行MAC验证,以确保每个数据块都未被篡改或伪造,然后再进行后续处理。对于同样的信息,相比运用一个密码Hash算法计算其消息摘要的计算开销(例如SHA-256),运用基于同样的密码Hash算法的HMAC算法计算其MAC签名的计算开销会稍微大一点,为了进一步减少接收方智能卡验证组密钥更新消息的计算开销,可以按照单向Hash链的方式来解决组密钥更新消息划分为数据块时的完整性和起源鉴别。
为了更好地说明本发明的技术效果,接下来对本发明的安全性进行分析。
由于本发明中采用智能卡来生成组密钥,由于在组密钥生成过程中,各种密钥素材都没有离开过智能卡,而组密钥更新消息或组密钥更新消息划分后的数据块都受MAC签名的保护,因此敌手无法篡改组密钥更新消息或伪造组密钥更新消息。敌手获取组密钥的唯一途径只能是向其拥有的智能卡提交其记录的(或窃听的)组密钥更新消息,妄图让其拥有的智能卡输出其所不被允许访问的组密钥。假设一个UID为x的用户直到第i次组会话的时才加入群组并获得了组控制器GC为其颁发的智能卡,x窃听并保存了其加入群组之前的所有组密钥更新消息(即第1次直到第i-1次组会话对应的组密钥更新消息),并试图向其智能卡提交这些组密钥更新消息以便获取其加入群组前的所有组密钥,但由于从第1次到第i-1次组会话,x均不在组成员的白名单中,用户x的智能卡根据第1次直到第i-1次组密钥更新消息中所包含的组成员资格判定信息必定判定x为非组成员,不会向其输出第1次直到第i-1次组会话对应的组密钥。可见,本发明满足组后向安全性。
另一方面,假设一个UID为y的用户离开了群组,y继续记录并保存其离开后的所有组密钥更新消息,并试图向其智能卡提交这些组密钥更新消息以便获取其离开群组后所有更新的组密钥,但由于y离开后,y已经不在组成员的白名单中,用户y的智能卡根据其离开后的组密钥更新消息中所包含的组成员资格判定信息必定判定y为非组成员,不会向其输出之后更新的任何组密钥。因此本发明也满足组后向安全性。
接下来对本发明进行仿真实验验证。本次实验验证中设计了一个仿真实验来模拟一个大规模动态群组(成员规模百万级)的组成员资格变动活动(即用户的加入和离开),通过这个仿真实验,我们将最终得到在群组的生命周期内每一个时间点上各个用户的资格状态(即组成员还是非组成员)、组成员的数目,非组成员的数目以及尚未分配的用户标识UID数目。
为统计组密钥更新消息的通信开销,本次实验验证采用均匀取样的方式,取若干个时间点,根据全组用户资格状态,计算并比较采用不同成员资格判定方法(位表示法、带压缩的位表示法、成员资格函数的布尔函数最小化)时的组密钥更新消息的通信开销,同时与主流的无状态组密钥分发协议SD协议的组密钥更新消息中的子集标识信息(Subset IDInfo,简称SII)的通信开销进行比较。本实施例使用了Java Card作为用户智能卡来进行实验,统计了不同的组规模下,GC以及Java Card的计算开销。
本次实验验证中分别从时间以及组规模两个维度来分析本发明在采用不同成员资格判定方法时的组密钥更新消息的通信开销,同时也与主流的无状态组密钥分发协议SD协议的子集标识信息(Subset ID Info,简称SII)的通信开销进行比较(注意SD协议的组密钥更新消息中还包括占通信开销最主要部分的密文块部分)。
图5是本发明和对比方法的通信开销对比图。如图5所示,分别采用位表示法(MBP)、带压缩的位表示法(MBP_RLE)或布尔函数最小化技术(BFM、BFM_DC)对成员资格判定信息进行编码时,组密钥更新消息的通信开销要远远低于SD协议中SII的通信开销,而其中,以布尔函数最小化技术(BFM、BFM_DC)最优。
对于本次实验验证模拟的成员活动,在对成员资格函数进行布尔函数最小化时,加入未分配ID(即无关项)(对应BFM_DC)可以降低协议的通信开销,但降低的幅度并不明显,两者的曲线基本重合。在组生命周期的中期,组成员的比例在50%上下时,由于组成员的分布相对离散,采用带压缩的位表示法(MBP_RLE)或布尔函数最小化技术(BFM和BFM_DC)对成员资格判定信息进行编码时,组密钥更新消息的通信开销都会超过位表示法(MBP)。
图6是本发明和对比方法通信开销随组规模的变化曲线图。如图6所示,本次初验验证设置6个组规模(即组成员的数目),分别为210,212,214,216,218,220对同一时间点的通信开销进行统计。可以看出,随着组规模的增加,采用布尔函数最小化(BFM)对成员资格判定信息进行编码时,组密钥更新消息的通信开销的增长率最低,带压缩的位表示法(MBP_RLE)次之,SD协议中的SII通信开销增长率最高,且远高于位表示法(MBP)的增长率。
接下来通过仿真实验来测量组控制器GC和Java Card的计算开销。GC的主要计算开销在于它要根据组成员分布情况生成相应的成员资格判定信息,且对于大规模动态群组,成员资格判定信息将会变得非常大,相应地GC必须对组密钥更新消息进行分块处理,分块计算MAC签名。而Java Card的主要计算开销在于组密钥更新消息的分块MAC验证和成员资格判定。在采用位表示法(MBP)以及带压缩的位表示法(MBP_RLE)编码成员资格判定信息时,GC的计算开销与组规模N呈线性关系,即O(N)。相比MBP和MBP_RLE方法,GC采用布尔函数最小化技术BFM来编码成员资格判定信息时的计算开销更大,所以我们只测量GC采用布尔函数最小化BFM编码成员资格判定信息的计算开销(即最坏情况)以验证方案的可行性。
本次实验验证中设置组规模为1024,组成员的比例(即当前组成员数目相对于组规模的比例)取8个等级,从10%变化到80%,未分配UID的比例固定为10%。组成员和未分配UID的分布采用均匀分布。进行了两次实验,分别对应成员资格函数按白名单式编码和成员资格函数按白名单+未分配UID编码时,组控制器GC的计算开销。表1是本实施例中不同乘积项比例的组控制器计算开销对比表。
表1
如表1所示,随着合法成员比例的增加,GC的计算开销也随之增加,两者大致成线性关系。成员资格函数按白名单+未分配UID编码时,GC的计算开销有所增加。
然后设置取6个组规模,分别为210,212,214,216,218,220。依然进行两次实验,第一个实验固定组成员数目为128,成员分布采用均匀分布。第二个实验固定组成员的比例为35%,组成员的分布也采取均匀分布。表2是本实施例中不同组规模下组控制器的计算开销对比表。
表2
如表2所示,固定组成员数目为128的情况下,GC的计算开销随组规模变化幅度比较平缓,而在固定组成员比例为35%的情况下,随着组规模的增加,组控制器GC的计算开销陡增,但即使是百万级的大规模动态群组生成组密钥更新消息,也可以用常规计算机或服务器来实现。
组密钥更新消息的实际接收方为用户的Java Card,其计算开销包括两方面:一方面是进行成员资格判定时的计算开销,成员资格判定的计算开销与所采用的成员资格判定方法相关,采用位表示法(MBP)时,Java Card进行成员资格判定的计算开销为O(1),而在采用带压缩的位表示法(MBP_RLE)以及布尔函数最小化(BFM)编码时,需要线性扫描一遍成员资格编码,计算开销为O(L),L为编码后的成员资格判定信息的长度;另一方面是对组密钥更新消息进行分块验证(MAC签名验证)的计算开销。这里仅测试当成员资格判定信息按照布尔函数最小化编码时,接收方Java Card的计算开销。
Java Card的命令APDU可以携带的数据为2048bit,本实施例以2048bit作为一个数据块的长度,其中MAC签名部分占256bit(消息鉴别码算法采用HMAC-SHA256算法),对于组规模为1024的情形,每个数据块最多可以携带112个最小项编码,在组规模较小的情况下,组成员资格判定信息很小,不需要对组密钥更新消息进行分块处理。
表3是本实施例中不同组规模下的组密钥更新消息数据表。
表3
表4是本实施例中Java Card在不同组规模下的计算开销表。
表4
从表3、表4的数据可以看出,即使组规模达到百万级,采用布尔函数最小化技术(BFM)编码的组密钥更新消息的数据分块的数量并不算大,Java Card进行成员资格判定以及MAC验证的计算开销也很小(毫秒级)。但如果采用位表示法(MBP),在组规模百万级的情况,组密钥更新消息的数据分块数量将达到586个,会大大增加Java Card计算开销,但也仍在Java Card的处理范围以内。
综上所述,对于大规模动态群组的无状态组密钥更新(或分发),本发明(尤其采用布尔函数最小化技术编码成员资格信息时)的平均通信开销远远低于获得广泛应用的SD协议和AACS协议的通信开销。另一方面,计算性能的仿真结果表明,即使对于成员规模达到百万级的动态群组,对于本发明接收方智能卡的计算开销也处于微秒级,证实了本发明适合用于大规模动态群组的无状态组密钥分发。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (5)
1.一种基于智能卡的大规模动态群组的无状态组密钥更新方法,其特征在于,包括以下步骤:
S1:当一个用户首次通过注册加入群组,组控制器GC为该用户分配一个唯一的用户标识UID和一张智能卡,并将用户的UID写入该智能卡的只读存储器中;
S2:组控制器GC在新注册用户智能卡的只读存储器中写入MAC密钥、AES密钥k、密钥种子s0和组密钥生成器,其中:
MAC密钥用于用户对组控制器GC发送的组密钥更新消息进行身份验证;
组密钥生成器用于根据AES密钥k、密钥种子s0以及保密组通信的会话标识SID为对应用户生成当前保密组通信的密钥,具体的组密钥生成方法为:
组密钥生成器从组控制器GC接收当前保密组通信的会话标识SID,然后采用如下公式计算得到用于当前保密组通信的组密钥S:
其中:
I′=AES_D(k,SID)
AES_D()表示AES的解密操作;S′表示上一个保密组通信会话所使用的组密钥,其初始值即为密钥种子s0;表示异或操作;
S3:预先设置一个保密组通信会话标识序列,包含若干个备用的会话标识SID;当保密组通信中的成员资格发生变动时,组控制器GC开启一个新的会话,并从保密组通信会话标识序列中选取一个未使用的会话标识SID;组控制器GC自身采用组密钥生成方法根据当前会话标识SID生成新的组密钥,然后构建一个组密钥更新消息并分发给当前保密组中的所有用户,其中组密钥更新消息包含4个信息域,分别为信息类型、会话标识SID、成员资格和MAC签名,其中:
信息类型用于标识当前信息为组密钥更新消息;
会话标识SID用于标识当前保密组通信会话;
成员资格用于标识当前保密组中所包含的成员用户;
MAC签名基于MAC密钥生成,用于标识组控制器GC;
S4:每个用户在接收到组密钥更新消息后,将组密钥更新消息转发至对应的智能卡,智能卡根据组密钥更新消息为用户生成更新后的组密钥,具体方法为:
S4.1:从组密钥更新消息中解析得到MAC签名并根据MAC密钥进行MAC签名验证,判断是否MAC签名验证通过,如果未通过,进入步骤S4.2,如果通过,进入步骤S4.3;
S4.2:组密钥更新结束,智能卡向用户反馈MAC签名错误信息;
S4.3:从组密钥更新消息中解析得到消息类型和成员资格,判断当前用户是否为合法成员,如果不是合法成员,进入步骤S4.4,否则进入步骤S4.5;
S4.4:组密钥更新结束,智能卡向用户反馈非法成员提示信息;
S4.5:从组密钥更新消息中解析得到会话标识SID,然后调用组密钥生成器生成新的组密钥并反馈给用户。
2.根据权利要求1所述的无状态组密钥更新方法,其特征在于,所述步骤S3中组密钥更新消息中成员资格为一个比特串,其中第i个比特标识了第i个用户的组成员资格状态,用比特1表示合法成员,0表示非法成员,i=1,2,3,…,N,N表示用户总数;
智能卡在判断当前用户是否为合法成员时,根据用户在比特串中所对应的比特的取值来判断。
3.根据权利要求1所述的无状态组密钥更新方法,其特征在于,所述步骤S3中组密钥更新消息中成员资格采用如下方法得到:首先将成员资格表示为一个比特串,其中第i个比特标识了第i个用户的组成员资格状态,用比特1表示合法成员,0表示非法成员,i=1,2,3,…,N,N表示用户总数;然后采用步长编码对该比特串进行压缩,将压缩后的比特串作为成员资格信息;
智能卡在判断当前用户是否为合法成员时,首先根据压缩方法的逆操作将压缩后的比特串进行还原,根据用户在还原比特串中所对应比特的取值来判断是否为合法成员。
4.根据权利要求1所述的无状态组密钥更新方法,其特征在于,所述步骤S3中组密钥更新消息中成员资格采用如下方法得到:先获取所有用户标识UID,基于布尔函数生成成员资格函数,然后进行布尔函数最小化,对得到的最小布尔函数表达式进行三进制编码,再进行二进制编码,从而得到成员资格信息;
智能卡在判断当前用户是否为合法成员时,将二进制的成员资格信息还原为三进制编码,然后将当前用户的用户标识UID转化为二进制,将每一个二进制位与成员资格信息中对应位置的三进制位进行按位比较,当且仅当用户标识UID的二进制位与成员资格判定信息中对应位置的三进制位同为1或0时,判定用户为合法成员,否则用户为非法成员。
5.根据权利要求1所述的无状态组密钥更新方法,其特征在于,所述步骤S3中组控制器GC将组密钥更新消息进行分块发送,并为每一个数据块计算一个MAC签名信息,附在每一个原始数据块之后,智能卡在接收到组密钥更新消息的数据块后,为该数据块单独进行MAC验证,然后再进行后续处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310827605.7A CN116709316B (zh) | 2023-07-06 | 2023-07-06 | 基于智能卡的大规模动态群组的无状态组密钥更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310827605.7A CN116709316B (zh) | 2023-07-06 | 2023-07-06 | 基于智能卡的大规模动态群组的无状态组密钥更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116709316A true CN116709316A (zh) | 2023-09-05 |
CN116709316B CN116709316B (zh) | 2024-01-26 |
Family
ID=87845122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310827605.7A Active CN116709316B (zh) | 2023-07-06 | 2023-07-06 | 基于智能卡的大规模动态群组的无状态组密钥更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116709316B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101057445A (zh) * | 2004-11-16 | 2007-10-17 | 艾利森电话股份有限公司 | 选择性访问信息的系统中改进的密钥分发 |
CN108200057A (zh) * | 2017-12-31 | 2018-06-22 | 江苏翰诺信息科技发展有限公司 | 一种远程应用智能卡密钥的方法及系统 |
CN108964895A (zh) * | 2018-06-28 | 2018-12-07 | 如般量子科技有限公司 | 基于群组密钥池和改进Kerberos的User-to-User身份认证系统和方法 |
US20200084185A1 (en) * | 2016-12-20 | 2020-03-12 | Nippon Telegraph And Telephone Corporation | Message transmission system, communication terminal, server apparatus, message transmission method, and program |
CN115396149A (zh) * | 2022-07-22 | 2022-11-25 | 太原理工大学 | 一种基于隐私保护的高效认证密钥交换方法 |
CN116318678A (zh) * | 2023-03-28 | 2023-06-23 | 重庆邮电大学 | 一种多因子物联网终端动态群组接入认证方法 |
-
2023
- 2023-07-06 CN CN202310827605.7A patent/CN116709316B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101057445A (zh) * | 2004-11-16 | 2007-10-17 | 艾利森电话股份有限公司 | 选择性访问信息的系统中改进的密钥分发 |
US20200084185A1 (en) * | 2016-12-20 | 2020-03-12 | Nippon Telegraph And Telephone Corporation | Message transmission system, communication terminal, server apparatus, message transmission method, and program |
CN108200057A (zh) * | 2017-12-31 | 2018-06-22 | 江苏翰诺信息科技发展有限公司 | 一种远程应用智能卡密钥的方法及系统 |
CN108964895A (zh) * | 2018-06-28 | 2018-12-07 | 如般量子科技有限公司 | 基于群组密钥池和改进Kerberos的User-to-User身份认证系统和方法 |
CN115396149A (zh) * | 2022-07-22 | 2022-11-25 | 太原理工大学 | 一种基于隐私保护的高效认证密钥交换方法 |
CN116318678A (zh) * | 2023-03-28 | 2023-06-23 | 重庆邮电大学 | 一种多因子物联网终端动态群组接入认证方法 |
Non-Patent Citations (2)
Title |
---|
V. S. JANANI , M. S. K. MANIKANDAN: "An Efficient Genetic Based Broadcast Stateless Group Key Management Scheme with Dynamic Rekeying in Mobile Ad‑Hoc Networks", WIRELESS PERSONAL COMMUNICATIONS (2019) * |
刘璟,周明天: "大型动态多播群组的密钥管理和访问控制", 软件学报 * |
Also Published As
Publication number | Publication date |
---|---|
CN116709316B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494740B (zh) | 令牌生成和校验方法、智能终端及服务器 | |
CN100536393C (zh) | 一种基于秘密共享密码机制的用户管理方法 | |
CN100576196C (zh) | 内容加密方法、系统和利用该加密方法通过网络提供内容的方法 | |
JP2552061B2 (ja) | 公開キー暗号システムにおいてネットワーク安全保証ポリシーが狂わないようにする方法及び装置 | |
CN102404726B (zh) | 一种对用户访问物联网信息的分布式控制方法 | |
CN111310222B (zh) | 文件加密方法 | |
JP2001514834A (ja) | 安全決定性暗号鍵発生システムおよび方法 | |
CN110381055B (zh) | 医疗供应链中的rfid系统隐私保护认证协议方法 | |
CN101582109A (zh) | 数据加密方法及装置、数据解密方法及装置、固态硬盘 | |
CN110166423B (zh) | 用户信用的确定方法、装置、系统和数据的处理方法 | |
WO1997031449A1 (fr) | Methode de communication utilisant une cle cryptographique commune | |
CN113365270B (zh) | 基于物联网应用的rfid多标签联合认证系统及方法 | |
CN111177769A (zh) | 一种隐私数据保护的名单查询方法及相关的名单查询系统 | |
JP2005512250A5 (zh) | ||
CN109962777A (zh) | 许可区块链系统中的密钥生成、获取密钥的方法及设备 | |
CN115514585B (zh) | 一种数据库安全管理方法和系统 | |
CN111400728A (zh) | 应用于区块链的数据加密解密方法及装置 | |
CN110688666A (zh) | 一种分布式存储中数据加密保存方法 | |
CN107493171A (zh) | 无线射频设备、认证服务器及认证方法 | |
US11128455B2 (en) | Data encryption method and system using device authentication key | |
CN113051605A (zh) | 一种基于区块链的个人隐私信息使用管理系统及方法 | |
CN115603907A (zh) | 加密存储数据的方法、装置、设备和存储介质 | |
Avoine et al. | Security of ubiquitous computing systems: Selected topics | |
CN113849840B (zh) | 基于可认证加密计数器的加密数据统计分析方法 | |
CN114844688A (zh) | 数据传输方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |