Napsal: Noemi Glaeser, krypto a16z

Napsal: Chris, Techub News

V kryptografii s veřejným klíčem byl vždy obtížný problém, tedy jak správně přiřadit šifrovací klíč (například veřejný klíč) ke konkrétní identitě (například osobě nebo organizaci). Klíčem k tomuto problému je mít veřejný a konzistentní způsob, jak ukázat vztah mezi identitami a veřejnými klíči, aby každý mohl s jistotou používat tyto veřejné klíče k šifrování informací.

Bez takto jasného vztahu nemusí být ostatní schopni určit, komu určitý veřejný klíč patří, a mohou poslat zašifrované informace nesprávné osobě, což povede k úniku informací nebo jiným vážným následkům. Ve Web3 tento problém stále existuje.

V současnosti existují tři řešení výše uvedených problémů: Adresář veřejného klíče, šifrování založené na identitě (IBE) a šifrování založené na registraci (RBE). Každá z těchto tří metod má své výhody v anonymitě, interaktivitě a efektivitě. Například IBE vyžaduje silný základ důvěry, ale v některých případech si IBE vede lépe, pokud jde o anonymitu a efektivitu. Tento článek si klade za cíl prozkoumat aplikaci těchto tří metod na blockchainu a porovnat jejich výhody a nevýhody.

tři způsoby

Obecně řečeno, běžným způsobem, jak přidružit šifrovací klíče k informacím o identitě, je použití infrastruktury veřejného klíče (PKI), jejíž hlavní částí je adresář veřejných klíčů. Při této metodě musí osoba odesílající informace komunikovat s důvěryhodnou třetí stranou (tj. autoritou, která spravuje tento adresář, obvykle certifikační autoritou), aby mohla odesílat šifrované informace.

V prostředí Web2 však údržba tohoto adresáře s veřejným klíčem vyžaduje vysoké náklady a těžkopádné operace. Uživatelé jsou navíc vystaveni riziku možného zneužití certifikačními autoritami.

Některé alternativy navržené kryptografy k řešení problémů s infrastrukturou veřejného klíče (PKI). V roce 1984 Adi Shamir navrhl šifrování založené na identitě (IBE), ve kterém lze identitu strany (jako je telefonní číslo, e-mail nebo název domény ENS) použít přímo jako veřejný klíč. Tento přístup eliminuje potřebu udržovat adresář veřejných klíčů, ale přináší nový problém: při generování soukromého klíče se musí spoléhat na důvěryhodnou třetí stranu (generátor klíčů).

V roce 2001 Dan Boneh a Matthew Franklin navrhli první praktickou konstrukci IBE, ale tato technologie nebyla široce přijata a používá se hlavně v některých uzavřených ekosystémech, jako jsou podniková nebo vládní prostředí. Jedním z důvodů, proč IBE není široce používán, může být to, že se spoléhá na silný předpoklad důvěry, tedy důvěřovat klíčům generovaným třetí stranou.

Jak však bude diskutováno dále v tomto článku, tento problém důvěry lze vyřešit spoléháním se na jedinou důvěryhodnou stranu (tj. kvorum skupiny účastníků), čehož může technologie blockchain snadno dosáhnout.

Výhody a nevýhody

Existuje mnoho různých faktorů, které je třeba vzít v úvahu při porovnávání těchto šifrovacích schémat, a já k tomu učiním dva předpoklady:

Uživatelé své klíče neaktualizují ani neodvolávají: to znamená, že diskuse předpokládá, že klíč každého uživatele je pevný a nelze jej změnit.

Inteligentní smlouva nepoužívá žádnou službu dostupnosti dat mimo řetězec (DAS) ani data blob: to znamená, že se předpokládá, že inteligentní smlouva zcela spoléhá na data v řetězci a nezahrnuje datové služby mimo řetězec ani další úložiště dat. .

Adresář veřejného klíče

Kdokoli může přenést ID, které není obsazeno ostatními, voláním smart kontraktu.

(ID, PO)

Položky se přidávají do adresáře v řetězci.

Decentralizované PKI se týká udržování adresáře identit (ID) a jejich odpovídajících veřejných klíčů prostřednictvím inteligentních smluv. Tento adresář je veřejný a nespoléhá se na centralizované třetí strany. Například, vezmeme-li ENS jako příklad, udržuje mapovací vztah mezi názvem domény (tj. identitou) a souvisejícími metadaty, včetně adres vyřešených názvem domény (veřejné klíče lze odvodit z transakcí na těchto adresách). ENS je složitější systém, který nejen zaznamenává veřejné klíče, ale ukládá i další metadata. Funkce decentralizovaného PKI je poměrně jednoduchá: chytrá smlouva potřebuje pouze udržovat seznam a zaznamenávat veřejný klíč odpovídající každé identitě.

