50427 Str073

50427 Str073



142    4. KJimbd publtone

Za pomocą następującego algorytmu rozwiązuje się w czasie wielomianowym problem pakowania plecaka dla supcrrosnącego ciągu {u/} i liczby V\

1.    Niech W = V i niech jmk,

2.    Począwszy od , i zmniejszając indeks r., przyjmujemy c, = 0 tak długo, aż napotkamy pierwszy indeks i nazwijmy go r'0 - taki, że vt ś W. Podstawiamy 6( = 1.

3.    Zastępujemy W przez W - uło, podstawiamy j - i0 i jeśli W > 0, to wracamy do kroku 2.

4.    Jeśli W = 0, to mamy rozwiązanie. Jeśli W > 0 i wszystkie pozostałe v, są większe od IV, to nic istnieje rozwiązanie n — (e*_ x ...e0)2 naszego problemu.

Zauważmy, że rozwiązanie (o ile w ogóle istnieje) jest jedyne.

Przykład 2. Niech liczby p, będą takie jak w przykładzie 1 i niech V = 24. Wtedy, przeglądając nasz ciąg {2, 3,7,15,31} od prawej do lewej, stwierdzimy, że = 0, e3 = 1 (iw tej chwili zastępujemy 24 przez 24 — 15 = 9), e2 = 1 (i teraz zastępujemy 9 przez 9 - 7 = 2),    = 0, e0 = 1. Zatem n = (01101)2 =

= 13.

Opiszemy teraz, jak problem pakowania plecaka można przekształcić w system kryptograficzny (zwany też systemem Merklego-Hellmana). Najpierw założymy, że odpowiednikami liczbowymi jednostek tekstu otwartego będą k-bitowe liczby całkowite P. Jeśli na przykład używamy pojedynczych liter alfabetu 26-literowego, to każda litera odpowiada w zwykły sposób jakiejś liczbie pięciobitowęj od 0 = (00000)2 do 25 = (11001)2.

Następnie każdy użytkownik wybiera superrosnący ciąg k-wyrazowy

k—1

{a0, ..., liczbę m większą niż £ vt oraz liczbę o, względnie pierwszą

1=0

z m i taką, że 0 < a < m. Ten wybór jest dokonywany w pewien losowy sposób. Możemy na przykład wybrać dowolny ciąg k + 1 liczb całkowitych dodatnich z,-, i = 0,1,..., k, mniejszych od pewnej dogodnie dobranej liczby; wtedy przyjmujemy v0 = z0, vi — zt +    + ul_2 + ... + v0 dla z = 1,..., k — 1 oraz

k-t

jako m bierzemy liczbę zk + J] vt. Następnie wybieramy losową liczbę a0<m 1=0

