Encryption
Charm 加密方案中的“msg = group.random(GT)”是什麼?
在Charm的許多加密方案中,使用隨機組消息而不是文本消息:
msg = group.random(GT)
例如,在 CP-ABE 方案中,使用隨機消息:
cpabe = CPabe_BSW07(group) msg = group.random(GT) attributes = ['ONE', 'TWO', 'THREE']
方案詳情見連結:http: //jhuisi.github.io/charm/charm/schemes/abenc/abenc_bsw07.html
誰能為我澄清一下我是否可以在這裡使用自己的文本消息而不是隨機 ID。我嘗試使用編碼的字節數組,但沒有運氣。是什麼
group.random(GT)
?我可以使用自定義消息嗎?
在實際應用中,基於屬性的加密 (ABE) 與對稱密碼結合使用,因為您只能使用 ABE 加密組元素。在這種情況下,它是乘法群 $ G_T $ .
當您嘗試使用組元素表示文本消息(位串)時,位的數量是有限的,因為組的大小是從素數派生的。在 Charm 中,它很可能是 512 位素數。如果您有一個映射函式將位字元串映射到組元素並再次返回,則您不能表示大於任何組元素的消息。
通常會做其他事情。在 ABE 的上下文中,它被稱為混合加密。使用 AES 或其他對稱密碼對文本消息進行加密,使用的隨機密鑰來自隨機 $ G_T $ 元素。
- 隨機生成 $ G_T $ 元素與
el = group.random(GT)
。el
從例如這樣的extractor(el)
甚至hashlib.sha256(str(el)).digest()
可以直接用作AES密鑰的字節生成字節。- 您將使用先前生成的密鑰使用對稱密碼(如 AES-256)加密您的文本消息。
Charm 為第 2 步和第 3 步提供了一些東西
SymmetricCryptoAbstraction
:Charm 中實現的方案並沒有走這麼遠來實現方案的混合版本,因為它們中的每一個都是相同的。驗證方案的功能是不必要的。這就是為什麼消息只是一個隨機組元素,作為真實世界消息的佔位符。