Když si uživatel chce zaregistrovat identitu, musí nejprve vygenerovat pár klíčů (veřejný klíč a soukromý klíč), nebo použít již vygenerovaný pár klíčů k odeslání svého ID identity a veřejného klíče do smart kontraktu (případně také zaplatit A určitý poplatek), smart kontrakt zkontroluje, zda toto ID nezaregistroval někdo jiný. Pokud není obsazený, chytrý kontrakt do adresáře přidá ID a veřejný klíč. Jakmile je registrace dokončena, kdokoli může získat veřejný klíč odpovídající ID tím, že požádá smart kontrakt o zaslání šifrované zprávy uživateli , není třeba znovu vyžadovat veřejný klíč z chytré smlouvy. Po získání veřejného klíče jej může odesílatel použít k zašifrování zprávy jako obvykle a poté odeslat zašifrovanou zprávu příjemci. Příjemce použije odpovídající soukromý klíč k dešifrování zprávy a obnovení původního textu.

Podívejme se na výhody a nevýhody tohoto přístupu:

Výhody Nevýhody Neinteraktivní dešifrování: Proces dešifrování nevyžaduje interakci s ostatními stranami a dešifrovač může dokončit dešifrování nezávisle. Není stručné: Systém nemusí být v některých aspektech dostatečně jednoduchý, což může znamenat vyšší složitost, větší objem dat nebo vyžadovat více zdrojů. Transparentnost: Systém může být v některých ohledech transparentní, což znamená, že operace jsou veřejné a lze je kontrolovat. Interaktivní šifrování: Proces šifrování může vyžadovat určitou interakci s ostatními stranami, což zvyšuje složitost. Jakékoli ID: Uživatelé si mohou vybrat nebo použít jakékoli ID identity, aniž by byli omezováni konkrétními formáty nebo pravidly. Odesílatel není anonymní: Identita odesílatele nemusí zůstat v systému zcela anonymní.

Šifrování založené na identitě (IBE)

Identita uživatele je reprezentována jeho veřejným klíčem, což znamená, že veřejný klíč neslouží pouze k šifrování, ale slouží také jako jedinečný identifikátor uživatele. Tento přístup však závisí na jedné nebo více důvěryhodných třetích stranách, které jsou odpovědné za generování a vydávání klíčů. Kromě toho jsou tyto třetí strany povinny udržovat hlavní klíč po celou dobu životnosti systému, který může být v některých případech použit pro dešifrování nebo jiné důležité operace.

V systému IBE si uživatelé negenerují pár veřejných a soukromých klíčů sami jako v tradičních šifrovacích systémech. Místo toho se uživatelé musí zaregistrovat u důvěryhodného generátoru klíčů. Generátor klíčů obsahuje pár hlavních klíčů (včetně hlavního soukromého klíče msk a hlavního veřejného klíče mpk). Když uživatel poskytne své ID, generátor klíčů použije hlavní soukromý klíč msk a ID uživatele k výpočtu soukromého klíče jedinečného pro tohoto uživatele. Vygenerovaný soukromý klíč musí být doručen uživateli prostřednictvím zabezpečeného kanálu. Obecně řečeno, k vytvoření tohoto zabezpečeného kanálu se používá protokol pro výměnu klíčů.

Pro odesílatele systém IBE zjednodušuje proces šifrování. Odesílatel potřebuje pouze jednou stáhnout hlavní veřejný klíč (mpk) generátoru klíčů a poté může použít ID k zašifrování zprávy. Dešifrování je pro příjemce také jednoduché. Registrovaní uživatelé mohou dešifrovat přijatý šifrovaný text pomocí soukromého klíče, který jim vydá generátor klíčů.

Hlavní soukromý klíč generátoru klíčů (msk) musí být uchován dlouhodobě, protože potřebuje neustále generovat nové soukromé klíče uživatele za běhu systému. To se liší od některých systémů SNARK, které jsou generovány během důvěryhodného nastavení, ale po dokončení nastavení mohou být zničeny. V systému IBE nelze hlavní soukromý klíč po inicializaci smazat jako v SNARK.

I když je hlavní soukromý klíč (msk) správně uchováván, každý registrovaný uživatel musí stále důvěřovat generátoru klíčů, že nečte jeho zprávy. Je to proto, že generátor klíčů si může kdykoli ponechat kopii soukromého klíče uživatele nebo přepočítat soukromý klíč uživatele pomocí hlavního soukromého klíče.

Je také možné, že generátor klíčů poskytne uživateli problematický nebo omezený soukromý klíč, který dokáže dešifrovat většinu zpráv, ale nedokáže dešifrovat určité zprávy, na které je generátor klíčů naprogramován. To znamená, že generátor klíčů má schopnost manipulovat s dešifrovacími schopnostmi uživatele, čímž může potenciálně vykonávat určitý stupeň kontroly nebo omezení komunikace uživatele.