i jako a bierzemy najmniejszą liczbę >a0 względnie pierwszą z m. Wtedy obliczamy b = a — 1 mod m (tzn. b jest najmniejszą liczbą całkowitą dodatnią taką, że ab = 1 (mod ni)) oraz obliczamy wyrazy ciągu {wj określone wzorem w, = at>i mod m (tzn.    jest resztą z dzielenia avt przez ni). Każdy użytkownik

trzyma w tajemnicy swoje liczby vlt m, a i b oraz publikuje ciąg liczb {w,}. Zatem kluczem szyfrującym jest KR = {w0,..., wfc_l}. Kluczem rozszyfrowującym jest para KD = (b, m) (która wraz z kluczem szyfrującym umożliwia odtworzenie ciągu {u0,..., ck_,}).

Ktoś, kto chce wysłać ^-bitowy tekst otwarty P ~ (et^ j *1-2 "**1*0)1 do użytkownika używającego klucza szyfrującego {w,}, oblicza C=f(F)~

k-1

-s V 6j w, i wysyła tę liczbę.

1*0    tHH

Aby odczytać wiadomość, adresat najpierw oblicza resztę V z dzielenia bC przez m. Ponieważ bC = T,Ribwl a (mod mf (bowiem bwt = bao{ s p/ (mod m)), więc F = Xf:,v,. (Korzystamy tu z tego, źe V < m oraz •< ^ u, < m, by przystawanie modulo m zamienić na równość). Teraz może zastosować podany wyżej algorytm rozwiązywania łatwego problemu pakowania plecaka, by znaleźć jedyne rozwiązanie (ek.l ...e0)2 = P zadania polegającego na znalezieniu podzbioru zbioru liczb {o,}, którego sumą jest V. W ten sposób odtwarza wiadomość P.

Zauważmy, że inne osoby, znające tylko {w,}, mają do czynienia z problemem pakowania plecaka C = który nie jest łatwym problemem pakowania plecaka, gdyż własność „supermonotoniczności” ciągu [v{] została naruszona, gdy liczby vt zastąpiliśmy resztami z dzielenia av, ptm m. Zatem ten sam algorytm nie może już być użyty i, na pierwszy rzut oka, osoba nie upoważniona ma do czynienia ze znacznie poważniejszym problemem. Powrócimy później do tej kwestii.

Przykład 3. Przypuśćmy, że jednostkami tekstu otwartego są pojedyncze litery mające odpowiedniki liczbowe od (00000)2 do (11001)2, tak jak powyżej. Przyjmijmy, że naszym tajnym kluczem rozszyfrowującym jest ciąg superros* nący z przykładu 1. Wybierzmy m = 61, a = 17; wtedy b = 18 i kluczem szyfrującym jest ciąg (34, 51, 58, 11, 39). Aby wysłać wiadomość „WHY”, nasz korespondent kolejno oblicza: „W” = (10110)2>-*51 + 58 + 39 = 148, „H” = = (00111)2t-^34 + 51 + 58 = 143, „Y” = (11000)2h>11 + 39 = 50. Aby odczytać wiadomość 148,143,50, najpierw mnożymy przez 18 modulo 61, otrzymując 41, 12, 46. Postępując tak, jak w przykładzie 2 dla F = 41, F= 12 i F=46, odtwarzamy tekst otwarty (10110)2, (00111)2, (11000)2.

Oczywiście, jak zwykle system, w którym używa się pojedynczych liter jako jednostek tekstu i tak małej wartości k, nie jest bezpieczny; przykład 3 tylko wyjaśnia sposób działania systemu.

Przez pewien czas wydawało się, że systemy oparte na problemie pakowania plecaka oferują duże możliwości. Ponieważ problem pakowania plecaka jest jednym ze znanych bardzo trudnych problemów (problemy NP-zupełne), zdawało się, że taki system będzie bezpieczny.

Jednakże w tym rozumowaniu tkwił błąd. Ten rodzaj problemu pakowania plecaka C = który musi być rozwiązany, nie jest wprawdzie łatwym problemem pakowania plecaka, ale jednak jest bardzo szczególnym problemem, mianowicie powstaje on z łatwego problemu pakowania plecaka przez prostą transformację: pomnożenie wszystkich liczb przez a i zredukowanie modulo m. W 1982 roku Shamir znalazł algorytm rozwiązujący taki


Wyszukiwarka

Podobne podstrony:
s 75 75 Siłę elektromotoryczną (SEM) ogniwa można obliczyć za pomocą następującej zależności: SEM =
Finanse p stwa Wypych80 381 ściowego (nakłady poniesione na jego zakup) określona jest za pomocą nas
zadanie model IS LM Model 1S - Lii Zadanie 86 Gospodarka zamknięta z udziałem państwa opisana jest z
P1050457 Marla Renata Mayenowa 30-1 kształt taki a taki; Kształt taki a taki można opisać za pomocą
DSCF7357 chropowatość powierzchni. Chropowatość powierzchni określa się za pomocą następujących para
DSC02349 Na przykład metoda obserwacji może być realizowana za pomocą następujących technik: -
Model A. Brookina Według A. Brooking kapitał intelektualny można opisać za pomocą następujących
128 4 Za pomocą tej tabeli rozwiązać można następujące zadania: 1. Zmianę zanurzenia od przyjęcia do
292 IV. Badanie funkcji za pomocą pochodnych a więc zbliżamy się do żądanej dokładności. Następne
PICT0098 (2) Kucie śrub na tych maszynach przeprowadza najczęściej a$ za pomocą następujących zabieg
Finanse p stwa Wypych80 381 ściowego (nakłady poniesione na jego zakup) określona jest za pomocą nas

więcej podobnych podstron