Кільцевий підпис (англ. ring signature) — один з механізмів реалізації електронного підпису, при якому відомо, що повідомлення підписав один з членів списку потенційних підписантів, але не розкриває, хто саме. Підписант самостійно формує список з довільного числа осіб (включаючи і себе). Для накладання підпису підписувачу не потрібен дозвіл, сприяння або допомога з боку включених у список осіб, використовуються лише відкриті ключі всіх членів списку і власний закритий ключ.
Математичний алгоритм кільцевого підпису був розроблений Рональдом Рівестом, Аді Шаміром і Яелью Тауманом (англ. Yael Tauman) і представлений в 2001 році на міжнародній конференції Asiacrypt. Автори намагалися в назві підкреслити відсутність центральної або координуючої структури при формуванні такого підпису: «кільце являє собою геометричну фігуру з однорідною периферією і без центру».
Історія
Ідея групового підпису під проханнями чи скаргами, що підтверджує, що всі підписанти підтримують звернення, але не дозволяє виявити її автора або ініціатора, бере початок в далекому минулому. Так, англійський термін Round-robin відомий з XVII століття і означає петицію, яку підписували по колу без дотримання ієрархії, щоб уникнути покарання для тих хто підписався першим — своєрідний варіант кругової поруки. В 1898 році після облоги Сантьяго на Кубі під час Іспано-американської війни високопоставлені офіцери 5-го армійського корпусу підписали по колу лист у штаб-квартиру армії у Вашингтоні з вимогою повернути корпус в Сполучені Штати для лікування і відпочинку. Лист потрапив у пресу і отримав широку популярність, а також викликав резонанс в уряді президента Мак-Кінлі.
Множинний підпис став електронним аналогом паперового підпису по колу. У 1991 році Девід Чаум (англ. David Chaum) і Євген Ван Хейст (англ. Eugene Van Heyst) запропонували схему групового підпису, де підписантом є хтось із членів групи, яку сформував адміністратор. Перевіряючий може переконатися, що підписант член групи, але не може дізнатися, хто саме. Адміністратор може встановити підписанта.
Кільцеві підписи по суті схожі з груповими, але, на відміну від останніх, немає можливості встановлення особи підписувача, немає адміністратора або координатора. Всі члени списку, за винятком самого підписанта, можуть не знати змісту повідомлення.
Загальний опис механізму створення і перевірки кільцевого підпису
Передбачається, що існує певний перелік, де вказаний однозначний зв'язок людини з його відкритим (публічним) ключем (наприклад, сервер криптографічних ключів). Причина появи відкритого ключа в цьому переліку не має значення. Наприклад, людина могла створити ключі RSA тільки для покупок через Інтернет, і може зовсім не знати, що його відкриті ключі використовуються кимось для створення кільцевого підпису на повідомленні, яке він ніколи не бачив і не хотів підписувати. Загальний алгоритм кільцевого підпису припускає одночасне використання ключів, сформованих різними системами підпису з відкритим ключем, в тому числі мають різні розміри ключів і підписи.
При створенні кільцевого підпису для повідомлення m підписувач на власний розсуд формує список відкритих ключів (P1, P2, …, Pn), який включає і свій під номером i (його порядковий номер у списку не має значення). Все це разом з секретним ключем підписувача Si як параметри подається на вхід функції накладання підпису (m, Si, P1, …, Pn), отримуючи на виході результат σ. Хоча кожному відкритому ключу зі списку відповідає свій унікальний закритий ключ і використовується тільки один з них (що належить підписувачу), але по підпису який вийшов неможливо впізнати, який саме з закритих ключів використовувався при її створенні. Навіть маючи необмежену кількість кільцевих підписів, виконаних одним і тим же підписантом, немає можливості його ідентифікувати або гарантовано встановити, що деякі підписи були накладені з використанням одного закритого ключа.
Справжність кільцевого підпису можна перевірити, використовуючи тільки σ, m і відкриті ключі P1, …, Pn..
Варіанти реалізації
У своїй статті Рівест, Шамір і Тауман описали кільцевий підпис як спосіб організувати витік секретної інформації без втрати її достовірності. Наприклад, кільцевий підпис «високопоставленого чиновника Білого дому» не розкриє його особистість, але гарантує, що повідомлення підписав хтось із зазначеного списку офіційних осіб, підтвердивши таким чином рівень компетентності. При цьому список осіб для кільцевого підпису можна легко скласти, узявши публічні ключі з відкритих джерел.
Інше застосування, також описане авторами ідеї, призначене для створення неоднозначних (спірних) підписів. У найпростішому випадку для такого використання кільцевого підпису формується на основі ключів відправника і одержувача повідомлення. Тоді підпис значущий для одержувача, він упевнений, що повідомлення створив відправник. Але для сторонньої людини такий підпис втрачає переконливість і однозначність — не буде впевненості, хто саме сформував і підписав повідомлення, адже це міг бути і сам одержувач. Такий підпис, наприклад, не може використовуватися у суді для ідентифікації відправника.
Пізніше з'явилися роботи, в яких були запропоновані нові сфери застосування кільцевих підписів і альтернативні алгоритми їх формування.
Порогові кільцеві підписи
На відміну від стандартного порогового підпису «t-out-of-n», коли t з n користувачів повинні співпрацювати для дешифрування повідомлення, цей варіант кільцевого підпису вимагає, щоб t користувачів співпрацювали в процесі підписання. Для цього t учасників (i1, i2, …, it) повинні обчислити сигнатуру σ для повідомлення m, подавши t закритих і n відкритих ключів на вхід (m, Si1, Si2, …, Sit, P1, …, Pn).
Пов'язані кільцеві підписи
Властивість зв'язності дозволяє визначити, чи були створені якісь два кільцевих підписи однією і тою ж людиною (використовувався один і той же закритий ключ), але без вказівки, хто саме. Одним з можливих застосувань може бути автономна система електронних грошей.
Простежуваний кільцевий підпис
На додаток до компонування підпису, при повторному використанні може розкриватися відкритий ключ підписувача. Такий протокол дозволяє реалізувати системи таємного електронного голосування, які дозволяють поставити анонімно тільки один підпис, але розкривають учасника, який проголосував двічі..
Криптовалюти
Система CryptoNote допускає кільцеві підписи. Вперше це було використано в липні 2012 року в криптовалюті Bytecoin (не плутати з Bitcoin).
Криптовалюта використовує простежуваний кільцевий підпис для анонімності відправника транзакції. Однак первісна реалізація була помилковою, що призвело до часткової де-анонімізації ShadowCash з першої реалізації до лютого 2016 року.
Ефективність
Більшість запропонованих алгоритмів мають асимптотичний розмір результату , тобто розмір результуючого підпису прямо пропорційний кількості використаних відкритих ключів. Кожен використаний відкритий ключ при накладенні або перевірці кільцевого підпису вимагає фіксованого обсягу обчислень, що значно краще аналогів, наявних на момент створення протоколу. Наприклад, технологія CryptoNote реалізує кільцеві підписи в платежах p2p, щоб забезпечити анонімність відправника.
Останнім часом з'явилися більш ефективні алгоритми. Існують схеми з сублінійним розміром підпису, а також з постійним розміром..
Алгоритм
Суть алгоритму кільцевого підпису, запропонованого Рівестом, Шаміром і Тауман, полягає в наступному (див. малюнок схеми).
Кільцевий підпис для деякого повідомлення буде сформований на основі списку з відкритих ключів (позначені на схемі як ), серед яких ключ підписувача має порядковий номер . Відкриті ключі дозволяють зашифрувати довільну інформацію (інформаційний блок , зашифрований ключем , позначений на схемі як ). «Інформаційні блоки» тут і далі не є частиною або результатом обробки підписуваного повідомлення і не мають самостійного значення, це згенеровані випадкові дані, що стають компонентами підпису.
Є комбінаційна функція від довільної кількості аргументів, за значенням якої і значень усіх аргументів, крім одного, можна однозначно відновити один відсутній аргумент. Прикладом такої функції є послідовне підсумовування. Якщо відома підсумкова сума і всі складові, крім одної, то відсутній доданок можна обчислити.
Як комбінаційної функції автори алгоритму запропонували наступну послідовність дій: береться деякий стартове значення (на схемі позначено формується випадково), над яким і першим аргументом виконується побітове виключне або (позначено на схемі символом ). Потім до результату застосовується певне оборотне перетворення (позначена на схемі як ), взаємно однозначно пов'язане з хеш-сумою підписаного повідомлення. Отриманий результат бере участь в операції побітового виключного «або» з другим аргументом, знову застосовується перетворення , і так далі. В якості аргументів використовуються зашифровані відкритими ключами відповідні інформаційні блоки .
Вибране випадкове значення є одночасно і стартовим, і цільовим (кінцевим) значенням комбінаційної функції: результат всіх перетворень має «пройти по кільцю» і стати рівним початковому значенню. Інформаційні блоки для кожного з ключів, крім блоку , що відповідає самому ключу підписувача, задаються як випадкові значення. Підписує шифрує інформаційні блоки відповідними відкритими ключами. Тепер у підписує є цільове значення комбінаційної функції і всі аргументи, крім одного — того, що відповідає його власним ключем. Завдяки властивостям комбінаційної функції, користувач може дізнатися відсутній аргумент і, використавши власний закритий ключ (), «розшифрувати» цей аргумент (), отримавши відсутній інформаційний блок
Компоненти готового кільцевого підпису:
- повідомлення яке підписується ;
- список використаних відкритих ключів;
- значення всіх інформаційних блоків ;
- значення комбінаційної функції .
Для перевірки підпису потрібно:
- за допомогою відкритих ключів зашифрувати інформаційні блоки;
- за допомогою хеш-суми підписуваного повідомлення обчислити значення комбінаційної функції, використавши як аргументи (задає стартове значення) і зашифровані інформаційні блоки (результати попереднього кроку);
- переконатися, що отримане значення збігається з .
Реалізація
Нижче наведена реалізація описаного алгоритму на мові Python з використанням ключів RSA.
import os, hashlib, random, Crypto.PublicKey.RSA class ring: def __init__(self, k, L=1024): self.k = k self.l = L self.n = len(k) self.q = 1 << (L - 1) def sign(self, m, z): self.permut(m) s = [None] * self.n u = random.randint(0, self.q) c = v = self.E(u) for i in (range(z+1, self.n) + range(z)): s[i] = random.randint(0, self.q) e = self.g(s[i], self.k[i].e, self.k[i].n) v = self.E(v^e) if (i+1) % self.n == 0: c = v s[z] = self.g(v^u, self.k[z].d, self.k[z].n) return [c] + s def verify(self, m, X): self.permut(m) def _f(i): return self.g(X[i+1], self.k[i].e, self.k[i].n) y = map(_f, range(len(X)-1)) def _g(x, i): return self.E(x^y[i]) r = reduce(_g, range(self.n), X[0]) return r == X[0] def permut(self, m): self.p = int(hashlib.sha1('%s' % m).hexdigest(),16) def E(self, x): msg = '%s%s' % (x, self.p) return int(hashlib.sha1(msg).hexdigest(), 16) def g(self, x, e, n): q, r = divmod(x, n) if ((q + 1) * n) <= ((1 << self.l) - 1): rslt = q * n + pow(r, e, n) else: rslt = x return rslt
Підпис і перевірка 2 повідомлень при кільці з 4 користувачів:
size = 4 msg1, msg2 = 'hello', 'world!' def _rn(_): return Crypto.PublicKey.RSA.generate(1024, os.urandom) key = map(_rn, range(size)) r = ring(key) for i in range(size): s1 = r.sign(msg1, i) s2 = r.sign(msg2, i) assert r.verify(msg1, s1) and r.verify(msg2, s2) and not r.verify(msg1, s2)
Примітки
- Рон Рівест, Аді Шамір, . How to leak a secret. — Volume 2248 of Lecture Notes in Computer Science. — Asiacrypt, 2001. — С. 552—565.
- . Фоносемантический анализ речи. — Изд-во Санкт-Петербургского университета, 2001. — 290 с.
- Donald H. Dyal, Brian B. Carpenter, and Mark A. Thomas, eds. Historical Dictionary of the Spanish American War. — Westport, Conn. — Greenwood Press, 1996.
- B. Schneier. Прикладная криптография : [ 18 грудня 2018] : ( )[] // John Wiley & Sons. — 1996. — С. 98.
- Debnath, Ashmita; Singaravelu, Pradheepkumar; Verma, Shekhar (19 грудня 2012), Efficient spatial privacy preserving scheme for sensor network, Central European Journal of Engineering, 3 (1): 1—10, doi:10.2478/s13531-012-0048-7
- Lingling Wang, Guoyin Zhang, Chunguang Ma. A survey of ring signature // Frontiers of Electrical and Electronic Engineering in China. — 2008. — Vol. 3, no. 1. — P. 10–19. — DOI:10.1007/s11460-008-0012-8.
- E. Bresson; J. Stern; M. Szydlo (2002), Threshold ring signatures and applications to ad-hocgroups, Advances in Cryptology: Crypto 2002: 465—480, doi:10.1007/3-540-45708-9_30
- Liu, Joseph K.; Wong, Duncan S. (2005), Linkable ring signatures: Security models and new schemes, ICCSA, 2: 614—623, doi:10.1007/11424826_65
- Eiichiro Fujisaki, Koutarou Suzuki. Traceable Ring Signature. — Public Key Cryptography, 2007. — P. 181–200.
- . CryptoNoteTech. Архів оригіналу за 24 листопада 2017. Процитовано 24 листопада 2017.
- (англ.). 2015. Архів оригіналу за 13 липня 2017. Процитовано 29 листопада 2017.
- . 23 червня 2014. Архів оригіналу за 1 грудня 2017. Процитовано 29 листопада 2017.
- Rynomster, Tecnovert. HShadowCash: Zeroknowledge Anonymous Distributed ECash via Traceable Ring Signatures. — www.shadow.cash, 2015.
- Crypto Fun (13.02.2016). (англ.). Архів оригіналу за 27 вересня 2016. Процитовано 29 листопада 2017.
{{}}
: Недійсний|deadlink=404
() - Fujisaki, Eiichiro (2011), Sub-linear size traceable ring signatures without random oracles, CTRSA: 393—415
- Au, Man Ho; Liu, Joseph K.; Susilo, Willy; Yuen, Tsz Hon (2006), Constant-Size ID-Based Linkable and Revocable-iff-Linked Ring Signature, Lecture Notes in Computer Science, 4329: 364—378, doi:10.1007/11941378_26
Література
- Г. О. Чикишев. Одноразовая кольцевая подпись и её применение в электронной наличности. — Приложение. — Журнал «Прикладная дискретная математика» № 5, 2012. — С. 56–58.
- С. В. Запечников и другие Кольцевые подписи и их приложения [ 13 серпня 2017 у Wayback Machine.] в Энциклопедии теоретической и прикладной криптографии, МИФИ
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Kilcevij pidpis angl ring signature odin z mehanizmiv realizaciyi elektronnogo pidpisu pri yakomu vidomo sho povidomlennya pidpisav odin z chleniv spisku potencijnih pidpisantiv ale ne rozkrivaye hto same Pidpisant samostijno formuye spisok z dovilnogo chisla osib vklyuchayuchi i sebe Dlya nakladannya pidpisu pidpisuvachu ne potriben dozvil spriyannya abo dopomoga z boku vklyuchenih u spisok osib vikoristovuyutsya lishe vidkriti klyuchi vsih chleniv spisku i vlasnij zakritij klyuch Matematichnij algoritm kilcevogo pidpisu buv rozroblenij Ronaldom Rivestom Adi Shamirom i Yaelyu Taumanom angl Yael Tauman i predstavlenij v 2001 roci na mizhnarodnij konferenciyi Asiacrypt Avtori namagalisya v nazvi pidkresliti vidsutnist centralnoyi abo koordinuyuchoyi strukturi pri formuvanni takogo pidpisu kilce yavlyaye soboyu geometrichnu figuru z odnoridnoyu periferiyeyu i bez centru Istoriya Prohannya pro svobodu 1623 pidpisanu po kolu golovami 56 simej Valloniyi Ideya grupovogo pidpisu pid prohannyami chi skargami sho pidtverdzhuye sho vsi pidpisanti pidtrimuyut zvernennya ale ne dozvolyaye viyaviti yiyi avtora abo iniciatora bere pochatok v dalekomu minulomu Tak anglijskij termin Round robin vidomij z XVII stolittya i oznachaye peticiyu yaku pidpisuvali po kolu bez dotrimannya iyerarhiyi shob uniknuti pokarannya dlya tih hto pidpisavsya pershim svoyeridnij variant krugovoyi poruki V 1898 roci pislya oblogi Santyago na Kubi pid chas Ispano amerikanskoyi vijni visokopostavleni oficeri 5 go armijskogo korpusu pidpisali po kolu list u shtab kvartiru armiyi u Vashingtoni z vimogoyu povernuti korpus v Spolucheni Shtati dlya likuvannya i vidpochinku List potrapiv u presu i otrimav shiroku populyarnist a takozh viklikav rezonans v uryadi prezidenta Mak Kinli Mnozhinnij pidpis stav elektronnim analogom paperovogo pidpisu po kolu U 1991 roci Devid Chaum angl David Chaum i Yevgen Van Hejst angl Eugene Van Heyst zaproponuvali shemu grupovogo pidpisu de pidpisantom ye htos iz chleniv grupi yaku sformuvav administrator Pereviryayuchij mozhe perekonatisya sho pidpisant chlen grupi ale ne mozhe diznatisya hto same Administrator mozhe vstanoviti pidpisanta Kilcevi pidpisi po suti shozhi z grupovimi ale na vidminu vid ostannih nemaye mozhlivosti vstanovlennya osobi pidpisuvacha nemaye administratora abo koordinatora Vsi chleni spisku za vinyatkom samogo pidpisanta mozhut ne znati zmistu povidomlennya Zagalnij opis mehanizmu stvorennya i perevirki kilcevogo pidpisuPeredbachayetsya sho isnuye pevnij perelik de vkazanij odnoznachnij zv yazok lyudini z jogo vidkritim publichnim klyuchem napriklad server kriptografichnih klyuchiv Prichina poyavi vidkritogo klyucha v comu pereliku ne maye znachennya Napriklad lyudina mogla stvoriti klyuchi RSA tilki dlya pokupok cherez Internet i mozhe zovsim ne znati sho jogo vidkriti klyuchi vikoristovuyutsya kimos dlya stvorennya kilcevogo pidpisu na povidomlenni yake vin nikoli ne bachiv i ne hotiv pidpisuvati Zagalnij algoritm kilcevogo pidpisu pripuskaye odnochasne vikoristannya klyuchiv sformovanih riznimi sistemami pidpisu z vidkritim klyuchem v tomu chisli mayut rizni rozmiri klyuchiv i pidpisi Pri stvorenni kilcevogo pidpisu dlya povidomlennya m pidpisuvach na vlasnij rozsud formuye spisok vidkritih klyuchiv P1 P2 Pn yakij vklyuchaye i svij pid nomerom i jogo poryadkovij nomer u spisku ne maye znachennya Vse ce razom z sekretnim klyuchem pidpisuvacha Si yak parametri podayetsya na vhid funkciyi nakladannya pidpisu m Si P1 Pn otrimuyuchi na vihodi rezultat s Hocha kozhnomu vidkritomu klyuchu zi spisku vidpovidaye svij unikalnij zakritij klyuch i vikoristovuyetsya tilki odin z nih sho nalezhit pidpisuvachu ale po pidpisu yakij vijshov nemozhlivo vpiznati yakij same z zakritih klyuchiv vikoristovuvavsya pri yiyi stvorenni Navit mayuchi neobmezhenu kilkist kilcevih pidpisiv vikonanih odnim i tim zhe pidpisantom nemaye mozhlivosti jogo identifikuvati abo garantovano vstanoviti sho deyaki pidpisi buli nakladeni z vikoristannyam odnogo zakritogo klyucha Spravzhnist kilcevogo pidpisu mozhna pereviriti vikoristovuyuchi tilki s m i vidkriti klyuchi P1 Pn Varianti realizaciyiU svoyij statti Rivest Shamir i Tauman opisali kilcevij pidpis yak sposib organizuvati vitik sekretnoyi informaciyi bez vtrati yiyi dostovirnosti Napriklad kilcevij pidpis visokopostavlenogo chinovnika Bilogo domu ne rozkriye jogo osobistist ale garantuye sho povidomlennya pidpisav htos iz zaznachenogo spisku oficijnih osib pidtverdivshi takim chinom riven kompetentnosti Pri comu spisok osib dlya kilcevogo pidpisu mozhna legko sklasti uzyavshi publichni klyuchi z vidkritih dzherel Inshe zastosuvannya takozh opisane avtorami ideyi priznachene dlya stvorennya neodnoznachnih spirnih pidpisiv U najprostishomu vipadku dlya takogo vikoristannya kilcevogo pidpisu formuyetsya na osnovi klyuchiv vidpravnika i oderzhuvacha povidomlennya Todi pidpis znachushij dlya oderzhuvacha vin upevnenij sho povidomlennya stvoriv vidpravnik Ale dlya storonnoyi lyudini takij pidpis vtrachaye perekonlivist i odnoznachnist ne bude vpevnenosti hto same sformuvav i pidpisav povidomlennya adzhe ce mig buti i sam oderzhuvach Takij pidpis napriklad ne mozhe vikoristovuvatisya u sudi dlya identifikaciyi vidpravnika Piznishe z yavilisya roboti v yakih buli zaproponovani novi sferi zastosuvannya kilcevih pidpisiv i alternativni algoritmi yih formuvannya Porogovi kilcevi pidpisi Na vidminu vid standartnogo porogovogo pidpisu t out of n koli t z n koristuvachiv povinni spivpracyuvati dlya deshifruvannya povidomlennya cej variant kilcevogo pidpisu vimagaye shob t koristuvachiv spivpracyuvali v procesi pidpisannya Dlya cogo t uchasnikiv i1 i2 it povinni obchisliti signaturu s dlya povidomlennya m podavshi t zakritih i n vidkritih klyuchiv na vhid m Si1 Si2 Sit P1 Pn Pov yazani kilcevi pidpisi Vlastivist zv yaznosti dozvolyaye viznachiti chi buli stvoreni yakis dva kilcevih pidpisi odniyeyu i toyu zh lyudinoyu vikoristovuvavsya odin i toj zhe zakritij klyuch ale bez vkazivki hto same Odnim z mozhlivih zastosuvan mozhe buti avtonomna sistema elektronnih groshej Prostezhuvanij kilcevij pidpis Na dodatok do komponuvannya pidpisu pri povtornomu vikoristanni mozhe rozkrivatisya vidkritij klyuch pidpisuvacha Takij protokol dozvolyaye realizuvati sistemi tayemnogo elektronnogo golosuvannya yaki dozvolyayut postaviti anonimno tilki odin pidpis ale rozkrivayut uchasnika yakij progolosuvav dvichi Kriptovalyuti Sistema CryptoNote dopuskaye kilcevi pidpisi Vpershe ce bulo vikoristano v lipni 2012 roku v kriptovalyuti Bytecoin ne plutati z Bitcoin Kriptovalyuta vikoristovuye prostezhuvanij kilcevij pidpis dlya anonimnosti vidpravnika tranzakciyi Odnak pervisna realizaciya bula pomilkovoyu sho prizvelo do chastkovoyi de anonimizaciyi ShadowCash z pershoyi realizaciyi do lyutogo 2016 roku EfektivnistBilshist zaproponovanih algoritmiv mayut asimptotichnij rozmir rezultatu O n displaystyle O n tobto rozmir rezultuyuchogo pidpisu pryamo proporcijnij kilkosti vikoristanih vidkritih klyuchiv Kozhen vikoristanij vidkritij klyuch pri nakladenni abo perevirci kilcevogo pidpisu vimagaye fiksovanogo obsyagu obchislen sho znachno krashe analogiv nayavnih na moment stvorennya protokolu Napriklad tehnologiya CryptoNote realizuye kilcevi pidpisi v platezhah p2p shob zabezpechiti anonimnist vidpravnika Ostannim chasom z yavilisya bilsh efektivni algoritmi Isnuyut shemi z sublinijnim rozmirom pidpisu a takozh z postijnim rozmirom AlgoritmShema kilcevogo pidpisu Sut algoritmu kilcevogo pidpisu zaproponovanogo Rivestom Shamirom i Tauman polyagaye v nastupnomu div malyunok shemi Kilcevij pidpis dlya deyakogo povidomlennya bude sformovanij na osnovi spisku z r displaystyle r vidkritih klyuchiv poznacheni na shemi yak pk1 pkr displaystyle pk 1 ldots pk r sered yakih klyuch pidpisuvacha maye poryadkovij nomer s displaystyle s Vidkriti klyuchi dozvolyayut zashifruvati dovilnu informaciyu informacijnij blok x1 displaystyle x 1 zashifrovanij klyuchem pk1 displaystyle pk 1 poznachenij na shemi yak Encpk1 x1 displaystyle mathrm Enc pk 1 x 1 Informacijni bloki tut i dali ne ye chastinoyu abo rezultatom obrobki pidpisuvanogo povidomlennya i ne mayut samostijnogo znachennya ce zgenerovani vipadkovi dani sho stayut komponentami pidpisu Ye kombinacijna funkciya vid dovilnoyi kilkosti argumentiv za znachennyam yakoyi i znachen usih argumentiv krim odnogo mozhna odnoznachno vidnoviti odin vidsutnij argument Prikladom takoyi funkciyi ye poslidovne pidsumovuvannya Yaksho vidoma pidsumkova suma i vsi skladovi krim odnoyi to vidsutnij dodanok mozhna obchisliti Yak kombinacijnoyi funkciyi avtori algoritmu zaproponuvali nastupnu poslidovnist dij beretsya deyakij startove znachennya na shemi poznacheno v displaystyle v formuyetsya vipadkovo nad yakim i pershim argumentom vikonuyetsya pobitove viklyuchne abo poznacheno na shemi simvolom displaystyle oplus Potim do rezultatu zastosovuyetsya pevne oborotne peretvorennya poznachena na shemi yak Es displaystyle E sigma vzayemno odnoznachno pov yazane z hesh sumoyu pidpisanogo povidomlennya Otrimanij rezultat bere uchast v operaciyi pobitovogo viklyuchnogo abo z drugim argumentom znovu zastosovuyetsya peretvorennya Es displaystyle E sigma i tak dali V yakosti argumentiv vikoristovuyutsya zashifrovani vidkritimi klyuchami vidpovidni informacijni bloki x1 xr displaystyle x 1 ldots x r Vibrane vipadkove znachennya v displaystyle v ye odnochasno i startovim i cilovim kincevim znachennyam kombinacijnoyi funkciyi rezultat vsih peretvoren maye projti po kilcyu i stati rivnim pochatkovomu znachennyu Informacijni bloki x1 xr displaystyle x 1 ldots x r dlya kozhnogo z klyuchiv krim bloku xs displaystyle x s sho vidpovidaye samomu klyuchu pidpisuvacha zadayutsya yak vipadkovi znachennya Pidpisuye shifruye informacijni bloki vidpovidnimi vidkritimi klyuchami Teper u pidpisuye ye cilove znachennya kombinacijnoyi funkciyi i vsi argumenti krim odnogo togo sho vidpovidaye jogo vlasnim klyuchem Zavdyaki vlastivostyam kombinacijnoyi funkciyi koristuvach mozhe diznatisya vidsutnij argument i vikoristavshi vlasnij zakritij klyuch sks displaystyle sk s rozshifruvati cej argument Decsks displaystyle mathrm Dec sk s otrimavshi vidsutnij informacijnij blok xs displaystyle x s Komponenti gotovogo kilcevogo pidpisu povidomlennya yake pidpisuyetsya spisok vikoristanih vidkritih klyuchiv znachennya vsih informacijnih blokiv x1 xr displaystyle x 1 ldots x r znachennya kombinacijnoyi funkciyi v displaystyle v Dlya perevirki pidpisu potribno za dopomogoyu vidkritih klyuchiv zashifruvati informacijni bloki za dopomogoyu hesh sumi pidpisuvanogo povidomlennya obchisliti znachennya kombinacijnoyi funkciyi vikoristavshi yak argumenti v displaystyle v zadaye startove znachennya i zashifrovani informacijni bloki rezultati poperednogo kroku perekonatisya sho otrimane znachennya zbigayetsya z v displaystyle v Realizaciya Nizhche navedena realizaciya opisanogo algoritmu na movi Python z vikoristannyam klyuchiv RSA import os hashlib random Crypto PublicKey RSA class ring def init self k L 1024 self k k self l L self n len k self q 1 lt lt L 1 def sign self m z self permut m s None self n u random randint 0 self q c v self E u for i in range z 1 self n range z s i random randint 0 self q e self g s i self k i e self k i n v self E v e if i 1 self n 0 c v s z self g v u self k z d self k z n return c s def verify self m X self permut m def f i return self g X i 1 self k i e self k i n y map f range len X 1 def g x i return self E x y i r reduce g range self n X 0 return r X 0 def permut self m self p int hashlib sha1 s m hexdigest 16 def E self x msg s s x self p return int hashlib sha1 msg hexdigest 16 def g self x e n q r divmod x n if q 1 n lt 1 lt lt self l 1 rslt q n pow r e n else rslt x return rslt Pidpis i perevirka 2 povidomlen pri kilci z 4 koristuvachiv size 4 msg1 msg2 hello world def rn return Crypto PublicKey RSA generate 1024 os urandom key map rn range size r ring key for i in range size s1 r sign msg1 i s2 r sign msg2 i assert r verify msg1 s1 and r verify msg2 s2 and not r verify msg1 s2 PrimitkiRon Rivest Adi Shamir How to leak a secret Volume 2248 of Lecture Notes in Computer Science Asiacrypt 2001 S 552 565 Fonosemanticheskij analiz rechi Izd vo Sankt Peterburgskogo universiteta 2001 290 s Donald H Dyal Brian B Carpenter and Mark A Thomas eds Historical Dictionary of the Spanish American War Westport Conn Greenwood Press 1996 B Schneier Prikladnaya kriptografiya 18 grudnya 2018 John Wiley amp Sons 1996 S 98 Debnath Ashmita Singaravelu Pradheepkumar Verma Shekhar 19 grudnya 2012 Efficient spatial privacy preserving scheme for sensor network Central European Journal of Engineering 3 1 1 10 doi 10 2478 s13531 012 0048 7 Lingling Wang Guoyin Zhang Chunguang Ma A survey of ring signature Frontiers of Electrical and Electronic Engineering in China 2008 Vol 3 no 1 P 10 19 DOI 10 1007 s11460 008 0012 8 E Bresson J Stern M Szydlo 2002 Threshold ring signatures and applications to ad hocgroups Advances in Cryptology Crypto 2002 465 480 doi 10 1007 3 540 45708 9 30 Liu Joseph K Wong Duncan S 2005 Linkable ring signatures Security models and new schemes ICCSA 2 614 623 doi 10 1007 11424826 65 Eiichiro Fujisaki Koutarou Suzuki Traceable Ring Signature Public Key Cryptography 2007 P 181 200 CryptoNoteTech Arhiv originalu za 24 listopada 2017 Procitovano 24 listopada 2017 angl 2015 Arhiv originalu za 13 lipnya 2017 Procitovano 29 listopada 2017 23 chervnya 2014 Arhiv originalu za 1 grudnya 2017 Procitovano 29 listopada 2017 Rynomster Tecnovert HShadowCash Zero knowledge Anonymous Distributed E Cash via Traceable Ring Signatures www shadow cash 2015 Crypto Fun 13 02 2016 angl Arhiv originalu za 27 veresnya 2016 Procitovano 29 listopada 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Nedijsnij deadlink 404 dovidka Fujisaki Eiichiro 2011 Sub linear size traceable ring signatures without random oracles CTRSA 393 415 Au Man Ho Liu Joseph K Susilo Willy Yuen Tsz Hon 2006 Constant Size ID Based Linkable and Revocable iff Linked Ring Signature Lecture Notes in Computer Science 4329 364 378 doi 10 1007 11941378 26LiteraturaG O Chikishev Odnorazovaya kolcevaya podpis i eyo primenenie v elektronnoj nalichnosti Prilozhenie Zhurnal Prikladnaya diskretnaya matematika 5 2012 S 56 58 S V Zapechnikov i drugie Kolcevye podpisi i ih prilozheniya 13 serpnya 2017 u Wayback Machine v Enciklopedii teoreticheskoj i prikladnoj kriptografii MIFI