Klady Nevýhody Úložiště v řetězci je konstantní/minimální: Velikost úložiště vyžadovaná systémem na blockchainu je malá nebo konstantní a v průběhu času se nezvyšuje. Předpoklad silné důvěry: Systém se spoléhá na jednu nebo více důvěryhodných třetích stran, což znamená, že v tyto třetí strany musí existovat silná důvěra. Pokud jsou tyto třetí strany kompromitovány nebo jsou nespolehlivé, je ohrožena bezpečnost systému. Neinteraktivní šifrování: Proces šifrování nevyžaduje interakci s ostatními stranami a odesílatel může šifrování dokončit nezávisle. Anonymita odesílatele: Systém může udržovat identitu odesílatele v anonymitě a chránit soukromí. Jakékoli ID: Uživatelé si mohou vybrat nebo použít jakékoli ID identity, aniž by byli omezováni konkrétními formáty nebo pravidly.

Šifrování založené na registraci (RBE)

Stejně jako IBE v tomto systému identita uživatele (jako je e-mailová adresa nebo telefonní číslo) působí přímo jako jejich veřejný klíč. Ale na rozdíl od IBE se tento systém již nespoléhá na důvěryhodnou třetí stranu nebo sadu kvora pro správu klíčů. Místo toho je tato důvěryhodná třetí strana nahrazena klíčovým kurátorem.

V této části budu diskutovat o efektivním způsobu konstrukce RBE, protože pokud vím, má to významnou výhodu oproti jiným praktickým konstrukcím RBE, může být nasazen na blockchainu, protože je založen na párování, spíše než na mřížce.

V systému RBE si každý uživatel generuje pár klíčů (včetně veřejného klíče a soukromého klíče). Uživatelé také potřebují vypočítat některé aktualizační hodnoty (v diagramu označené a) na základě svého soukromého klíče a společného referenčního řetězce (CRS). Tyto aktualizované hodnoty se používají pro další operace v systému. Přítomnost společného referenčního řetězce (CRS) znamená, že systém není nastaven zcela bez důvěry. Proces generování CRS však využívá konstrukční metodu zvanou tau power. Tato konstrukční metoda může být dokončena pomocí společných výpočtů několika účastníků v řetězci. Pokud je alespoň jeden účastník čestný, je tento CRS bezpečný.

Inteligentní smlouva je nastavena pro očekávaný počet uživatelů N, kteří jsou seskupeni do různých segmentů. Když se uživatelé zaregistrují do systému, musí do chytré smlouvy odeslat své ID identity, veřejný klíč a hodnotu aktualizace. Inteligentní smlouva udržuje sadu veřejných parametrů pp, které se liší od výše uvedeného veřejného referenčního řetězce (CRS). pp si můžete představit jako stručný souhrn veřejných klíčů všech registrovaných uživatelů v systému. Poté, co smart contract obdrží žádost uživatele o registraci, zkontroluje aktualizované hodnoty, aby ověřil jejich správnost. Jakmile projde ověřením, inteligentní smlouva vynásobí veřejný klíč uživatele do odpovídajících segmentů v pp. Tento krok je ekvivalentní začlenění veřejného klíče nového uživatele do sady veřejných parametrů systému pro následné použití.

V systémech šifrování založeného na registraci (RBE) uživatelé potřebují ukládat některé informace lokálně, což jim pomáhá dešifrovat zprávy. Tyto informace je třeba aktualizovat, když jsou noví uživatelé registrováni ve stejné skupině jako oni. Uživatelé mohou sami monitorovat blockchain, aby ručně aktualizovali tyto informace, nebo chytré smlouvy mohou poskytovat informace o nedávno registrovaných uživatelích a uživatelé mohou tyto aktualizace pravidelně získávat, aby jejich dešifrované informace byly aktuální.

V tomto systému musí odesílatel udělat pouze dvě věci:

Stáhnout společný referenční řetězec (CRS): Tento řetězec je třeba stáhnout pouze jednou a není třeba jej později aktualizovat.

Stáhnout veřejné parametry: Odesílatel si musí občas stáhnout nejnovější veřejné parametry. Pro odesílatele je důležité, aby tyto veřejné parametry obsahovaly veřejný klíč příjemce, aniž by bylo nutné pokaždé stahovat nejnovější verzi, pokud lze najít veřejný klíč příjemce.

Odesílatel pak pomocí staženého CRS, veřejných parametrů a ID příjemce zprávu zašifruje a odešle ji příjemci. To znamená, že odesílatel nemusí data často aktualizovat, pokud zajistí, že veřejný klíč příjemce je součástí veřejných parametrů.

