Vícenásobný (kolektivní) podpis ( anglicky Aggregate signature ) - schéma (protokol) pro implementaci elektronického podpisu (EDS), který umožňuje více uživatelům podepsat jeden dokument.
Hromadný podpis poskytuje možnost současného podepisování elektronického dokumentu, protože je vytvořen jako výsledek jediné nedělitelné transformace a nelze jej rozdělit na jednotlivé podpisy; navíc jej nelze rozšířit, to znamená, že do něj lze vložit dodatečný podpis jedné nebo více osob [1] .
Pojem "kolektivní podpis" je v souladu s pojmem " skupinový podpis ", ale tyto pojmy se liší. Protokol digitálního podpisu skupiny řeší problém umožňující libovolnému uživateli z určité skupiny vytvořit podpis jménem celé skupiny. Skupinový protokol EDS také upravuje přítomnost konkrétních osob, které mohou určit seznam osob, které vytvořily podpis (tyto mají tedy hypotetickou možnost podepsat se za některého z členů skupiny). V případě hromadné práce s elektronickými dokumenty je nutné, aby je mohlo podepsat mnoho uživatelů [2] . Varianta schématu s generováním sady individuálních EDS uživatelů podepisujících jeden elektronický dokument má několik výrazných nevýhod - lineární nárůst velikosti kolektivního EDS (CEDS) s nárůstem počtu podepisujících, stejně jako nutnost dodatečných kontrol neporušenosti a úplnosti hromadného digitálního podpisu, aby se vyloučila možnost nahrazování číselného a jmenného složení účastníků, kteří dokument podepsali [1] .
Na základě veřejných klíčů účastníků je generován hromadný veřejný klíč, který umožňuje vyvinout a ověřit pravost hromadného elektronického digitálního podpisu. Sdílený veřejný klíč podléhá řadě omezení velikosti, integrity, nezávislosti na uživatelích, současného generování sdíleného veřejného klíče a kontinuity. Jinými slovy, nelze z CECP vypočítat platný CECP pro jakoukoli jinou množinu účastníků z množiny aktuálních, CECP není vázán na složení účastníků - libovolní uživatelé mohou vytvořit skupinu a vyvinout si vlastní CECP. Kolektivní veřejný klíč, funkce veřejných klíčů uživatelů, je základem, na kterém je postaven celý protokol kolektivního podpisu [3] .
QECP je vyvíjen v souladu s výše uvedenými požadavky pomocí algoritmů, jejichž stabilita je zajištěna následujícími výpočetně náročnými problémy: diskrétní logaritmus v multiplikativní skupině velkého prvočíselného řádu , extrakce kořenů velkého prvočísla modulo a velké prvočíslo, diskrétní logaritmus v skupina bodů eliptické křivky zvláštního tvaru [3] .
Podle normy GOST R 34.10−94 [4] se na použité prvočíslo p vztahují omezení. Kapacita prvočísla p v binární reprezentaci: bit nebo bit. Číslo musí obsahovat velkého prvočísla , například pro nebo pro . Pro generování a ověřování EDS se používá takové číslo, že kde je generátor podskupiny dostatečně velkého prvočísla .
Výpočtový algoritmus EDS 1. Vygeneruje se náhodné číslo . 2. Vypočítá se hodnota , což je první část podpisu. 3. Podle GOST R 34.11–94 se hashovací funkce vypočítává z podepisované zprávy. 4. Vypočítá se druhá část podpisu: , kde je tajný klíč. Pokud , postup generování podpisu se opakuje. Autentizační algoritmus EDS 1. Ověřuje se splnění podmínek a . Pokud podmínky nejsou splněny, pak podpis není platný. 2. Hodnota se vypočítá , kde je veřejný klíč uživatele, který vygeneroval podpis, který má být ověřen. 3. Hodnoty a jsou porovnány . Pokud , pak je podpis platný Implementace protokolu CECPKaždý uživatel vygeneruje veřejný klíč ve tvaru , kde je soukromý (tajný) klíč, = , , … , .
Společný veřejný klíč je produktem
Každý uživatel si vybere náhodný tajný klíč , číslo, které se použije pouze jednou.
Vypočteno
je k dispozici všem členům týmu, kteří vyvíjejí CECPPoté každý z členů týmu, který vyvíjí KECP, podle jím určené hodnoty a výsledku počítá
- část podpisu.Kolektivní podpis bude dvojice hodnot , kde je součet všech modulo [3] .
Ověření hromadného elektronického digitálního podpisuOvěření kolektivního podpisu se provádí podle vzorce
Pokud , pak je CEC množiny uživatelů pravý, protože mohl být vytvořen pouze za účasti každého uživatele z této skupiny, protože jeho vytvoření vyžaduje použití tajného klíče každého z nich. Všimněte si, že hodnoty se ověřují automaticky při ověřování kolektivního digitálního podpisu. Pokud se narušitel pokusí nahradit kteroukoli z těchto hodnot nebo je nahradit dříve používanými hodnotami, pak bude při ověřování digitálního podpisu okamžitě zjištěna skutečnost narušení protokolu , tj . Je zřejmé, že velikost QECP nezávisí na [3] .
Důkaz správnosti navrženého algoritmu CECPZískanou signaturu dosaďte do rovnice — dvojice (R,S), kde R je součin R i modulo q, S je součet S i modulo q : rovnice , regulované normou EDS GOST R 34.10-94.
Možnost padělání CECPJe zřejmé, že pro narušitele je složitost padělání CECP určena složitostí padělání individuálního podpisu jednotlivého člena skupiny. Příležitosti se otevírají uživatelům, kteří spojí své úsilí a vytvoří CECP související s kolektivem, který kromě nich zahrnuje jednoho nebo více dalších uživatelů, kteří o tom nejsou informováni (důkaz pro oba případy je podobný). Nechť uživatelé m-1 chtějí vytvořit QEDP ověřitelný sdíleným veřejným klíčem , kde uživatelé spojí své úsilí k vytvoření dvojice čísel tak, aby . To znamená, že mohou zfalšovat podpis veřejného klíče , to znamená vypočítat hodnoty, které splňují rovnici . To implikuje možnost padělání digitálního podpisu v základním schématu EDS, protože má náhodnou hodnotu [3] .
Útok na výpočet tajného klíče dalšího spoluvlastníka CECPNechť - je digitální podpis generovaný -tým uživatelem k dokumentu odpovídajícímu hashovací funkci (útok provádějí uživatelé). Pak platí následující: Útočníci generují náhodné hodnoty a počítají . pro . Poté se vypočítají parametry a splňující rovnice , kde . Zavedením označení . Máme , kde a . To znamená, že útočníci získali správnou hodnotu kolektivního podpisu , kterého se účastní oni a další uživatel, který má veřejný klíč . Podle předpokladu mohou útočníci z obdrženého kolektivního podpisu vypočítat tajný klíč . Je snadné získat z výrazu pro a vzorce : . Útočníci vypočítali tajný klíč daného uživatele pomocí jeho individuálního EDS, vygenerovaného v rámci základního algoritmu EDS. To dokazuje návrh, že navrhovaný protokol CECP nesnižuje sílu základního algoritmu EDS. [3]
Podle normy GOST R 34.10−2001 [5] platí omezení na použité prvočíslo , prvočíslo a bod . Prvočíslo je modul eliptické křivky (EC), který je dán v kartézském souřadnicovém systému rovnicí s koeficienty a : ∈ ( je Galoisovo pole řádu ). Prvočíslo je řád cyklické podskupiny bodů na eliptické křivce. Bod - bod na eliptické křivce se souřadnicemi , který se liší od počátku, ale pro který se bod shoduje s počátkem. Tajný klíč je poměrně velké celé číslo . Veřejný klíč je bod .
Tvorba podpisu 1. Vygeneruje se náhodné celé číslo . 2. Vypočítejte souřadnice bodu EC a určete hodnotu , kde je souřadnice bodu . 3. Hodnota se vypočítá , kde . Podpis je dvojice čísel . [5] Ověření podpisuOvěření podpisu spočívá ve výpočtu souřadnic ES bodu:
a také při určování hodnoty a kontrole rovnosti . [5]
Implementace protokolu CECPKaždý člen skupiny vygeneruje veřejný klíč formuláře
, kde je soukromý (tajný) klíč, .Společný veřejný klíč je součet
Každý člen skupiny si vygeneruje číslo – jednorázový náhodný tajný klíč. Pomocí tohoto jednorázového náhodného klíče se vypočítají souřadnice bodu . Výsledek výpočtu je zaslán všem členům skupiny ke společnému použití. Součet je vypočítán
Hodnota se počítá z přijaté částky . Každý člen skupiny vypočítá svou část podpisu:
[3] Kontrola CECPVypočítat
Výsledek se vypočítá
Jestliže , pak je QEC množiny m uživatelů pravé, protože by mohlo být vytvořeno pouze za účasti každého uživatele z této skupiny, protože vytvoření QEC vyžaduje tajný klíč každého z účastníků [3] .
Schéma dvojitého digitálního podpisu rozšiřuje konvenční schéma RSA . Ve schématu dvojitého digitálního podpisu se negeneruje pár klíčů (veřejný / soukromý klíč), ale trojitý (dva soukromé a jeden veřejný). Analogicky k obvyklému schématu RSA si účastníci vyberou výpočetní jednotku - součin dvou jednoduchých dlouhých čísel. Jsou vybrány 2 náhodné soukromé klíče a v rozsahu od 1 do , které budou shodné s , kde je funkce Euler . Veřejný klíč je generován podle vzorce . Hodnota bude veřejný klíč. Pro podepsání hodnoty první účastník vypočítá . Výsledek výpočtu je předán na vstup druhého člena skupiny. Druhý účastník má možnost vidět, co bude podepisovat. K tomu získá hodnotu z hodnoty . Poté, co bude druhý účastník připraven podepsat hodnotu , bude muset vypočítat . Ověření podpisu se provádí pomocí . [6]
Generují se náhodné soukromé klíče . Veřejný klíč bude vypočítán pomocí vzorce . Každý -tý účastník podepíše zprávu M podle vzorce . Poté se vypočítá hodnota . Ověření podpisu se provádí podle vzorce . [6]