UMBRAL:閾值代理重加密方案

UMBRAL github link

Overview

Umbral是遵循密鑰封裝機制(KEM)方法的閾值代理重新加密方案。 它受到ECIES-KEM 和BBS98代理重新加密方案的啓發。 使用Umbral,Alice(在NuCypher KMS中爲數據所有者的通用名稱)可以通過一組N個半受信任的代理執行的重新加密過程,將針對任何給她的密文的解密權委派給Bob。 當這些代理中的至少t個(共N個)通過執行重新加密參與時,Bob能夠組合這些獨立的重新加密並使用其私鑰解密原始消息。 “ Umbral”這個名稱源於西班牙語中的“閾值”一詞,強調了該方案的這一特性,因爲它在NuCypher KMS的分散式體系結構中起着核心作用。

Roles setup

在這裏插入圖片描述
代理重新加密的簡要介紹。代理重新加密是一種特殊類型的公鑰加密,它允許代理將密文從一個公鑰轉換爲另一個,而代理不能get到有關原始消息的任何信息。爲此,代理必須擁有啓用此過程的重新加密密鑰。因此,它用作委派解密權限,打開許多可能需要委託訪問加密數據的應用程序的手段。在PRE文獻中,通常以委派​​關係來標記參與的各方,即:
Delegator( 委託人):該參與者是使用代理重新加密委託解密權的參與者。爲此,他創建了一個重新加密密鑰,並將其發送給代理。
Delegatee( 被委託人):被委託人授予解密密文的權利,儘管這些密文雖然最初不是給他使用的,但在原始收件人(即委託人)的許可下,已爲他重新加密。
Proxy(代理服務器):它處理重新加密過程,該過程將代理人的公共密鑰下的密文轉換爲委託人可以使用其私鑰解密的密文。代理在此過程中使用重新加密密鑰,並且不學習任何其他信息。

Features

方向性:如果重新加密密鑰僅允許從Delegator到Delegatee的一個方向上轉換密文,則PRE方案是單向的,否則爲雙向的。
跳數:如果重新加密的密文無法進行多跳(或多次使用),則PRE方案是單跳(或一次性使用) 否則爲多跳。
**交互性:**如果在重新加密密鑰生成過程中不需要Delegatee的Secret key,則該方案不是交互性的(由於他不必參與該過程)。 否則,我們說它是交互式的。

Process

在這裏插入圖片描述
(1)Key Generation Algorithms. 密鑰生成
• **KeyGen()**密鑰對生成: The key generation algorithm KeyGen outputs a pair of public and secret keys
(pk A , sk A ).
ReKeyGen(sk A , pk B , N, t)重加密密鑰: On input the secret key sk A = a, the public key of the in-
tended delegatee pk B = g b , a number of fragments N , and a threshold t, the re-encryption
key generation algorithm ReKeyGen computes N fragments of the re-encryption key be-
tween A and B, each of them named kF rag.

(2)Encapsulation and Decapsulation.
Encapsulate(pk A )封裝: On input the public key pk A , the encapsulation algorithm Encapsulate
a symmetric key K and a capsule that allows to derive again (i.e., “decapsulate”) the
symmetric key K.
Decapsulate(sk A , capsule) 解封便於重加密: On input the secret key sk A , and an original capsule, the
decapsulation algorithm Decapsulate outputs the symmetric key K, or ⊥ if the capsule
is invalid.
(3)Re-Encapsulation and Fragments Decapsulation.
ReEncapsulation(kF rag, capsule)重加密: On input a re-encryption key fragment kF rag, and a
capsule, the re-encapsulation algorithm ReEncapsulation outputs the capsule fragment
cF rag, or ⊥ if the the process fails.
DecapsulateFrags(sk B , {cF rag i } ti=1 , capsule)解密: On input the secret key sk B , and a set
of t capsule fragments or cF rags, the fragments decapsulation algorithm outputs the
symmetric key K, or ⊥ if the decryption fails.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章