Když uživatel obdrží zašifrovanou zprávu, nejprve zkontroluje své místně uložené pomocné informace, aby zjistil, zda existuje hodnota, která splňuje určitou podmínku (například hodnota, která projde určitou ověřovací kontrolou, pokud uživatel nemůže najít hodnotu, kterou). lokálně splňuje podmínku, hodnotu, což znamená, že potřebuje získat nejnovější aktualizované informace z chytré smlouvy. Jakmile uživatel najde příslušnou pomocnou informační hodnotu, může tuto hodnotu a svůj vlastní soukromý klíč použít k dešifrování přijatého šifrovaného textu, čímž se obnoví. původní zprávu.

Je zřejmé, že toto schéma je složitější než ostatní dva. Vyžaduje však méně úložiště v řetězci než adresář s veřejným klíčem a vyhýbá se předpokladu silné důvěry IBE.

Stručné parametry:

  • Velikost parametru uloženého v řetězci se mění sublineárně s počtem uživatelů, což je mnohem menší než velikost úložiště vyžadovaného adresářem veřejného klíče (který roste lineárně), ale stále není konstantní, a proto není tak dobrý jako IBE. (na základě identity) v tomto bodě šifrovací) systém.

Šifrování s určitou interaktivitou:

  • Při odesílání zprávy potřebuje odesílatel kopii veřejných parametrů obsahujících zamýšleného příjemce. To znamená, že odesílatel musí tyto parametry aktualizovat v určitém okamžiku poté, co se příjemce zaregistroval, ale nemusí je aktualizovat jednotlivě pro každého příjemce, protože jedna aktualizace může obsahovat klíče pro více příjemců. Celkově je odesílání zpráv interaktivnější než IBE, ale méně než použití adresáře veřejného klíče.

Dešifrování s určitou interaktivitou:

  • Podobně jako u šifrování potřebuje příjemce kopii pomocných informací, která odpovídá verzi veřejných parametrů použitých při šifrování. Když se nový uživatel zaregistruje v určité skupině, veřejné parametry a pomocné informace se aktualizují a hodnota, která dokáže dešifrovat šifrovaný text, odpovídá verzi veřejných parametrů použitých během šifrování. Uživatelé se mohou rozhodnout, že budou dostávat aktualizace pomocných informací pravidelně, nikoli okamžitě pokaždé, pokud dešifrování se nezdaří. Na rozdíl od veřejných aktualizací parametrů častější získávání aktualizací pomocných informací neodhalí soukromé informace.

Anonymní odesílatel:

  • Podobně jako v případě adresářů s veřejným klíčem může odesílatel nezávisle zašifrovat zprávu (pokud má nejnovější parametry), aniž by se musel ptát na konkrétní informace o příjemci. Když odesílatel potřebuje přečíst informace z řetězce, informace jsou pro zamýšleného příjemce irelevantní (pokud odesílatel nepožaduje pouze konkrétní skupinu skóre parametrů, která může uniknout některé informace).

Průhlednost:

  • Ačkoli je třeba systém zajišťovat prostřednictvím nastavení důvěryhodnosti (které může být distribuováno nebo externě spravováno) a vydávat opravený CRS (společný referenční řetězec), po zřízení již nespoléhá na žádnou důvěryhodnou třetí stranu nebo skupinu rozhodců. Přestože se spoléhá na koordinující třetí stranu (smart contract), systém je zcela transparentní a kdokoli může působit jako koordinátor nebo si ověřit, zda funguje poctivě, ověřováním přechodů stavů (i proto jej lze implementovat jako smart kontrakt ). Uživatelé si navíc mohou vyžádat stručné potvrzení o (ne)členství, aby si ověřili, zda jsou oni sami nebo jiní lidé registrováni v systému. To se liší od systémů IBE, kde je pro důvěryhodnou třetí stranu obtížné prokázat, že tajně neprozradila dešifrovací klíč (jako je uchovávání tajné kopie nebo její únik ostatním). Naproti tomu adresář veřejného klíče je zcela transparentní.

Omezený sběr ID:

  • Zde je popsána základní verze konstrukce RBE. Aby bylo možné transparentně určit skupinu, do které ID patří, musí mít ID společné a určité pořadí. Telefonní čísla lze třídit snadno, ale třídění libovolných řetězců může být velmi složité nebo dokonce nemožné, protože počet skupin může být velmi velký nebo nekonečný. Toho lze dosáhnout poskytnutím samostatné smlouvy na výpočet tohoto mapování nebo přijetím přístupu hašování kukačky navrženého v následných pracích ke zmírnění této složitosti.

Anonymní příjemce:

  • Tato metoda zajišťuje, že šifrovaný text neodhalí identitu příjemce.