Ранцева криптосистема Меркле-Геллмана, заснована на «задачі про рюкзак», була розроблена Ральфом Меркле i Мартіном Геллманом в 1978 році. Це була одна з перших асиметричних криптосистем, але вона виявилася і, як наслідок, не набула популярності.
Опис
«Задача про рюкзак» полягає в наступному: знаючи підмножину вантажів, покладених в ранець, легко підрахувати сумарну вагу, але, знаючи вагу, непросто визначити підмножину вантажів. Більш докладно, нехай задана послідовність з n додатних чисел (n — «розмір» рюкзака)
- w = (w1, w2, …, wn) і s.
Завдання полягає в тому, щоб знайти такий бінарний вектор
- x = (x1, x2, …, xn), (xi = 0 або 1), щоб
- .
Якщо кожному двійковому числу x поставити у відповідність деяку літеру алфавіту, то її можна було б передавати в зашифрованому вигляді просто як суму s. Для довільного набору чисел wi завдання відновлення x по s є NP-складним.
Р.Мерклю вдалося отримати , яка давала б вектор x, знаючи тільки якийсь «секретний» ключ, і він запропонував $ 100 тому, хто зможе розкрити ранцеву систему Меркле — Геллмана.
Розглянемо її докладніше.
Меркль використав не довільну послідовність wi, а суперзбільшену (superincreasing), тобто таку, що
- .
Неважко переконатися, що для такого набору чисел рішення задачі є тривіальним. Щоб позбутися цієї тривіальності і знадобилося ввести «секретний ключ», а саме два числа: q таке, що и r таке, що НСД(r, q) =1. І тепер замість початкового набору чисел wi будемо використовувати числа bi=rwi mod q. В оригінальних статтях Меркль рекомендував використовувати n порядку 100, де n — число елементів суперзбільшеної послідовності («розмір» рюкзака).
В результаті отримуємо: відкритий ключ — (b1, b2, …, bn), закритий ключ — (w1, w2, …, wn; q, r).
– повідомлення x = (x1, x2, ..., xn) - обчислюємо y = b1x1 + b2x2 + bnx
- Розшифровка
- обчислюємо s = y'r-1 mod q - вирішуємо задачу для s для суперзбільшеної послідовності (w1, w2, ..., wn), знаходимо число x
Нагорода дісталась А. Шамиру (Adi Shamir) після публікації ним в березні 1982 року повідомлення про відкриття ранцевої системи Меркле-Геллмана з однією інтерацією.
Це була одна з невдалих, але дуже цікавих спроб побудови криптосистеми на основі задачі про рюкзак.
Генерація ключа
В системі Меркле-Геллмана ключі складаються з послідовностей. Відкритий ключ являє собою «складну» послідовність, закритий ключ складається з «простої» або суперзбільшеної послідовності, а також двох додаткових чисел — множника і модуля, які використовуються як для перетворення суперзбільшеної послідовності в «складну» (генерація відкритого ключа), так і для перетворення суми підмножини «складною» послідовності в суму підмножини «простої» (розшифровка). Останнє завдання вирішується за поліноміальний час.
Шифрування
Спочатку вихідний текст необхідно представити в двійковому вигляді і розбити його на блоки, рівні за довжиною з відкритим ключем. Далі з послідовності, що утворює відкритий ключ, вибираються тільки ті елементи, які по порядку відповідають 1 в двійковому запису вихідного тексту, ігноруючи при цьому елементи, відповідні 0 біту. Після цього елементи отриманої підмножини складаються. Знайдена в результаті сума і є шифротекст.
Розшифровка
Розшифровка є можливою в силу того, що множник і модуль, використовувані для генерації відкритого ключа з суперзбільшеної послідовності, використовуються також і для перетворення шифротекста в суму відповідних елементів суперзбільшеної послідовності. Далі, за допомогою простого жадібного алгоритму, можна розшифрувати повідомлення, використовуючи O(n) арифметичних операцій.
Математичний опис алгоритму
Генерація ключа
Щоб зашифрувати n-бітове повідомлення, виберемо суперзбільшену послідовність з n ненульових натуральних чисел
- w = (w1, w2, …, wn).
Далі випадковим чином виберемо цілі взаємно прості числа q і r такі, що
- .
Число q вибирається таким чином, щоб гарантувати єдиність (унікальність) шифротексту. У випадку, якщо воно буде хоча б трохи менше, може виникнути ситуація, що одному шифротексту будуть відповідати кілька вихідних (відкритих) текстів. r повинно бути взаємно простим з q, в іншому випадку воно не буде мати мультиплікативного оберненого по модулю q, існування якого необхідно для розшифрування.
Тепер побудуємо послідовність
- β = (β1, β2, …, βn), де кожен елемент обчислюється за наступною формулою
- βi = rwi mod q.
β буде відкритим ключем, в той час як закритий ключ утворює послідовність (w, q, r).
Шифрування
Щоб зашифрувати n-бітове повідомлення
- α = (α1, α2, …, αn), де — це i-ий біт, тобто {0, 1}, обчислимо число c, яке і буде шифротекстом.
Розшифровка
Щоб прочитати вихідний текст, одержувач повинен визначити біти повідомлення , які задовільняли б формулу
Таке завдання було б NP-складним в разі, якби βi були випадково вибраними значеннями. Однак значення βi були вибрані таким чином, що розшифрування зводиться до простого завдання за умови, що закритий ключ (w, q, r) відомий.
Ключ до визначення початкового тексту полягає в тому, щоб знайти ціле число s, яке є мультиплікативним оберненим r по модулю q. Це означає, що s задовільняє рівнянню sr mod q = 1, що еквівалентно існуванню цілого числа k такого, що sr = kq + 1. Оскільки r взаємно просте з q, знайти s і k можливо з використанням розширеного алгоритму Евкліда. Далі одержувач шифротексту обчислює
Звідси
З того, що rs mod q = 1 і βi= rwi mod q, слідує
Тоді
Сума всіх wi менше, ніж q. Звідси значення також знаходиться в інтервалі [0,q-1]. Таким чином, одержувач повинен визначити з умови, що
- .
А це вже просте завдання, оскільки w — суперзбільшена послідовність. Нехай wk — найбільший елемент в w. Якщо wk > c' , то αk = 0; якщо wk ≤c' , то αk = 1. Далі віднімаємо wk×αk з c' і повторюємо ці кроки доти, поки не обчислимо α.
Приклад
w = {2, 7, 11, 21, 42, 89, 180, 354} - суперзбільшена послідовність.
Вона є основою для генерації закритого ключа. Порахуємо суму елементів послідовності
Далі виберемо просте число q, що перевершує отримане нами значення суми.
q = 881
Виберемо також число r з інтервалу [1,q)
r = 588
w, q і r утворять закритий ключ.
Щоб згенерувати відкритий ключ, побудуємо послідовність β, помноживши кожен елемент з послідовності w на r по модулю q.
2 * 588 mod 881 = 295 7 * 588 mod 881 = 592 11 * 588 mod 881 = 301 21 * 588 mod 881 = 14 42 * 588 mod 881 = 28 89 * 588 mod 881 = 353 180 * 588 mod 881 = 120 354 * 588 mod 881 = 236
Отримаємо β = (295, 592, 301, 14, 28, 353, 120, 236).
Послідовність β утворить відкритий ключ.
Нехай Аліса хоче зашифрувати «a». Спочатку вона повинна перевести «a» в двійковий код
01100001
Далі вона множить кожен біт на відповідне число з послідовності β, а суму значень відправляє одержувачу.
a = 01100001
0 * 295 + 1 * 592 + 1 * 301 + 0 * 14 + 0 * 28 + 0 * 353 + 0 * 120 + 1 * 236 = 1129
Щоб розшифрувати повідомлення, Боб примножує отримане ним значення на мультиплікативне обернене r по модулю q.
1129 * 442 mod 881 = 372
Після цього Боб розкладає 372 наступним чином. Спочатку він вибирає найбільший елемент з w, який менший, ніж 372, і обчислює їх різницю. Далі він вибирає наступний найбільший елемент, який менший, ніж отримана різниця, і повторює ці дії, поки різниця стане рівна нулю.
372 - 354 = 18
18 - 11 = 7
7 - 7 = 0
Елементи, які були обрані з w , будуть відповідати 1 в двійковому записі вихідного тексту
01100001
Перекладаючи назад з двійкового запису, Боб отримує, нарешті, шукане "a".
Примітки
- Ralph Merkle and Martin Hellman, Hiding Information and Signatures in Trapdoor Knapsacks, IEEE Trans. Information Theory, 24(5), September 1978, pp525-530.
- Adi Shamir, A Polynomial Time Algorithm for Breaking the Basic Merkle-Hellman Cryptosystem. CRYPTO 1982, pp279-288. http://dsns.csie.nctu.edu.tw/research/crypto/HTML/PDF/C82/279.PDF [ 24 квітня 2005 у Wayback Machine.]
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ranceva kriptosistema Merkle Gellmana zasnovana na zadachi pro ryukzak bula rozroblena Ralfom Merkle i Martinom Gellmanom v 1978 roci Ce bula odna z pershih asimetrichnih kriptosistem ale vona viyavilasya i yak naslidok ne nabula populyarnosti Opis Zadacha pro ryukzak polyagaye v nastupnomu znayuchi pidmnozhinu vantazhiv pokladenih v ranec legko pidrahuvati sumarnu vagu ale znayuchi vagu neprosto viznachiti pidmnozhinu vantazhiv Bilsh dokladno nehaj zadana poslidovnist z n dodatnih chisel n rozmir ryukzaka w w1 w2 wn i s Zavdannya polyagaye v tomu shob znajti takij binarnij vektor x x1 x2 xn xi 0 abo 1 shob s i 1 n x i w i displaystyle s sum i 1 n x i w i Yaksho kozhnomu dvijkovomu chislu x postaviti u vidpovidnist deyaku literu alfavitu to yiyi mozhna bulo b peredavati v zashifrovanomu viglyadi prosto yak sumu s Dlya dovilnogo naboru chisel wi zavdannya vidnovlennya x po s ye NP skladnim R Merklyu vdalosya otrimati yaka davala b vektor x znayuchi tilki yakijs sekretnij klyuch i vin zaproponuvav 100 tomu hto zmozhe rozkriti rancevu sistemu Merkle Gellmana Rozglyanemo yiyi dokladnishe Merkl vikoristav ne dovilnu poslidovnist wi a superzbilshenu superincreasing tobto taku sho w k 1 gt i 1 k w i displaystyle w k 1 gt sum i 1 k w i Nevazhko perekonatisya sho dlya takogo naboru chisel rishennya zadachi ye trivialnim Shob pozbutisya ciyeyi trivialnosti i znadobilosya vvesti sekretnij klyuch a same dva chisla q take sho q gt i 1 n w i displaystyle q gt sum i 1 n w i i r take sho NSD r q 1 I teper zamist pochatkovogo naboru chisel wi budemo vikoristovuvati chisla bi rwi mod q V originalnih stattyah Merkl rekomenduvav vikoristovuvati n poryadku 100 de n chislo elementiv superzbilshenoyi poslidovnosti rozmir ryukzaka V rezultati otrimuyemo vidkritij klyuch b1 b2 bn zakritij klyuch w1 w2 wn q r Shifruvannya povidomlennya x x1 x2 xn obchislyuyemo y b1x1 b2x2 bnx Rozshifrovka obchislyuyemo s y r 1 mod q virishuyemo zadachu dlya s dlya superzbilshenoyi poslidovnosti w1 w2 wn znahodimo chislo x Nagoroda distalas A Shamiru Adi Shamir pislya publikaciyi nim v berezni 1982 roku povidomlennya pro vidkrittya rancevoyi sistemi Merkle Gellmana z odniyeyu interaciyeyu Ce bula odna z nevdalih ale duzhe cikavih sprob pobudovi kriptosistemi na osnovi zadachi pro ryukzak Generaciya klyucha V sistemi Merkle Gellmana klyuchi skladayutsya z poslidovnostej Vidkritij klyuch yavlyaye soboyu skladnu poslidovnist zakritij klyuch skladayetsya z prostoyi abo superzbilshenoyi poslidovnosti a takozh dvoh dodatkovih chisel mnozhnika i modulya yaki vikoristovuyutsya yak dlya peretvorennya superzbilshenoyi poslidovnosti v skladnu generaciya vidkritogo klyucha tak i dlya peretvorennya sumi pidmnozhini skladnoyu poslidovnosti v sumu pidmnozhini prostoyi rozshifrovka Ostannye zavdannya virishuyetsya za polinomialnij chas Shifruvannya Spochatku vihidnij tekst neobhidno predstaviti v dvijkovomu viglyadi i rozbiti jogo na bloki rivni za dovzhinoyu z vidkritim klyuchem Dali z poslidovnosti sho utvoryuye vidkritij klyuch vibirayutsya tilki ti elementi yaki po poryadku vidpovidayut 1 v dvijkovomu zapisu vihidnogo tekstu ignoruyuchi pri comu elementi vidpovidni 0 bitu Pislya cogo elementi otrimanoyi pidmnozhini skladayutsya Znajdena v rezultati suma i ye shifrotekst Rozshifrovka Rozshifrovka ye mozhlivoyu v silu togo sho mnozhnik i modul vikoristovuvani dlya generaciyi vidkritogo klyucha z superzbilshenoyi poslidovnosti vikoristovuyutsya takozh i dlya peretvorennya shifroteksta v sumu vidpovidnih elementiv superzbilshenoyi poslidovnosti Dali za dopomogoyu prostogo zhadibnogo algoritmu mozhna rozshifruvati povidomlennya vikoristovuyuchi O n arifmetichnih operacij Matematichnij opis algoritmuGeneraciya klyucha Shob zashifruvati n bitove povidomlennya viberemo superzbilshenu poslidovnist z n nenulovih naturalnih chisel w w1 w2 wn Dali vipadkovim chinom viberemo cili vzayemno prosti chisla q i r taki sho q gt i 1 n w i displaystyle q gt sum i 1 n w i Chislo q vibirayetsya takim chinom shob garantuvati yedinist unikalnist shifrotekstu U vipadku yaksho vono bude hocha b trohi menshe mozhe viniknuti situaciya sho odnomu shifrotekstu budut vidpovidati kilka vihidnih vidkritih tekstiv r povinno buti vzayemno prostim z q v inshomu vipadku vono ne bude mati multiplikativnogo obernenogo po modulyu q isnuvannya yakogo neobhidno dlya rozshifruvannya Teper pobuduyemo poslidovnist b b1 b2 bn de kozhen element obchislyuyetsya za nastupnoyu formuloyu bi rwi mod q b bude vidkritim klyuchem v toj chas yak zakritij klyuch utvoryuye poslidovnist w q r Shifruvannya Shob zashifruvati n bitove povidomlennya a a1 a2 an de a i displaystyle alpha i ce i ij bit tobto a i displaystyle alpha i boldsymbol in 0 1 obchislimo chislo c yake i bude shifrotekstom c i 1 n a i b i displaystyle c sum i 1 n alpha i beta i Rozshifrovka Shob prochitati vihidnij tekst oderzhuvach povinen viznachiti biti povidomlennya a i displaystyle alpha i yaki zadovilnyali b formulu c i 1 n a i b i displaystyle c sum i 1 n alpha i beta i Take zavdannya bulo b NP skladnim v razi yakbi bi buli vipadkovo vibranimi znachennyami Odnak znachennya bi buli vibrani takim chinom sho rozshifruvannya zvoditsya do prostogo zavdannya za umovi sho zakritij klyuch w q r vidomij Klyuch do viznachennya pochatkovogo tekstu polyagaye v tomu shob znajti cile chislo s yake ye multiplikativnim obernenim r po modulyu q Ce oznachaye sho s zadovilnyaye rivnyannyu sr mod q 1 sho ekvivalentno isnuvannyu cilogo chisla k takogo sho sr kq 1 Oskilki r vzayemno proste z q znajti s i k mozhlivo z vikoristannyam rozshirenogo algoritmu Evklida Dali oderzhuvach shifrotekstu obchislyuye c c s mod q displaystyle c equiv cs pmod q Zvidsi c c s i 1 n a i b i s mod q displaystyle c equiv cs equiv sum i 1 n alpha i beta i s pmod q Z togo sho rs mod q 1 i bi rwi mod q sliduye b i s w i r s w i mod q displaystyle beta i s equiv w i rs equiv w i pmod q Todi c i 1 n a i w i mod q displaystyle c equiv sum i 1 n alpha i w i pmod q Suma vsih wi menshe nizh q Zvidsi znachennya i 1 n a i w i displaystyle sum i 1 n alpha i w i takozh znahoditsya v intervali 0 q 1 Takim chinom oderzhuvach povinen viznachiti a i displaystyle alpha i z umovi sho c i 1 n a i w i displaystyle c sum i 1 n alpha i w i A ce vzhe proste zavdannya oskilki w superzbilshena poslidovnist Nehaj wk najbilshij element v w Yaksho wk gt c to ak 0 yaksho wk c to ak 1 Dali vidnimayemo wk ak z c i povtoryuyemo ci kroki doti poki ne obchislimo a Prikladw 2 7 11 21 42 89 180 354 superzbilshena poslidovnist Vona ye osnovoyu dlya generaciyi zakritogo klyucha Porahuyemo sumu elementiv poslidovnosti w 706 displaystyle sum w 706 Dali viberemo proste chislo q sho perevershuye otrimane nami znachennya sumi q 881 Viberemo takozh chislo r z intervalu 1 q r 588 w q i r utvoryat zakritij klyuch Shob zgeneruvati vidkritij klyuch pobuduyemo poslidovnist b pomnozhivshi kozhen element z poslidovnosti w na r po modulyu q 2 588 mod 881 295 7 588 mod 881 592 11 588 mod 881 301 21 588 mod 881 14 42 588 mod 881 28 89 588 mod 881 353 180 588 mod 881 120 354 588 mod 881 236 Otrimayemo b 295 592 301 14 28 353 120 236 Poslidovnist b utvorit vidkritij klyuch Nehaj Alisa hoche zashifruvati a Spochatku vona povinna perevesti a v dvijkovij kod 01100001 Dali vona mnozhit kozhen bit na vidpovidne chislo z poslidovnosti b a sumu znachen vidpravlyaye oderzhuvachu a 01100001 0 295 1 592 1 301 0 14 0 28 0 353 0 120 1 236 1129 Shob rozshifruvati povidomlennya Bob primnozhuye otrimane nim znachennya na multiplikativne obernene r po modulyu q 1129 442 mod 881 372 Pislya cogo Bob rozkladaye 372 nastupnim chinom Spochatku vin vibiraye najbilshij element z w yakij menshij nizh 372 i obchislyuye yih riznicyu Dali vin vibiraye nastupnij najbilshij element yakij menshij nizh otrimana riznicya i povtoryuye ci diyi poki riznicya stane rivna nulyu 372 354 18 18 11 7 7 7 0 Elementi yaki buli obrani z w budut vidpovidati 1 v dvijkovomu zapisi vihidnogo tekstu 01100001 Perekladayuchi nazad z dvijkovogo zapisu Bob otrimuye nareshti shukane a PrimitkiRalph Merkle and Martin Hellman Hiding Information and Signatures in Trapdoor Knapsacks IEEE Trans Information Theory 24 5 September 1978 pp525 530 Adi Shamir A Polynomial Time Algorithm for Breaking the Basic Merkle Hellman Cryptosystem CRYPTO 1982 pp279 288 http dsns csie nctu edu tw research crypto HTML PDF C82 279 PDF 24 kvitnya 2005 u Wayback Machine Div takozhAsimetrichni algoritmi shifruvannya Shifruvannya