wykład z podstaw klasycznej kryptografii z elementami...

109
Kryptografia — wykład dla IV roku Kryptografia Wykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej dla studentów IV roku Ryszard Tanaś Zakład Optyki Nieliniowej, Instytut Fizyki UAM [email protected] Serdecznie witam! Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 0

Upload: hanga

Post on 28-Feb-2019

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Kryptografia

Wykład z podstaw klasycznejkryptografii z elementami

kryptografii kwantowejdla studentów IV roku

Ryszard TanaśZakład Optyki Nieliniowej, Instytut Fizyki UAM

[email protected]

Serdecznie witam!

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 0

Page 2: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Literatura

• M. Kutyłowski i W. B. Strothmann Kryptografia: Teoria

i praktyka zabezpieczania systemów komputerowych, Wyd.READ ME, Warszawa, 1999, drugie wydanie dostępne wksięgarniach

• B. Schneier Kryptografia dla praktyków, WNT, Warszawa,2002, wydanie drugie

• R. Wobst, Kryptologia. Budowa i łamanie zabezpieczeń,RM, Warszawa, 2002

• A. J. Menezes, P. C. van Oorschot, S. A. VanstoneKryptografia stosowana, WNT, Warszawa, 2005;Handbook of Applied Cryptography, CRC Press, 1997, NewYork, dostępna w Internecie

• W. Stein An Explicit Approach to Elementary Number

Theory

http://modular.fas.harvard.edu/edu/Fall2001/124/lectures/

• S. J. Lomonaco A quick glance at quantum cryptography,LANL quant-ph archive, quant-ph/9811056, 1998

• S. J. Lomonaco A talk on quantum cryptography or how

Alice outwits Eve, LANL quantum-ph archive, quant-ph/0102016, 2001

• N. Gisin, G. Ribordy, W. Titel, H. Zbinden Quantum

cryptography, LANL quant-ph archive, quant-ph/0101098,2001

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 1

Page 3: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Terminologia

• Kryptografia — dziedzina wiedzy zajmująca się zabez-pieczaniem informacji (szyfrowanie)

• Kryptoanaliza — łamanie szyfrów

• Kryptologia — dział matematyki, który zajmuje siępodstawami metod kryptograficznych (kryptografia +kryptoanaliza)

• Główne postacie

⋆ Alicja — nadawca informacji

⋆ Bolek — odbiorca informacji

⋆ Ewa — podsłuchująca kanał przesyłowy i usi-łująca przechwycić informację przeznaczoną dlaBolka

Ewa⇑

Alicja =⇒ Bolek

Szyfrowanie i deszyfrowanie

tekst jawnyM

szyfrowanie=⇒

EK(M) = C

kryptogramC

deszyfrowanie=⇒

DK(C) = M

tekst jawnyM

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 2

Page 4: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Algorytmy

• symetryczne — klucz do szyfrowania i deszyfrowaniajest ten sam (klucz tajny) — DES, IDEA, AES

• asymetryczne — klucze do szyfrowania i deszyfrowa-nia są różne (klucz jawny albo publiczny — RSA,ElGamal)

Przykład kryptogramu

• tekst jawnyWykład z podstaw klasycznej kryptografii z elementami kryptografii kwantowej

• kryptogram (GnuPG)hQEOA+npwcy1l0+VEAP+IrpTozmtpWBINXV5koW5sBC86EAelZTrEXrzUHohenPo

ohzkgIoBH17Rvu46hZUsHjeHyH74RI1Lv0klHbtBOLiCLvZfdtBWFFtzr4j4kDt7

n7kGMrJCxwOKuZIVCdMrRS9jvcBgFydYIeq/jkA3VvPGU4nT3AEyqiZ+xkrPRvsE

AJ59+4YDc1sbccJdu6nyRMJ2rcYH+SoS+BDgUmkopkG2KCjnQHArUWGq9N1v3ULH

dRfKwl4kgOK2EQGTFaQxjGXqyK41MS5noOZhZ8nHgJ4N9vE/TH/CaTiWgLQyXoKt

4J4xOJ5wx6rjNIK5MRl37XxWr3D8xDwWBGtKFGLllcV/0ogBymNlqBWZB6qi/xZo

cLdPWR94WmIvpkxWsR5HZhU06K6D7l/KgSarosSDwpOtT6c/21epCZvuvrfnq8pm

lpTXqVuHVsZNGCp599pJCkgLTxdQDyV0xjD8feVEtX2pfHxdWMORMdEG2QGfWSCa

z0hvf2t7B+7lFQsK+TPi3+YQMaoXK+XmAyPz =vRaX

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 3

Page 5: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Podstawowe zastosowania

• ochrona danych

⋆ dane na dyskach

⋆ przesyłanie danych poprzez linie narażone na podsłuch

• uwierzytelnianie dokumentów i osób

• ochrona prywatności korespondencji elektronicznej

• elektroniczny notariusz

• podpis cyfrowy

• pieniądze cyfrowe

• wybory elektroniczne

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 4

Page 6: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Jak to działa: algorytm symetryczny

1. Alicja i Bolek uzgadniają algorytm i klucz jakich będąużywać

2. Alicja szyfruje tekst używając uzgodnionego algorytmu iklucza otrzymując kryptogram

3. Alicja przesyła kryptogram do Bolka

4. Bolek deszyfruje kryptogram używając tego samegoalgorytmu i klucza otrzymując tekst jawny

• Problemy:

⋆ klucz musi być przekazywany w sposób tajny

⋆ jeśli Ewa wejdzie w posiadanie klucza to może deszy-szyfrować wszystko, a nawet podszyć się pod Alicję

⋆ jeśli każda para korespondentów w sieci dysponujewłasnym kluczem to liczba kluczy szybko rośnie dlakogoś kto utrzymuje kontakt z wieloma osobami

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 5

Page 7: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Jak to działa: algorytm asymetryczny

1. Alicja i Bolek uzgadniają kryptosystem z kluczempublicznym, którego będą używać

2. Bolek przesyła Alicji swój klucz publiczny

3. Alicja szyfruje wiadomość kluczem publicznym Bolka iprzesyła kryptogram do Bolka

4. Bolek deszyfruje kryptogram używając swojego kluczaprywatnego

lub użytkownicy sieci uzgadniają kryptosystem i przesyłająswoje klucze publiczne do bazy na znanym serwerze i wtedyprotokół wygląda jeszcze prościej

1. Alicja i Bolek pobierają klucze publiczne z serwera

2. Alicja szyfruje wiadomość kluczem publicznym Bolka iwysyła kryptogram do Bolka

3. Bolek deszyfruje wiadomość Alicji używając własnegoklucza prywatnego

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 6

Page 8: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Kryptosystem hybrydowy

1. Bolek wysyła do Alicji swój klucz publiczny

2. Alicja generuje losowy klucz K dla obecnej sesji, szyfrujego kluczem publicznym Bolka i wysyła kryptogramklucza EB(K) do Bolka

3. Bolek deszyfruje kryptogram klucza używając swojegoklucza prywatnego, DB(EB(K))=K, otrzymując klucz Kdla obecnej sesji

4. oboje używają klucza K i symetrycznego algorytmu doszyfrowania i deszyfrowania informacji przesyłanych wczasie tej sesji

• Uwagi:

⋆ algorytmy symetryczne są szybsze niż algorytmyasymetryczne, co ma znaczenie przy przesyłaniu dużejilości danych

⋆ jeśli Ewa zdobędzie klucz K, to może go użyć dodeszyfrowania jedynie aktualnej sesji, potem już jestbezużyteczny

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 7

Page 9: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Podpis cyfrowy: kryptosystem z kluczempublicznym

1. Alicja szyfruje dokument używając swojego kluczaprywatnego, podpisując w ten sposób dokument

2. Alicja przesyła tak podpisany dokument do Bolka

3. Bolek deszyfruje dokument używając klucza publicznegoAlicji, weryfikując w ten sposób podpis Alicji

• Uwagi:

⋆ podpis jest prawdziwy; Bolek weryfikuje go deszyfrująckryptogram kluczem publicznym Alicji

⋆ podpis nie może być sfałszowany; tylko Alicja zna jejklucz prywatny

⋆ podpis nie może być przeniesiony do innego dokumentu

⋆ podpisany dokument nie może być zmieniony; zmie-niony dokument nie da się rozszyfrować kluczempublicznym Alicji

⋆ podpis jest niezaprzeczalny;

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 8

Page 10: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Jednokierunkowe funkcje hashujące (skrótu)

• dla każdego X łatwo jest obliczyć H(X)

• H(X) ma taką samą długość dla wszystkich tekstów X

• dla zadanego Y znalezienie takiego X, że H(X) = Y jestpraktycznie niemożliwe

• dla zadanego X trudno znaleźć X ′ takie, że H(X) =

H(X ′)

Elektroniczny notariusz

• dla danego dokumentu X obliczamy wartość H(X) ipublikujemy lub deponujemy u notariusza wartość H(X)

• chcąc udowodnić prawdziwość dokumentu X przedsta-wiamy dokument, obliczamy H(X) i porównujemy zopublikowaną wcześniej wartością

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 9

Page 11: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Szyfr Cezara

• szyfr podstawieniowy monoalfabetyczny

ABCDEFGH I J KLMNOPRS T UVWXYZDEFGH I JKLMNOPRSTUVWXY Z ABC

tekst jawny=⇒KRYP T OGRAFI Akryptogram=⇒NUBTWS J UD I LD

Szyfr Vigenère’a

A B C D E F G H I J K L M N O P R S T U V W X Y ZB C D E F G H I J K L M N O P R S T U V W X Y Z AC D E F G H I J K L M N O P R S T U V W X Y Z A BD E F G H I J K L M N O P R S T U V W X Y Z A B CE F G H I J K L M N O P R S T U V W X Y Z A B C DF G H I J K L M N O P R S T U V W X Y Z A B C D EG H I J K L M N O P R S T U V W X Y Z A B C D E FH I J K L M N O P R S T U V W X Y Z A B C D E F GI J K L M N O P R S T U V W X Y Z A B C D E F G HJ K L M N O P R S T U V W X Y Z A B C D E F G H IK L M N O P R S T U V W X Y Z A B C D E F G H I JL M N O P R S T U V W X Y Z A B C D E F G H I J KM N O P R S T U V W X Y Z A B C D E F G H I J K LN O P R S T U V W X Y Z A B C D E F G H I J K L MO P R S T U V W X Y Z A B C D E F G H I J K L M NP R S T U V W X Y Z A B C D E F G H I J K L M N OR S T U V W X Y Z A B C D E F G H I J K L M N O PS T U V W X Y Z A B C D E F G H I J K L M N O P RT U V W X Y Z A B C D E F G H I J K L M N O P R SU V W X Y Z A B C D E F G H I J K L M N O P R S TV W X Y Z A B C D E F G H I J K L M N O P R S T UW X Y Z A B C D E F G H I J K L M N O P R S T U VX Y Z A B C D E F G H I J K L M N O P R S T U V WY Z A B C D E F G H I J K L M N O P R S T U V W XZ A B C D E F G H I J K L M N O P R S T U V W X Y

klucz =⇒S Z Y MPANS SZYMtekst =⇒KRY PTOGRAF I Akrypt.=⇒CPWC I OU I SEGM

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 10

Page 12: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Operacja xor i one-time pad — szyfrVernama

0⊕ 0 = 00⊕ 1 = 11⊕ 0 = 11⊕ 1 = 0

• tekst jawny jest ciągiem bitów M=m1,m2, . . . ,mn

• wybieramy losowy ciąg bitów K=k1, k2, . . . , kn, którystanowi klucz

• szyfrowanie polega na wykonaniu operacji xor bit pobicie;

otrzymujemy w ten sposób losowy ciąg bitów stanowiących

kryptogram C=c1, c2, . . . , cn, gdzie ci = mi ⊕ ki

• operacja ta jest odwracalna;

ponieważ a⊕a = 0 i a⊕b⊕b = a, zatem ci⊕ki = (mi⊕ki)⊕ki =

mi

• kryptogram jest losowym ciągiem n bitów

Jeśli ki = mi to ci = 0, w przeciwnym wypadku ci = 1;

prawdopodobieństwo, że ci = 0 jest równe 12

niezależnie od

wartości mi, zatem i-ty bit kryptogramu jest losowy

• szyfr ten jest nie do złamania — bezpieczeństwodoskonałe — nie można uzyskać żadnej informacji otekście jawnym bez znajomości klucza

Ponieważ ci = mi ⊕ ki implikuje ki = mi ⊕ ci, a kryptogram

c1, c2, . . . , cn odpowiada każdemu możliwemu tekstowi jawnemu

z takim samym prawdopodobieństwem, to na podstawie samego

kryptogramu nie wiemy nic o tekście jawnym

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 11

Page 13: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Problemy:

⋆ klucz musi być wcześniej uzgodniony przez Alicję iBolka

⋆ klucz musi być wybrany naprawdę losowo, co nie jestłatwe

⋆ klucz musi być przechowywany w bezpieczny sposób

⋆ klucz musi być co najmniej tak długi jak szyfrowanytekst

• Przykład:tekst jawny =⇒ S Z Y F R

binarnie =⇒ 01010011 01011010 01011001 01000110 01010010klucz =⇒ 01110010 01010101 11011100 10110011 00101011

kryptogram =⇒ 00100001 00001111 10000101 11110101 01111001

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 12

Page 14: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

DES — Data Encryption Standard

• w 1981 r. przyjęty w USA jako standard do celówcywilnych

• algorytm symetryczny

• szczegóły algorytmu zostały opublikowane (podejrzenia otylne drzwi)

• szyfruje bloki 64 bitowe (8 liter ASCII z bitem parzystości)

• klucze są efektywnie 56 bitowe (64 bity minus 8 bitówparzystości); obecnie uważa się, że taka długość kluczajest zbyt mała

Etapy DES

• wejście — 64 bitowy blok

• permutacja początkowa

• blok zostaje podzielony na lewą i prawą połowę po 32 bitykażda

• 16 rund identycznych operacji opisanych funkcją f , wczasie których dane prawej połowy są przekształcane zużyciem klucza

⋆ w czasie każdej rundy bity klucza są przesuwane, anastępnie 48 bitowy podklucz jest wybierany z 56bitowego klucza

⋆ prawa część danych jest rozszerzana do 48 bitów zapomocą permutacji rozszerzającej a następnie podlegaoperacji xor z 48 bitami podklucza

⋆ wynik wysyłany jest do 8 S-boksów, które produkująnowe 32 bity

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 13

Page 15: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ otrzymane 32 bity są permutowane w P-boksie

• wynik tych 4 operacji stanowiących funkcję f podlegaoperacji xor z lewą połową i staje się nową prawą połową

• stara prawa połowa staje się nową lewą połową, i tak 16razy

• permutacja końcowa

• kryptogram

Jeśli Li i Ri są lewą i prawą połową dla i-tej rundy, Ki jest

podkluczem dla tej rundy, to tej rundy mamy

Li = Ri−1

Ri = Li−1 ⊕ f(Ri−1,Ki)

• deszyfrowanie DES-em polega na przeprowadzeniu tychsamych operacji co dla szyfrowania tylko podkluczewystępują w odwrotnej kolejności

Ponieważ

Ri−1 = Li

Li−1 = Ri ⊕ f(Ri−1,Ki) = Ri ⊕ f(Li,Ki)

to znając Li, Ri oraz Ki możemy obliczyć Li−1 i Ri−1.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 14

Page 16: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

L0 R0

L1 R1

L15 R15

L16R16

K1

K2

K16

f

f

f

64

64

64

64

3232

3232

32

48

permutacja początkowa

permutacja końcowa

tekst jawny

kryptogram

Rysunek 1: Schemat działania DES

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 15

Page 17: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Li−1 Ri−1

Li Ri

klucz

klucz

Ki

permutacja

S-boksy (S1, S2, . . . , S8)

permutacja rozszerzająca permutacja zwężająca

32

32

32

3232

48

48

2828

2828

rotacjarotacja

Rysunek 2: Jedna runda DES

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 16

Page 18: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Elementy DES

• permutacje początkowa i końcowa nie mają znaczeniakryptograficznego (ułatwiają operowanie danymi w baj-tach)

IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 462 54 46 38 30 22 14 6 64 56 48 40 32 24 16 857 49 41 33 25 17 9 1 59 51 43 35 27 19 11 361 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

IP−1 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 3138 6 46 14 54 22 62 30 37 5 45 13 53 21 61 2936 4 44 12 52 20 60 28 35 3 43 11 51 19 59 2734 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Tablica 1: Permutacja początkowa IP i końcowa IP−1 (tablice

te czytamy od lewej do prawej, od góry w dół odczytując kolejne

bity wyniku, a numery umieszczone na kolejnych pozycjach tabeli

oznaczają numer bitu na wejściu, np. bit 58 wejścia jest pierwszym

bitem wyjścia, itd.)

• generowanie podkluczy

⋆ z 64 bitowego losowego klucza otrzymuje się 56 bitowyignorując co ósmy bit i dokonując permutacji KP

KP 57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 27 19 11 3 60 52 44 3663 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 4

Tablica 2: Permutacja klucza

⋆ 56 bitowy klucz dzieli się na dwie połowy po 28 bitów

⋆ połowy są przesuwane cyklicznie w lewo o 1 lub 2 bityw zależności od rundy wg reguły

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 17

Page 19: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

runda 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16przesunięcie 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Tablica 3: Przesunięcia połówek klucza

⋆ permutacja z kompresją CP (permutowany wybór) daje48 bitów podklucza

CP 14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 32

Tablica 4: Permutacja zwężająca

• permutacja z rozszerzeniem rozszerza 32 bity Ri do 48bitów

EP 32 1 2 3 4 5 4 5 6 7 8 98 9 10 11 12 13 12 13 14 15 16 1716 17 18 19 20 21 20 21 22 23 24 2524 25 26 27 28 29 28 29 30 31 32 1

Tablica 5: Permutacja z rozszerzeniem

• S-boksy

⋆ wynik operacji xor na rozszerzonym Ri i Ki dzielonyjest na 8 części po 6 bitów, z których każda przechodzido oddzielnego S-boksu (S1, . . . , S8)

⋆ 6 bitów wchodzących do S-boksu przekształcanychjest w 4 bity wyjściowe w specjalny sposób pierwszy iostatni bit 6 bitów wejściowych daje liczbę dwubitowąod 0–3 oznaczającą wiersz S-boksu, zaś bity 2–5 dająliczbę 4-bitową od 0–15, która odpowiada kolumnietabeli.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 18

Page 20: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 89 14 15 5 2 8 12 3 7 0 4 10 1 13 11 64 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Tablica 6: S-boksy

Np. dla 110011 na wejściu, 1 i 6 bit dają 112 = 310,

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 19

Page 21: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

zaś bity 2–4 dają 10012 = 910, na przecięciu wiersza3 i kolumny 9 S1 mamy liczbę 1110 = 10112 (wierszei kolumny liczymy od zera). W wyniku otrzymujemy1011.

• wyniki z 8 S-boksów są łączone w 32 bitową liczbę

• na tych 32 bitach dokonuje się permutacji wg Tablicy 7oraz operacji xor z 32 bitami lewej połowy otrzymującnową prawą połowę, która przekazywana jest do następnejrundy

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 102 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

Tablica 7: Pertmutacja (P -boks)

Trzykrotny DES

Rozszerzenie algorytmu DES, w którym stosuje się dwaklucze K1 i K2

• Szyfrowanie

1. wiadomość szyfrowana jest kluczem K1

2. wynik kroku 1. deszyfrowany jest kluczem K2

3. wynik kroku 2. jest ponownie szyfrowany kluczem K1

• Deszyfrowanie

1. kryptogram deszyfrowany jest kluczem K1

2. wynik kroku 1. szyfrowany jest kluczem K2

3. wynik kroku 2. jest powtórnie deszyfrowany kluczemK1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 20

Page 22: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Tryby szyfrowania: szyfrowanie blokowe

• ECB — Electronic Codebook (Elektroniczna książkakodowa)Tekst jawny dzielony jest na bloki o długości 64 bity ikażdy blok jest oddzielnie szyfrowany tym samym kluczem

⋆ zaleta — utrata lub uszkodzenie pojedynczych blokównie ma wpływu na możliwość deszyfrowania pozosta-łych; nadaje się do szyfrowania baz danych

⋆ wada — możliwa jest modyfikacja kryptogramu bezznajomości klucza

• CBC — Cipher Block Chaining (Wiązanie bloków)Szyfrowanie kolejnego bloku zależy od wyniku szyfrowaniapoprzedniego bloku; taki sam blok tekstu jawnego jest wróżnych miejscach szyfrowany inaczej — kolejny blok tek-stu jawnego jest poddawany operacji xor z kryptogramempoprzedniego bloku.Matematycznie wygląda to następująco:

C1 = EK(M1 ⊕ I)

Ci = EK(Mi ⊕ Ci−1)

M1 = DK(C1 ⊕ I)

Mi = DK(Ci)⊕ Ci−1

gdzie Mi jest i-tym blokiem wiadomości, Ci i-tym blokiem

kryptogramu, zaś I jest losowym ciągiem bitów, który jest

przesyłany bez szyfrowania

⋆ zalety — takie same bloki tekstu jawnego mają różnekryptogramy; zmiana bitu (przekłamanie) wewnątrzjednego bloku prowadzi do zmiany tekstu po deszyfro-waniu tylko w danym bloku i następnym

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 21

Page 23: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ wady — nie można usunąć żadnego bloku z kryp-togramu; nie nadaje się do szyfrowania baz danych;nieodporny na zakłócenia (dodatkowy bit lub utratajednego bitu psują dalszy przekaz)

• CFB — Cipher Feedback (Szyfrowanie ze sprzężeniemzwrotnym)Szyfrowaniu podlegają jednostki mniejsze niż blok (64bity), np. jeden znak ASCII (1 bajt = 8 bitów). Schematdziałania przedstawiony jest na Rys. 3. Tryb ważny wzastosowaniach sieciowych, np. komunikacja pomiędzyklawiaturą i serwerem. Istotnym elementem CFB jestrejestr przesuwający.

• Działanie CFB

1. na początku rejestr przesuwający zawiera losowy ciąg64 bitów

2. zawartość rejestru przesuwającego jest szyfrowana zapomocą klucza K np. algorytmem DES

3. 8 pierwszych bitów kryptogramu jest dodawane mo-dulo 2 z 8 bitami reprezentującymi literę wiadomości(Mi) dając kryptogram Ci przesyłany do odbiorcy

4. Ci jednocześnie przesyłane jest do rejestru przesu-wającego zajmując ostatnie 8 bitów i przesuwającpozostałe bity o 8 pozycji w lewo; przesunięcie tonie jest cykliczne, tzn. pierwszych 8 bitów jestusuwanych

5. przy deszyfrowaniu rola wejścia i wyjścia zostajezamieniona

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 22

Page 24: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

88

8

888

8

64

64

64

64

Ci

Ci

Mi

Mi

K

K

Kryptogram

Kryptogram

Szyfrowanie (DES)

Szyfrowanie (DES)

Rejestr przesuwający

Rejestr przesuwający

(a) Szyfrowanie

(b) Deszyfrowanie

Rysunek 3: Schemat działania CFB

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 23

Page 25: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

IDEA — International Data EncryptionAlgorithm

• IDEA jest algorytmem blokowym wprowadzonym w latach90-tych

• IDEA używa kluczy 128 bitowych

• IDEA jest używana w pakiecie PGP

• IDEA jest algorytmem opatentowanym; można go używaćbezpłatnie do celów niekomercyjnych

• IDEA działa na blokach 64 bitowych i wykorzystuje 3różne operacje: xor (⊕), dodawanie modulo 216 (⊞) orazmnożenie modulo 216+1 (⊙); schemat działania algorytmuprzedstawiony jest na Rys. 4

Szyfrowanie

• 64 bitowy blok jest dzielony na 4 bloki po 16 bitów:X1, X2, X3, X4, które stanowią dane wejściowe dla pierw-szej rundy algorytmu

• algorytm składa się z 8 rund

• w każdej rundzie wykonywane są wymienione wyżej 3typy operacji na 16 bitowych blokach z 16 bitowymipodkluczami (każda runda wymaga 6 podkluczy)

• w wyniku otrzymuje się 4 bloki po 16 bitów: Y1, Y2, Y3, Y4

• pomiędzy rundami blok 2 i 3 są zamieniane

• algorytm kończy przekształcenie końcowe, które wymaga4 podkluczy

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 24

Page 26: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

��������

��������

��������

��������

��������

��������

X1 X2 X3 X4

Y1 Y2 Y3 Y4

K(1)1 K

(1)2 K

(1)3 K

(1)4

K(1)5

K(1)6

K(9)1 K

(9)2 K

(9)3 K

(9)4

Kolejne 7 rund

Transformacja końcowa

Pierwsza runda

Rysunek 4: Schemat działania algorytmu IDEA:⊕ — operacja xor, ⊞ — dodawanie modulo 216,⊙ — mnożenie modulo 216 + 1,K

(r)i — i-ty podklucz dla r-tej rundy

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 25

Page 27: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Generowanie podkluczy

• IDEA używa klucza 128 bitowego i wymaga 8×6+4=52podklucze

1. 128 bitowy klucz jest dzielony na bloki 16 bitowe, codaje 8 podkluczy

2. na kluczu wykonuje się przesunięcie cykliczne o 25pozycji i znowu dzieli na bloki 16 bitowe, co dajekolejne 8 podkluczy

3. operację z punktu 2 powtarza się tak długo aż wygene-ruje się wszystkie podklucze

Deszyfrowanie

• Deszyfrowanie algorytmem IDEA przebiega wg sche-matu przedstawionego na Rys. 4, w którym zamiastX1, X2, X3, X4 na wejściu podaje się bloki Y1, Y2, Y3, Y4

kryptogramu oraz klucz K (ten sam co przy szyfrowaniu)

• z klucza K generuje się podklucze K(r)i

• generuje się podklucze deszyfrujące K ′(r)i wg schematu

przedstawionego w Tablicy 8

Runda K′(r)1 K′(r)

2 K′(r)3 K′(r)

4 K′(r)5 K′(r)

6

r = 1“

K(10−r)1

−1

−K(10−r)2 −K

(10−r)3

K(10−r)4

−1

K(9−r)5 K

(9−r)6

2≤ r ≤ 8“

K(10−r)1

−1

−K(10−r)3 −K

(10−r)2

K(10−r)4

−1

K(9−r)5 K

(9−r)6

r = 9“

K(10−r)1

−1

−K(10−r)2 −K

(10−r)3

K(10−r)4

−1

— —

Tablica 8: Tworzenie podkluczy deszyfrujących K ′(r)i na pod-

stawie podkluczy szyfrujących K(r)i w algorytmie IDEA (dla

Ki = 0 przyjmuje się (Ki)−1

= 0; 216 ≡ −1 mod 216 + 1)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 26

Page 28: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

AES — Advanced Encryption Standard —Rijndael

• Nowy standard przyjęty w 2001 r. w USA

• algorytm blokowy, który zaprojektowali Joan Daemen iVincent Rijmen

• zarówno długość bloku jak i klucza może być wybranajako 128, 192 lub 256 bitów

• Rijndael jest ogólnie dostępny

• liczba rund zależy od długości bloku

• w każdej rundzie wykonywane są 4 operacje (macierzowe):podstawienie w S-boksie, przesunięcie wierszy, mieszaniekolumn i xor z podkluczem

• podklucze są generowane algorytmem, który zależy odrundy

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 27

Page 29: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Algorytmy asymetryczne — RSA

• Witfield Diffie i Martin Hellman — idea kryptografii zkluczem publicznym, rok 1976

• RSA — Ron Rivest, Adi Shamir i Leonard Adleman, rok1978

• bezpieczeństwo algorytmu RSA opiera się na trudnościobliczeniowej związanej z rozkładem dużych liczb naczynniki (faktoryzacja)Wybierzmy dwie duże liczby pierwsze p i q i obliczmy ich

iloczyn (iloczyn łatwo obliczyć)

n = pq,

następnie wybierzmy losowo liczbę e < n względnie pierwszą

z liczbą (p − 1)(q − 1). Liczba e będzie kluczem szyfrującym.

Teraz znajdźmy liczbę d taką, że

ed ≡ 1 (mod (p− 1)(q − 1)),

lub inaczej

d ≡ e−1 (mod (p− 1)(q − 1)).

Liczby d i n są także względnie pierwsze. Do obliczenia d można

użyć rozszerzonego algorytmu Euklidesa. Liczba d jest kluczem

deszyfrującym. Liczby {e, n} stanowią klucz publiczny, który

ujawniamy, zaś liczby {d, n} stanowią klucz prywatny, który

powinien być ściśle chroniony (liczba d)

• SzyfrowanieWiadomość dzielimy na bloki mi mniejsze niż n, któreszyfrujemy używając formuły

ci ≡ mei (mod n)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 28

Page 30: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• DeszyfrowanieTekst jawny z kryptogramu otrzymujemy obliczając

mi ≡ cdi (mod n)

• UzasadnieniePonieważ ed ≡ 1 (mod (p − 1)(q − 1)), to istnieje liczba

całkowita k taka, że ed = 1 + k(p − 1)(q − 1). Z małego

twierdzenia Fermata, dla NWD(m, p) = 1, mamy

mp−1 ≡ 1 (mod p)

podnosząc obie strony tej kongruencji do potęgi k(q − 1) oraz

mnożąc przez m otrzymujemy

m1+k(p−1)(q−1) ≡ m (mod p)

Kongruencja ta jest także prawdziwa dla NWD(m, p) = p,

ponieważ wtedy obie strony przystają do 0 (mod p). Zatem,

zawsze mamy

med ≡ m (mod p).

Podobnie,

med ≡ m (mod q),

a ponieważ p i q są różnymi liczbami pierwszymi, to z chińskiego

twierdzenia o resztach otrzymujemy

med ≡ m (mod n)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 29

Page 31: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Przykład (trywialny):Znajdowanie klucza:

p = 1123 q = 1237

n = pq = 1389151

φ = (p− 1)(q − 1) = 1386792

e = 834781

d ≡ e−1 (mod φ) = 1087477

Szyfrowanie:

m = 983415

c ≡ me (mod n)

983415834781 (mod 1389151) = 190498

Deszyfrowanie:

m ≡ cd (mod n)

1904981087477 (mod 1389151) = 983415

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 30

Page 32: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Trochę matematyki

• Podzielność liczb

⋆ Dla danych liczb całkowitych a i b mówimy, że liczba

b jest podzielna przez a lub, że liczba a dzieli liczbę b,

jeżeli istnieje taka liczba całkowita d, że b = ad. Liczbę a

nazywamy dzielnikiem liczby b, a fakt ten zapisujemy a|b.

⋆ Każda liczba b > 1 ma co najmniej dwa dzielniki dodatnie:

1 i b.

⋆ Dzielnikiem nietrywialnym liczby b nazywamy dzielnik

dodatni różny od 1 i b.

⋆ Liczba pierwsza to liczba większa od 1 nie mająca innych

dzielników dodatnich niż 1 i ona sama.

⋆ Liczba mająca co najmniej jeden nietrywialny dzielnik jest

liczbą złożoną.

• Twierdzenie o rozkładzie na czynniki pierwszeKażda liczba naturalna n może być przedstawiona jedno-znacznie (z dokładnością do kolejności czynników) jakoiloczyn liczb pierwszych.Zwykle taki rozkład zapisujemy jako iloczyn odpowiednich

potęg różnych liczb pierwszych, np. 6600 = 23 · 3 · 52 · 11.

• Własności relacji podzielności

1. Jeśli a|b i c jest dowolną liczbą całkowitą, to a|bc.

2. Jeśli a|b i b|c, to a|c

3. Jeśli a|b i a|c, to a|b± c

4. Jeśli liczba pierwsza p dzieli ab, to p|a lub p|b

5. Jeśli m|a i n|a oraz m i n nie mają wspólnych dzielników

większych od 1, to mn|a

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 31

Page 33: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Największy wspólny dzielnik — NWD(a, b)

Największy wspólny dzielnik, NWD(a, b), dla danych dwóch

liczb całkowitych (nie będących jednocześnie zerami), to

największa liczba całkowita d będąca dzielnikiem zarówno a,

jak i b.

Przykład: NWD(12, 18) = 6

• Najmniejsza wspólna wielokrotność — NWW (a, b)

Najmniejsza wspólna wielokrotność, NWW (a, b), to najmniej-

sza dodatnia liczba całkowita, którą dzielą a i b.NWW (a, b) = a · b/NWD(a, b)

Przykład: NWW (12, 18) = 36 = 12 · 18/NWD(12, 18)

• Liczby względnie pierwszeLiczby a i b są względnie pierwsze jeżeli NWD(a, b) = 1,tzn. liczby a i b nie mają wspólnego dzielnika większegood 1.NWD(841, 160) = 1 zatem liczby 841 i 160 są względniepierwsze (patrz niżej)

• Algorytm EuklidesaAlgorytm Euklidesa pozwala znaleźć NWD(a, b) w czasiewielomianowym (dla a > b, O(ln2(a)))Dla a > b, dzielimy a przez b otrzymując iloraz q1 i resztę

r1, tzn. a = q1b + r1, w następnym kroku b gra rolę a, zaś

r1 gra rolę b: b = q2r1 + r2. Postępowanie to kontynuujemy

dzieląc kolejne reszty, ri−2 = qiri−1 + ri, aż do momentu kiedy

otrzymamy resztę, która dzieli poprzednią resztę. Ostatnia

niezerowa reszta jest NWD(a, b).

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 32

Page 34: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Obliczmy NWD(841, 160)

841 = 5 · 160 + 41

160 = 3 · 41 + 37

41 = 1 · 37 + 4

37 = 9 · 4 + 1

4 = 4 · 1 + 0

Ponieważ NWD(841, 160) = 1, to liczby 841 i 160 są względnie

pierwsze.

• TwierdzenieNajwiększy wspólny dzielnik dwóch liczb może być przed-stawiony w postaci kombinacji liniowej tych liczb zewspółczynnikami całkowitymi: NWD(a, b) = xa+ yb,przy czym liczby x i y można znaleźć w czasie O(ln2(a)).W poprzednim przykładzie NWD(841, 160) = 1. Korzystając

z ciągu równości w algorytmie Euklidesa (idąc w przeciwną

stronę) otrzymujemy

1 = 37− 9 · 4

= 37− 9(41− 1 · 37) = 10 · 37− 9 · 41

= 10(160− 3 · 41)− 9 · 41 = 10 · 160− 39 · 41

= 10 · 160− 39 · (841− 5 · 160)

= −39 · 841 + 205 · 160

Zatem x = −39 i y = 205.

• Rozszerzony algorytm EuklidesaRozszerzony algorytm Euklidesa znajduje zarówno największy

wspólny dzielnik NWD(a, b) liczb a i b jak i liczby x i y będące

współczynnikami kombinacji liniowej NWD(a, b) = xa+ yb.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 33

Page 35: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

q r a b x x2 x1 y y2 y1

— — 841 160 — 1 0 — 0 1

5 41 160 41 1 0 1 -5 1 -5

3 37 41 37 -3 1 -3 16 -5 16

1 4 37 4 4 -3 4 -21 16 -21

9 1 4 1 -39 4 -39 205 -21 205

Na każdyn etapie mamy r = x · 841 + y · 160. Z ostatniego

wiersza odczytujemy:

NWD(841, 160) = 1 = −39 · 841 + 205 · 160

Przyporządkowania w algorytmie są następujące:

q = ⌊a/b⌋, r ← a− qb, x← x2 − qx1, y ← y2 − qy1

a← b, b← r, x2 ← x1, x1 ← x, y2 ← y1, y1 ← y

• KongruencjeDla danych trzech liczb całkowitych a, b i m mówimy,że liczba a przystaje do liczby b modulo m i piszemya ≡ b (mod m), gdy różnica a− b jest podzielna przezm. Liczbę m nazywamy modułem kongruencji.Własności

1. a ≡ a (mod m)

2. a ≡ b (mod m) wtedy i tylko wtedy, gdy b ≡ a

(mod m)

3. Jeśli a ≡ b (mod m) oraz b ≡ c (mod m), to a ≡ c

(mod m)

4. Jeśli a ≡ b (mod m) i c ≡ d (mod m), to a± c ≡ b± d(mod m) oraz ac ≡ bd (mod m)

Kongruencje względem tego samego modułu możnadodawać, odejmować i mnożyć stronami.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 34

Page 36: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

5. Jeśli a ≡ b (mod m), to a ≡ b (mod d) dla każdegodzielnika d|m

6. Jeśli a ≡ b (mod m), a ≡ b (mod n), oraz m i n sąwzględnie pierwsze, to a ≡ b (mod mn)

7. Dla ustalonej liczby m, każda liczba przystaje modulom do jednej liczby zawartej pomiędzy 0 i m− 1.

Przykłady:

27 ≡ 7 (mod 5) bo 27− 7 = 4 · 5

27 ≡ 2 (mod 5) bo 27− 2 = 5 · 5

−8 ≡ 7 (mod 5) bo −8− 7 = −3 · 5

• TwierdzenieLiczbami a, dla których istnieje liczba b taka, żeab ≡ 1 (mod m), są dokładnie te liczby a, dla któ-rych NWD(a,m) = 1. Taka liczba odwrotna b = a−1

może być znaleziona w czasie O(ln2(m)).Ponieważ NWD(841, 160) = 1 (patrz poprzedni przykład),

to istnieje liczba 160−1 (mod 841). Liczbę tę można obliczyć

za pomocą rozszerzonego algorytmu Euklidesa. Ponieważ

1 = −39 · 841 + 205 · 160, to 205 · 160 ≡ 1 (mod 841), a więc

160−1 (mod 841) = 205.

• Małe twierdzenie FermataNiech p będzie liczbą pierwszą. Wtedy każda liczba a

spełnia kongruencję ap ≡ a (mod p) i każda liczba a nie-podzielna przez p spełnia kongruencję ap−1 ≡ 1 (mod p).Liczba 1231 jest liczbą pierwszą i NWD(1231, 5871) = 1, więc

58711230 ≡ 1 (mod 1231)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 35

Page 37: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Chińskie twierdzenie o resztachJeśli liczby m1,m2, . . . ,mk są parami względnie pierw-sze, tzn. NWD(mi,mj) = 1 dla i 6= j, wtedy układkongruencji

x ≡ a1 (mod m1)

x ≡ a2 (mod m2)

. . . . . .

x ≡ ak (mod mk)

ma wspólne rozwiązanie modulo m = m1m2 . . .mk.Przykład:

x ≡ 1 (mod 11)

x ≡ 2 (mod 12)

x ≡ 3 (mod 13)

Niech Mi = m/mi będzie iloczynem wszystkich modułów z

wyjątkiem i-tego. Wtedy NWD(mi,Mi) = 1, a więc istnieje

taka liczba Ni, że MiNi ≡ 1 (mod mi), wtedy wspólnym

rozwiązaniem modulo m jest x =P

iaiMiNi. Dla każdego

i wszystkie składniki sumy poza i-tym są podzielne przez

mi, gdyż mi|Mj dla j 6= i zatem dla każdego i mamy

x ≡ aiMiNi ≡ ai (mod mi). W naszym przykładzie mamy:

a1 = 1, a2 = 2, a3 = 3, m1 = 11, m2 = 12, m3 = 13,

m = 1716, M1 = 156, M2 = 143, M3 = 132. Aby znaleźć

wspólne rozwiązanie tego układu kongruencji należy znaleźć

liczby Ni będące odwrotnościami liczb Mi modulo mi. W

tym celu możemy użyć algorytmu Euklidesa. W wyniku

otrzymujemy liczby: N1 = 6, N2 = 11 i N3 = 7. Zatem

wspólnym rozwiązaniem jest x ≡ 6 · 156 + 2 · 11 · 143 + 3 · 7 · 132

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 36

Page 38: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

(mod 1716) ≡ 1706 (mod 1716). W tym przykładzie widać, że

liczba −10 daje takie reszty zatem x = −10 + 1716.

• Funkcja EuleraDla n ≥ 1, niech φ(n) będzie liczbą tych nieujemnychliczb b mniejszych od n, które są względnie pierwsze z n.Funkcja φ(n) nazywa się funkcją Eulera.Funkcja Eulera φ jest „multiplikatywna”, tzn. φ(mn) =

φ(m)φ(n), jeśli tylko NWD(m,n) = 1.

• Twierdzenie EuleraJeśli NWD(a,m) = 1, to aφ(m) ≡ 1 (mod m).WniosekJeśli NWD(a,m) = 1 i jeśli n′ jest resztą z dzielenia nprzez φ(m), to an ≡ an′

(mod m)

• Potęgowanie modulo metodą iterowanego podno-szenia do kwadratuPodstawowym działaniem w kryptografii jest obliczaniean (mod m), gdzie m i n są bardzo dużymi liczbami.Zauważmy, że rozwinięcie dwójkowe liczby n ma postać

n =

k−1∑

i=0

ni2i = n0 + 2n1 + 4n2 + · · ·+ 2k−1nk−1

,gdzie ni ∈ {0, 1} są cyframi rozwinięcia dwójkowego.Zatem

an =k−1∏

i=0

ani2i

=(

a20)n0

(

a21)n1

. . .(

a2k−1)nk−1

Załóżmy, że a < m oraz przyjmijmy, że przez b będziemyoznaczali częściowe iloczyny. Na początku b = 1. Jeżeli

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 37

Page 39: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

n0 = 1 to zastępujemy b przez a, w przeciwnym przypadkunadal b = 1. Następnie liczymy a1 ≡ a2 (mod m). Jeślin1 = 1, to mnożymy b przez a1 i redukujemy modulom, zaś jeśli n1 = 0 nie zmieniamy b. Następnie liczymya2 ≡ a2

1 (mod m). Znowu, jeśli n2 = 1, to mnożymyb przez a2; w przeciwnym przypadku nie zmieniamy b.Postępując dalej w ten sposób, w j-tym kroku mamy obli-czoną potęgę aj ≡ a2j (mod m). Jeśli nj = 1 to włączamyaj do iloczynu b, jeśli nj = 0 to b się nie zmienia. Po k− 1

krokach otrzymamy b ≡ an (mod m).Przykład:

Obliczmy 7698 (mod 1234) = 287

i 0 1 2 3 4 5 6 7 8 9

ni 0 1 0 1 1 1 0 1 0 1

ai 7 49 1167 787 1135 1163 105 1153 391 1099

b 1 49 49 309 259 121 121 71 71 287

• Czy wystarczy liczb pierwszych?TwierdzenieNiech π(x) oznacza liczbę liczb pierwszych ≤ x. Wtedy

limx→∞

π(x)

x/ lnx= 1

Dla x ≥ 17

π(x) >x

lnx

Dla przykładu, dla x = 1010, π(x) = 455052511, natomiast

⌊x/ lnx⌋ = 434294481.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 38

Page 40: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Testy pierwszościIstnieją probabilistyczne testy pierwszości liczb, którepozwalają z dużym prawdopodobieństwem w skończonymczasie dać odpowiedź czy dana liczba jest pierwsza.Test FermataTestujemy czy liczba n jest pierwsza. Wybieramy losowoliczbę a < n− 1, obliczamy r = an−1 (mod n), jeśli r 6= 1

to n jest liczbą złożoną. Test przeprowadzamy t-krotnie,t ≥ 1. Jeśli wszystkie testy wypadną pomyślnie, tzn.r = 1, to liczbę uznajemy za pierwszą, choć może tak niebyć.Test Millera-RabinaTestujemy czy liczba n jest pierwsza. Piszemy n−1 = 2sr,gdzie r jest nieparzyste. Wybieramy losowo liczbę a,1 < a < n − 1. Obliczamy b = ar (mod n). Jeśli b ≡ ±1

(mod n) to uznajemy, że n jest pierwsza. W przeciwnymprzypadku obliczamy a2jr (mod n) dla 0 < j < s. Jeślidla pewnego j < s otrzymamy a2jr ≡ −1 (mod n) touznajemy, że liczba n jest pierwsza. W przeciwnymprzypadku liczba n jest złożona. Test przeprowadzamyt-krotnie losując różne a.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 39

Page 41: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Reszty kwadratowe w Z∗p

⋆ Oznaczmy przez Zp = {0, 1, 2, . . . , p − 1} zbiór reszt

modulo p, gdzie p > 2 jest nieparzystą liczbą pierwszą; np.

Z11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

⋆ Przez Z∗

p będziemy oznaczali zbiór niezerowych elementów

zbioru Zp, a więc np. Z∗

11 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

⋆ W zbiorze Z∗

p szukamy takich elementów, które są kwadra-

tami innych elementów, tzn. spełniona jest kongruencja

x2 ≡ a (mod p), dla {x, a} ∈ Z∗

p.

Liczby a, które są kwadratami nazywamy resztami kwa-

dratowymi modulo p, zaś pozostałe elementy nazywamy

nieresztami.

Przykład:

Weźmy Z∗

11 i policzmy x2 (mod 11) dla wszystkich x, mamy

wtedy

x 1 2 3 4 5 6 7 8 9 10

a = x2 (mod 11) 1 4 9 5 3 3 5 9 4 1

Resztami kwadratowymi w Z∗

11 są więc liczby {1, 3, 4, 5, 9}, a

pozostale liczby {2, 6, 7, 8, 10} są nieresztami

Symbol Legendre’aNiech a będzie liczbą całkowitą zaś p > 2 liczbą pierwszą;

symbol Legendre’a definiujemy

a

p

«

=

8

>

>

<

>

>

:

0, jeśli p|a

1, jeśli a jest resztą kwadratową modulo p

−1, jeśli a jest nieresztą modulo p

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 40

Page 42: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Twierdzenie(

a

p

)

= ap−1

2 (mod p)

Własności symbolu Legendre’a

(1)

(

a

p

)

zależy tylko od a modulo p

(2)

(

ab

p

)

=

(

a

p

) (

b

p

)

(3)

(

ab2

p

)

=

(

a

p

)

, jeśli NWD(b, p) = 1

(4)

(

1

p

)

= 1 oraz(−1

p

)

= (−1)p−1

2

Twierdzenie

(

2

p

)

= (−1)p2

−1

8 =

1, jeśli p ≡ ±1 (mod 8)

−1, jeśli p ≡ ±3 (mod 8)

Prawo wzajemnościNiech p i q będą dwiema nieparzystymi liczbami pierwszymi.

Wtedy(

q

p

)

= (−1)p−1

2

q−1

2

(

p

q

)

=

−(

pq

)

, jeśli p ≡ q ≡ 3 (mod 4)(

pq

)

, w przeciwnym przypadku

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 41

Page 43: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Przykład:

91

167

«

=

7 · 13

167

«

=

7

167

« „

13

167

«

= (−1)7−1

2

167−1

2

167

7

«

(−1)13−1

2

167−1

2

167

13

«

= −

167

7

« „

167

13

«

= −

6

7

« „

11

13

«

= −

2

7

« „

3

7

« „

11

13

«

= −

3

7

« „

11

13

«

− (−1)3−1

2

7−1

2

7

3

«

(−1)11−1

2

13−1

2

13

11

«

=

1

3

« „

2

11

«

= 1 · (−1) = −1

Pierwiastki kwadratowe modulo p

⋆ Prawo wzajemności pozwala szybko stwierdzić czy a jest

resztą kwadratową modulo p, a więc mówi, że istnieje

rozwiązanie kongruencji

x2 ≡ a (mod p) ,

chociaż nie daje wskazówek jak takie rozwiązanie znaleźć.

⋆ Nie jest znany efektywny deterministyczny algorytm obli-

czania pierwiastków kwadratowych w Z∗

p. Istnieje natomiast

efektywny algorytm probabilistyczny dla obliczania takich

pierwiastków jeśli p jest liczbą pierwszą.

• Reszty kwadratowe w Z∗n

⋆ Oznaczmy przez Zn = {0, 1, 2, . . . , n − 1} zbiór reszt

modulo n, gdzie n jest dodatnią liczbą całkowitą; np.

Z15 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}

⋆ Przez Z∗

n będziemy oznaczali podzbiór tych elementów

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 42

Page 44: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

zbioru Zn, które są względnie pierwsze z n, a więc np.

Z∗

15 = {1, 2, 4, 7, 8, 11, 13, 14}. Liczba elementów zbioruZ∗n jest równa wartości funkcji Eulera φ(n).

⋆ W zbiorze Z∗

n szukamy takich elementów, które są kwadra-

tami innych elementów, tzn. spełniona jest kongruencja

x2 ≡ a (mod n), dla {x, a} ∈ Z∗

n.

Symbol JacobiegoNiech a będzie liczbą całkowitą i niech n będzie dowolną

dodatnią liczbą nieparzystą. Niech n = pα1

1 · . . . · pαrr będzie

rozkładem liczby n na czynniki pierwsze. Wtedy definiujemy

symbol Jacobiego (uogólnienie symbolu Legendre’a) jako iloczyn

symboli Legendre’a dla dzielników pierwszych n

(a

n

)

=

(

a

p1

)α1

· . . . ·(

a

pr

)αr

TwierdzenieDla dowolnej dodatniej liczby nieparzystej n mamy

(

2

n

)

= (−1)n2

−1

8

TwierdzenieDla dowolnych dodatnich liczb nieparzystych m i n mamy

(m

n

)

= (−1)m−1

2

n−1

2

( n

m

)

UwagaJeśli liczba a ∈ Z

n jest resztą kwadratową to`

a

n

´

= 1.

Jeśli symbol Jacobiego`

a

n

´

= 1 dla liczby złożonej n to a nie

musi być resztą kwadratową!

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 43

Page 45: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Pierwiastki kwadratowe modulo n

⋆ Jeśli n = pq jest iloczynem dwóch dużych, różnych liczb

pierwszych, to uważa się, że znajdowanie pierwiastków

kwadratowych w Z∗

n należy do problemów trudnych ob-

liczeniowo! Trudność ta jest równoważna trudności z

faktoryzacją liczby n. (Faktoryzując n znajdujemy liczby

pierwsze p i q, znajdujemy pierwiastki kwadratowe w Z∗

p

oraz Z∗

q , a następnie korzystając z chińskiego twierdzenia o

resztach znajdujemy pierwiastki w Z∗

n.)

• Logarytm dyskretny

⋆ Niech p będzie liczbą pierwszą, przez Z∗p oznaczamy

zbiór liczb {1, . . . , p − 1} i niech g będzie generatoremZ∗p, tzn. takim elementem, że dla każdej liczby a ∈ Z

∗p

istnieje takie i, że a ≡ gi (mod p) (wszystkie elementymogą być wygenerowane z g).

⋆ Problem logarytmu dyskretnego polega na znalezieniudla danej liczby 0 < b < p takiej liczby a, że ga ≡ b

(mod p).

⋆ Problem znajdowania logarytmu dyskretnego jestproblemem trudnym obliczeniowo!

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 44

Page 46: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Przykład:

Weźmy Z∗

19, czyli zbiór liczb {1, . . . , 18} oraz g = 2.

Niech b = 2a (mod 19), mamy wtedy

a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

b 2 4 8 16 13 7 14 9 18 17 15 11 3 6 12 5 10 1

Tak więc w Z∗

19, np.

log2 13 = 5

25 ≡ 13 (mod 19)

• PARI/GP — teoria liczb na komputerzeGP/PARI CALCULATOR Version 2.1.6 (released)

i386 running linux 32-bit version

(readline v4.3 enabled, extended help available)

Copyright (C) 2002 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and

comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.

Type ?12 for how to get moral (and possibly technical) support.

realprecision = 28 significant digits

seriesprecision = 16 significant terms

format = g0.28

parisize = 4000000, primelimit = 500000

Dzielenie z resztą

? divrem(841,160)

%1 = [5, 41]~

? divrem(2987634211432123123,8765392)

%2 = [340844335476, 5476531]~

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 45

Page 47: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Algorytm Euklidesa — NWD(a, b)

? gcd(841,160)

%2 = 1

? gcd(2987634211432123123,8765392)

%3 = 1

? gcd(739834587231984763212876546,497563772132052)

%4 = 6

Rozszerzony algorytm Euklidesa

? bezout(841,160)

%4 = [-39, 205, 1]

? bezout(2987634211432123123,8765392)

%5 = [2987931, -1018419356145006986, 1]

Odwrotność modulo n

? Mod(160,841)^(-1)

%6 = Mod(205, 841)

? lift(Mod(160,841)^(-1))

%7 = 205

? Mod(8765392,2987634211432123123)^(-1)

%8 = Mod(1969214855287116137,2987634211432123123)

? 2987634211432123123-1018419356145006986

%9 = 1969214855287116137

Małe twierdzenie Fermata

? isprime(1231)

%10 = 1

? gcd(1231,5871)

%11 = 1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 46

Page 48: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

? Mod(5871^1230, 1231)

%12 = Mod(1, 1231)

? Mod(5871,1231)^1230

%13 = Mod(1, 1231)

? Mod(40547201659, 85115991299)^85115991298

%14 = Mod(1, 85115991299)

? Mod(461730729350412, 2461654953439061)^2461654953439060

%15 = Mod(1, 2461654953439061)

Chińskie twierdzenie o resztach

? a=Mod(1,11)

%16 = Mod(1, 11)

? b=Mod(2,12)

%17 = Mod(2, 12)

? c=Mod(3,13)

%18 = Mod(3, 13)

? d=chinese(a,b)

%19 = Mod(122, 132)

? chinese(c,d)

%20 = Mod(1706, 1716)

Funkcja Eulera

? eulerphi(841)

%21 = 812

? factorint(841)

%22 =

[29 2]

? eulerphi(1231)

%23 = 1230

? isprime(1231)

%24 = 1

? eulerphi(1000)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 47

Page 49: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

%25 = 400

? eulerphi(1200)

%26 = 320

Potęgowanie modulo n

? lift(Mod(7,1234)^698)

%27 = 287

? Mod(461730729350412,2461654953439061)^2461654953439060

%28 = Mod(1, 2461654953439061)

Liczby pierwsze

? primes(10)

%31 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

? prime(1000)

%32 = 7919

? nextprime(10^30)

%34 = 1000000000000000000000000000057

? nextprime(random(10^30))

%35 = 425170039833680733833237536681

? isprime(%35)

%36 = 1

Symbol Jacobiego

? kronecker(91,167)

%37 = -1

? kronecker(7,167)

%38 = 1

? for(a=1,167,if(Mod(a,167)^2==7,print1(a, " ")))

72 95

? kronecker(13,167)

%39 = -1

? kronecker(6,7)

%40 = -1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 48

Page 50: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

? kronecker(11,13)

%41 = -1

? kronecker(1298761665416551551,978698532176519876166511871)

%42 = 1

Logarytm dyskretny

? znprimroot(19)

%43 = Mod(2, 19)

? znorder(Mod(2,19))

%44 = 18

? znlog(13,Mod(2,19))

%45 = 5

? znlog(15,Mod(2,19))

%46 = 11

? znprimroot(966099377)

%47 = Mod(3, 966099377)

? znlog(124332,Mod(3, 966099377)

%48 = 120589994

? Mod(3, 966099377)^120589994

%49 = Mod(124332, 966099377)

RSA

? p=1123;q=1237;n=p*q

%50 = 1389151

? phin=eulerphi(n)

%51 = 1386792

? e=834781

%52 = 834781

? gcd(e,phin)

%53 = 1

? d=lift(Mod(e,phin)^(-1))

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 49

Page 51: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

%54 = 1087477

? m=983415

%55 = 983415

? c=lift(Mod(m,n)^e)

%56 = 190498

? lift(Mod(c,n)^d)

%57 = 983415

? p=nextprime(random(10^25))

%60 = 6394410543977819029567513

? q=nextprime(random(10^24))

%61 = 574229193973116022705411

? n=p*q

%62 = 3671857212601577387349834975533584930459534912843

? phin=(p-1)*(q-1)

%63 = 3671857212601577387349828006893846979524482639920

? e=random(10^10)

%64 = 6534579775

? while(gcd(e,phin)!=1,e=e+1)

? e

%65 = 6534579779

? d=lift(Mod(e,phin)^(-1))

%66 = 1069086500747478961348196600845385395334981162219

? m=random(10^30)

%67 = 446763233106745131823069978264

? c=lift(Mod(m,n)^e)

%68 = 3660713787402446328285407380637449653485548656400

? lift(Mod(c,n)^d)

%69 = 446763233106745131823069978264

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 50

Page 52: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Algorytm ElGamala

U podstaw działania algorytmu ElGamala leży matematycznyproblem logarytmu dyskretnego.

• Wybór kluczaWybieramy odpowiednio dużą liczbę pierwszą p, taką, żeobliczenie logarytmu dyskretnego jest praktycznie niewy-konalne, wybieramy liczbę całkowitą 0 < a < p − 1 orazliczbę g, następnie obliczamy b ≡ ga (mod p). Liczby{b, g, p} stanowią klucz publiczny, zaś liczby {a, g, p} kluczprywatny.

• SzyfrowanieAby zaszyfrować wiadomość M wybieramy losowo liczbęk względnie pierwszą z p− 1, a następnie obliczamy

c1 ≡ gk (mod p)

c2 ≡ M bk (mod p)

Para liczb c1 i c2 tworzy kryptogram, który jest dwukrot-nie dłuższy od tekstu jawnego.

• Deszyfrowanie

M = c2(ca1)

−1 (mod p)

• Uzasadnieniec2(c

a1)−1 ≡M bk(gka)−1 ≡Mgka(gka)−1 ≡M (mod p)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 51

Page 53: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Prosty przykładZnajdowanie kluczaNiech p = 229 i g = 6, wybieramy a = 70, wtedy b ≡ 670

(mod 229) = 97, zatem klucz publiczny stanowią liczby

{97, 6, 229}, zaś klucz prywatny stanowią liczby {70, 6, 229}

SzyfrowanieNiech wiadomość M = 130, wybieramy k = 127 takie, że

NWD(127, 228) = 1 (liczby tej nie ujawniamy)

c1 ≡ 6127 (mod 229) = 155

c2 ≡ 130 · 97127 (mod 229) = 169

Deszyfrowanie

M = 169 · (15570)−1 (mod 229) ≡ 169 · 36 (mod 229) = 130

PARI/GP

? p=229;a=70;

? g=znprimroot(p)

%1 = Mod(6, 229)

? b=lift(g^a)

%2 = 97

? M=130;k=127;

? gcd(k,p-1)

%3 = 1

? c1=lift(g^k)

%4 = 155

? c2=lift(Mod(M*b^k,p))

%5 = 169

? lift(Mod(c2*c1^(-a),p))

%6 = 130

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 52

Page 54: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Jednokierunkowe funkcje hashujące (skrótu)

• dla każdego X łatwo jest obliczyć H(X)

• H(X) ma taką samą długość dla wszystkich tekstów X

• dla zadanego Y znalezienie takiego X, że H(X) = Y jestpraktycznie niemożliwe; funkcja jednokierunkowa

• dla danego X trudno znaleźć X ′ takie, że H(X) = H(X ′);funkcja słabo bezkonfliktowa

• nie jest praktycznie możliwe znalezienie X i X ′ takich, żeX 6= X ′ oraz H(X) = H(X ′); funkcja silnie bezkonflik-towa

Typowe zastosowania

• Przechowywanie haseł w komputerach

• Ochrona integralności danych

Algorytm MD5 (Message Digest)

Algorytm, zaprojektowany przez Rivesta, jest modyfikacjąwcześniejszego algorytmu MD4. Wiadomość dowolnej dłu-gości jest przekształcona w jej 128 bitowy „odcisk palca”(sumę kontrolną, skrót wiadomości). Zasadnicza proceduraalgorytmu działa na blokach 512 bitowych przekształcając jew 128 bitowe skróty.

Etapy MD5

• Krok 1Wiadomość dowolnej długości jest uzupełniana w taki

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 53

Page 55: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

sposób, że na końcu dodawany jest bit „1” i odpowiedniailość zer, tak aby ostatni blok miał długość 448 bitów.

• Krok 2Do ostatniego bloku dodawana jest 64 bitowa liczbareprezentująca długość wiadomości (w bitach) i w tensposób przygotowana wiadomość ma długość będącącałkowitą wielokrotnością 512 bitów. Tym samym wia-domość jest wielokrotnością 16 słów 32-bitowych. NiechM0,M1, . . .MN−1 oznaczają kolejne słowa wiadomości,gdzie N jest jest wielokrotnością 16.

• Krok 3Algorytm operuje na 32-bitowych zmiennych a, b, c, d,których wartości początkowe A,B,C,D w zapisie szes-nastkowym są następujące:A =0x67452301B =0xefcdab89C =0x98badcfeD =0x10325476

• Krok 4Główna pętla algorytmu składa się z 4 rund, w każdejrundzie 16 razy wykonywane są operacje na 32 bitowychsłowach. Operacje te zdefiniowane są przez 4 funkcjeF (X,Y, Z) = (X ∧ Y ) ∨ (¬X) ∧ ZG(X,Y, Z) = (X ∧ Z) ∨ Y ∧ (¬X)H(X,Y, Z) = X ⊕ Y ⊕ ZI(X,Y, Z) = Y ⊕ (X ∨ (¬Z))

gdzie ⊕ oznacza operację xor, ∧ operację and, ∨ operacjęor, zaś ¬ operację not.

0⊕ 0 = 0 0 ∧ 0 = 0 0 ∨ 0 = 0 ¬0 = 10⊕ 1 = 1 0 ∧ 1 = 0 0 ∨ 1 = 1 ¬1 = 01⊕ 0 = 1 1 ∧ 0 = 0 1 ∨ 0 = 11⊕ 1 = 0 1 ∧ 1 = 1 1 ∨ 1 = 1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 54

Page 56: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Niech Xj = Mi∗16+j oznacza j-te słowo w i-tym blokuwiadomości M (j = 0, . . . , 15, i = 0, . . . , N/16 − 1),←֓ s niech oznacza cykliczne przesunięcie w lewo o s

bitów oraz zdefiniujmy liczby Tk (k = 1, . . . , 64) tak, żeTk = ⌊232 · | sink|⌋, gdzie k jest w radianach. Mamy wtedy:

⋆ Runda 1Niech [abcd j s k] oznacza operacjęa = b+ ((a+ F (b, c, d) +Xj + Tk) ←֓ s),wtedy 16 operacji tej rundy to:

[abcd 0 7 1] [dabc 1 12 2] [cdab 2 17 3] [bcda 3 22 4][abcd 4 7 5] [dabc 5 12 6] [cdab 6 17 7] [bcda 7 22 8][abcd 8 7 9] [dabc 9 12 10] [cdab 10 17 11] [bcda 11 22 12][abcd 12 7 13] [dabc 13 12 14] [cdab 14 17 15] [bcda 15 22 16]

⋆ Runda 2Niech [abcd j s k] oznacza operacjęa = b+ ((a+G(b, c, d) +Xj + Tk) ←֓ s),wtedy 16 operacji tej rundy to:

[abcd 1 5 17] [dabc 6 9 18] [cdab 11 14 19] [bcda 0 20 20][abcd 5 5 21] [dabc 10 9 22] [cdab 15 14 23] [bcda 4 20 24][abcd 9 5 25] [dabc 14 9 26] [cdab 3 14 27] [bcda 8 20 28][abcd 13 5 29] [dabc 2 9 30] [cdab 7 14 31] [bcda 12 20 32]

⋆ Runda 3Niech [abcd j s k] oznacza operacjęa = b+ ((a+H(b, c, d) +Xj + Tk) ←֓ s),wtedy 16 operacji tej rundy to:

[abcd 5 4 33] [dabc 8 11 34] [cdab 11 16 35] [bcda 14 23 36][abcd 1 4 37] [dabc 4 11 38] [cdab 7 16 39] [bcda 10 23 40][abcd 13 4 41] [dabc 0 11 42] [cdab 3 16 43] [bcda 6 23 44][abcd 9 4 45] [dabc 12 11 46] [cdab 15 16 47] [bcda 2 23 48]

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 55

Page 57: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ Runda 4Niech [abcd j s k] oznacza operacjęa = b+ ((a+ I(b, c, d) +Xj + Tk) ←֓ s),wtedy 16 operacji tej rundy to:

[abcd 0 6 49] [dabc 7 10 50] [cdab 14 15 51] [bcda 5 21 52][abcd 12 6 53] [dabc 3 10 54] [cdab 10 15 55] [bcda 1 21 56][abcd 8 6 57] [dabc 15 10 58] [cdab 6 15 59] [bcda 13 21 60][abcd 4 6 61] [dabc 11 10 62] [cdab 2 15 63] [bcda 9 21 64]

⋆ Po tych 4 rundach wartości a, b, c, d są dodawane dowartości A,B,C,D i algorytm przechodzi do następ-nego bloku M .

Runda 1 Runda 2 Runda 3 Runda 4

Blok wiadomości M (512 bitów)

F G H I

A A

B B

C C

D D

Rysunek 5: Główna pętla algorytmu MD5

• Krok 5Po przejściu wszystkich 512-bitowych bloków wiadomościM algorytm łączy rejestry a, b, c, d dając 128 bitową liczbębędącą wartością funkcji hashującej.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 56

Page 58: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

SHA (Secure Hash Algorithm)

Algorytm opracowany przez NIST przy udziale NSA opu-blikowany w 1993. Nowsza wersja SHA-1 opublikowana w1995 r. Idea tego algorytmu oparta jest na MD4 i MD5.Wartość funkcji hashującej to liczba 160 bitowa i w związkuz tym algorytm wymaga 5 rejestrów zamiast 4. Używa teżw nieco inny sposób nieliniowych funkcji transformujących,dokonuje dodatkowych operacji na poszczególnych słowachwiadomości, w każdej rundzie wykonuje 20 operacji zamiast16. Zasada działania jest jednak bardzo podobna do MD5.Ogólnie uważa się, że jest bezpieczniejszy niż MD5 ze względuna „dłuższą” wartość funkcji hashującej i pewne ulepszeniasamego algorytmu.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 57

Page 59: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Szyfrowanie strumieniowe i generatoryciągów pseudolosowych

• Synchroniczne szyfrowanie strumienioweCiąg bitów klucza generowany jest niezależnie od szyfro-wanej wiadomości i kryptogramu.

⋆ Musi być zachowana synchronizacja pomiędzy nadawcąi odbiorcą.

⋆ Zmiana bitu kryptogramu (przekłamanie) nie wpływana możliwość deszyfrowania pozostałych bitów.

⋆ Dodanie lub usunięcie bitu powoduje utratę synchroni-zacji.

⋆ Istnieje możliwość zmiany wybranych bitów kryp-togramu, a co za tym idzie zmiany deszyfrowanejwiadomości.

GKGKKK kiki

mi

mici

ci

(a) Szyfrowanie (b) Deszyfrowanie

Rysunek 6: Model synchronicznego szyfrowania strumieniowego

z dodawaniem modulo 2 (⊕), GK jest generatorem ciągu bitów

klucza, zaś K jest kluczem inicjalizującym generator

Tekst jawny szyfrowany jest bit po bicie (one-time pad).

Losowo generowane bity k1, k2, . . . , ki stanowią bity klucza,

które są dodawane modulo 2 (operacja xor) do bitów wia-

domości m1,m2, . . . ,mi w sposób ciągły dając kolejne bity

kryptogramu c1, c2, . . . , ci, gdzie ci = mi ⊕ ki

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 58

Page 60: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Samosynchronizujące (asynchroniczne) szyfrowa-nie strumieniowe

⋆ CFB (Cipher Feedback) z blokiem jednobitowym

⋆ Utrata lub dodanie bitu w kryptogramie powodujeutratę tylko kawałka wiadomości — samosynchroniza-cja.

⋆ Ograniczona propagacja błędów.

⋆ Zmiana bitu kryptogramu powoduje, że kilka innychbitów będzie deszyfrowanych błędnie — łatwiej wykryćtaką zmianę.

⋆ Jednak na skutek samosynchronizacji wykrycie zmianw kryptogramie jest trudniejsze (jeśli zmiany dotyczątylko części kryptogramu, to dalsza część jest deszyfro-wana poprawnie).

b1 b1bn−2 bn−2bn−1 bn−1bn bn

GGKK ki ki

mi

mici

ci

(a) Szyfrowanie (b) Deszyfrowanie

. . . . . .. . . . . .

Rejestr przesuwający Rejestr przesuwający

Rysunek 7: Model samosynchronizującego szyfrowania strumie-

niowego

• Generatory ciągów pseudolosowychDo generowania klucza potrzebny jest generator losowegociągu bitów. Generowanie prawdziwie losowego ciągujest trudne, więc zwykle stosuje się ciągi pseudolosowe.Ciągi pseudolosowe to ciągi, które spełniają statystycznewłasności ciągów losowych, ale generowane są w sposób

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 59

Page 61: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

deterministyczny: generator startujący z takiego samegostanu początkowego generuje taki sam ciąg bitów. Ztego względu ciągi pseudolosowe używane w kryptografiimuszą spełniać warunki znacznie ostrzejsze niż np. ciągipseudolosowe używane w symulacjach.

• LFSR — Linear Feedback Shift Register (Rejestrprzesuwający z liniowym sprzężeniem zwrotnym)

b1b2b3b4b5b6b7bn−3bn−2bn−1bn . . . . . .

Rejestr przesuwającyGenerowane bity

Rysunek 8: Generowanie ciągu bitów za pomocą LFSR

⋆ LFSR posiada rejestr przesuwający o długości n bitów,który na początku zawiera losowe bity.

⋆ Niektóre bity rejestru są poddawane operacji xor (⊕)i wynik zastępuje najstarszy bit rejestru, jednocześniepozostałe bity przesuwane są o jedną pozycję w prawo inajmłodszy bit staje się kolejnym bitem generowanegociągu.

Przykład:

Weźmy rejestr 4-bitowy, którego pierwszy i czwarty bit są

poddawane operacji xor i niech początkowo rejestr zawiera

same jedynki. Wtedy otrzymujemy następujące stany rejestru:

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 60

Page 62: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

1 1 1 10 1 1 11 0 1 10 1 0 11 0 1 01 1 0 10 1 1 00 0 1 11 0 0 10 1 0 00 0 1 00 0 0 11 0 0 01 1 0 01 1 1 0

Generowany ciąg to najmłodsze (prawe) bity kolejnych stanów

rejestru, czyli:

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .

Ponieważ n-bitowy rejestr może znaleźć się w jednym z 2n − 1

stanów, więc teoretycznie może on generować ciąg o długości

2n − 1 bitów. Potem ciąg się powtarza. (Wykluczamy ciąg

samych zer, który daje niekończący się ciąg zer)

• LFSR ma słabą wartość kryptograficzną gdyż znajomość2n kolejnych bitów ciągu pozwala na znalezienie wartościgenerowanych od tego miejsca.

• LFSR działa jednak bardzo szybko, zwłaszcza jeśli jestto układ hardware’owy, i stąd jest on bardzo atrakcyjnyw praktycznych zastosowaniach. Można konstruowaćbardziej skomplikowane układy zawierające kilka LFSRi nieliniową funkcję f przekształcającą bity generowaneprzez poszczególne LFSR.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 61

Page 63: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Generowany ciag

LFSR 1

LFSR 2

LFSR n

f

Rysunek 9: Układ złożony z wielu LFSR

Przykład: Generator Geffe

LFSR 1

LFSR 2

LFSR 3

f(x1, x2, x3)

x1

x2

x3

¬x2 ∧ x3

x1 ∧ x2

Rysunek 10: Generator Geffe: f(x1, x2, x3) = (x1 ∧ x2)⊕ (¬x2 ∧ x3)

⋆ Generator Geffe ma słabe własności kryptograficzne zewzględu na korelacje pomiędzy generowanymi bitami i

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 62

Page 64: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

bitami LFSR 1 lub LFSR 2Niech y(t) = f(x1(t), x2(t), x3(t)), wtedy

P (y(t) = x1(t)) = P (x2(t) = 1) + P (x2(t) = 0) · P (x3(t) =

x1(t)) = 12

+ 12· 1

2= 3

4, i podobnie dla x3(t).

• Generatory sterowane zegaremGenerator o zmiennym kroku (alternating step gene-rator)

LFSR 1

LFSR 2

LFSR 3

Zegar Generowane bity

Rysunek 11: Generator o zmiennym kroku

⋆ LFSR 1 jest przesuwany w każdym takcie zegara.

⋆ Jeśli na wyjściu LFSR 1 jest 1 to LFSR 2 jest przesu-wany; LFSR 3 nie jest przesuwany (poprzedni bit jestpowtarzany).

⋆ Jeśli na wyjściu LFSR 1 jest 0 to LFSR 3 jest przesu-wany; LFSR 2 nie jest przesuwany (poprzedni bit jestpowtarzany).

⋆ Wyjściowe bity LFSR 2 i LFSR 3 są dodawane modulo2 (⊕) dając kolejny bit generowanego ciągu.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 63

Page 65: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Shrinking generator

LFSR 1

LFSR 2

Zegar

ai

biwyślij bi jeżeli ai = 1

opuść bi jeżeli ai = 0

Rysunek 12: Shrinking generator

• Generatory, których bezpieczeństwo oparte jest natrudnościach obliczeniowychGenerator Blum-MicaliW generatorze tym wykorzystuje się trudność w obliczaniulogarytmu dyskretnego. Wybieramy dwie liczby pierwszea i p oraz liczbę x0 (zarodek), a następnie obliczamy

xi+1 = axi mod p dla i = 1, 2, 3, . . .

Pseudolosowy ciąg bitów tworzymy w następujący sposób:

ki =

1 jeżeli xi < (p− 1)/2

0 w przeciwnym przypadku

Generator RSAGenerator oparty na trudności z faktoryzacją liczb.Wybieramy dwie liczby pierwsze p i q (N = pq) oraz liczbęe względnie pierwszą z (p − 1)(q − 1). Wybieramy losową

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 64

Page 66: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

liczbę (zarodek) x0 mniejszą od N , a następnie obliczamy

xi+1 = xei (mod N)

generowanym bitem jest najmłodszy bit xi

Generator Blum-Blum-Shub — BBSZnajdujemy dwie duże liczby pierwsze p i q, takie, że p ≡ 3

(mod 4) oraz q ≡ 3 (mod 4); N = pq. Wybieramy losowąliczbę x względnie pierwszą z N , a następnie obliczamy

x0 = x2 (mod N)

x0 stanowi zarodek dla generatora. Teraz liczymy

xi+1 = x2i (mod N)

Generowanym bitem ki jest najmłodszy bit xi+1.

• Generator RC 4Generator RC 4 został opracowany przez Rona Rivestaw 1987 r. Przez kilka lat był to algorytm tajny. W1994 r. ktoś w Internecie opublikował program realizującyten algorytm. Od tego czasu algorytm nie stanowitajemnicy. Algorytm ten pracuje w trybie OFB (OutputFeedback). Ciąg generowany przez RC 4 jest losowymciągiem bajtów.

⋆ Algorytm używa dwóch wskaźników i, j przyjmują-cych wartości 0, 1, 2, . . . , 255 oraz S-boksu z warto-ściami S0, S1, . . . , S255, które tworzą permutację liczb0, 1, . . . , 255.

⋆ Inicjalizacja: Na początku i = j = 0, Sl = l dlal = 0, 1, . . . , 255, kolejna 256-bajtowa tablica wy-pełniana jest bajtami klucza, przy czym klucz jest

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 65

Page 67: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

używany wielokrotnie, aż do wypełnienia całej tablicyK0,K1, . . . ,K255. Następnie wykonujemy:for i = 0 to 255:j = (j + Si +Ki) (mod 256)

zamień Si z Sj

⋆ Generowanie kolejnego bajtu:i = i+ 1 (mod 256)

j = j + Si (mod 256)

zamień Si z Sj

l = Si + Sj (mod 256)

K = Sl

⋆ Otrzymany bajt K jest dodawany modulo 2 (xor)z kolejnym bajtem wiadomości dając kolejny bajtkryptogramu (przy deszyfrowaniu role tekstu jawnego ikryptogramu się zamieniają).

Algorytm RC 4 jest używany w wielu programach komer-cyjnych.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 66

Page 68: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Podpis cyfrowy

Przypomnijmy:System kryptograficzny z kluczem publicznym może byćwykorzystany do podpisywania dokumentów cyfrowych.

1. Alicja szyfruje dokument używając swojego kluczaprywatnego, podpisując w ten sposób dokument

2. Alicja przesyła tak podpisany dokument do Bolka

3. Bolek deszyfruje dokument używając klucza publicznegoAlicji, weryfikując w ten sposób podpis Alicji

• Uwagi:

⋆ podpis jest prawdziwy; Bolek weryfikuje go deszyfrująckryptogram kluczem publicznym Alicji

⋆ podpis nie może być sfałszowany; tylko Alicja zna jejklucz prywatny

⋆ podpis nie może być przeniesiony do innego dokumentu

⋆ podpisany dokument nie może być zmieniony; zmie-niony dokument nie da się rozszyfrować kluczempublicznym Alicji

⋆ podpis jest niezaprzeczalny;

⋆ wadą tego sposobu podpisywania dokumentów jestjednak to, że podpis jest conajmniej tak długi jak samdokument

Podpis z wykorzystaniem jednokierunkowej funkcjihashującej

1. Alicja używa funkcji hashującej do dokumentu, który mapodpisać, otrzymując skrót („odcisk palca”) dokumentu

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 67

Page 69: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

2. Alicja podpisuje skrót dokumentu szyfrując go swoimkluczem prywatnym

3. Alicja przesyła Bolkowi dokument i podpisany skrót

4. Bolek używa tej samej funkcji hashującej do otrzymaniaskrótu dokumentu, a następnie deszyfruje podpisanyskrót używając klucza publicznego Alicji; jeśli zdeszy-frowany skrót zgadza się z otrzymanym przez niego topodpis jest prawdziwy

⋆ podpis jest znacznie krótszy od dokumentu

⋆ można sprawdzić istnienie podpisu bez oglądaniasamego dokumentu

Schemat ElGamala podpisu cyfrowego

• Generowanie kluczy⋆ Alicja wybiera dużą liczbę pierwszą p oraz liczbęg ∈ Zp (generator grupy multiplikatywnej Z

∗p)

⋆ Alicja wybiera liczbę losową 0 < a < p − 1 orazoblicza b ≡ ga (mod p)

⋆ Kluczem publicznym Alicji są liczby {b, g, p} zaśkluczem prywatnym liczby {a, g, p}

• Podpisywanie⋆ Alicja wybiera liczbę losową k (tajną), taką, że

0 < k < p− 1 oraz NWD(k, p− 1) = 1

⋆ Alicja oblicza

r = gk (mod p),

k−1 (mod p− 1),

s = k−1 [H(M)− ar] (mod p− 1).⋆ Podpisem Alicji dla wiadomości M jest para liczb{r, s}

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 68

Page 70: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Weryfikacja

⋆ Bolek aby stwierdzić prawdziwość podpisu Alicjipobiera klucz publiczny Alicji {b, g, p}

⋆ Bolek sprawdza czy 0 < r < p, jeśli nie, podpis niejest prawdziwy

⋆ Bolek obliczax1 = brrs (mod p),

x2 = gH(M) (mod p).⋆ Bolek akceptuje podpis jeśli x1 = x2

• UzasadnieniePonieważ s ≡ k−1 [H(M)− ar] (mod p − 1), to mnożąc

stronami przez k mamy ks ≡ H(M)− ar (mod p− 1) i po

przekształceniu H(M) ≡ ar+ ks (mod p− 1), a co za tym

idzie gH(M) ≡ gar+ks ≡ (ga)rrs ≡ brrs (mod p). Tak więc

x1 = x2.

DSA — Digital Signature Algorithm

Algorytm podpisu cyfrowego zatwierdzony w 1994 r. przezNIST jako standard podpisu cyfrowego w USA (DigitalSignature Standard — DSS). Wykorzystuje funkcję hashującąSHA-1.

• Generacja klucza

⋆ Alicja wybiera liczbę pierwszą q o długości 160 bitów

⋆ Alicja wybiera liczbę pierwszą p o długości 512 ≤ l ≤1024, przy czym 64|l, taką, że q|p− 1

⋆ Alicja wybiera element g ∈ Zp i obliczab = g(p−1)/q (mod p);jeśli b = 1 to wybiera inne g.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 69

Page 71: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ Alicja wybiera liczbę losową a, 0 < a < q, i obliczac = ba (mod p)

⋆ Kluczem publicznym Alicji jest zbiór liczb {b, c, p, q}• Podpisywanie

⋆ Alicja wybiera tajną liczbą losową k, 0 < k < q,

⋆ Alicja oblicza

r = (bk (mod p)) (mod q),

k−1 (mod q),

s = k−1 [H(M) + ar] (mod q).

⋆ Podpisem Alicji dla wiadomości M jest para liczb {r, s}• Weryfikacja

⋆ Bolek pobiera klucz publiczny Alicji {b, c, p, q}⋆ Bolek sprawdza czy 0 < r < q i 0 < s < q, jeśli nie, to

podpis jest fałszywy

⋆ Bolek obliczaH(M) i w = s−1 (mod q),

u1 = wH(M) (mod q),

u2 = rw (mod q),

v = (bu1cu2 (mod p)) (mod q).⋆ Bolek uznaje podpis za prawdziwy jeśli v = r.

• UzasadnienieJeśli {r, s} jest prawdziwym podpisem Alicji dla wiadomości

M , to H(M) ≡ −ar + ks (mod q). Mnożąc stronami przez w i

przekształcając otrzymujemy wH(M) + arw ≡ k (mod q), co

jest równoważne u1 + au2 ≡ k (mod q). Podnosząc b do potęgi

lewej i prawej strony tej kongruencji otrzymujemy

(bu1+au2 (mod p)) (mod q) ≡ (bk (mod p)) (mod q) i dalej

mamy

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 70

Page 72: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

(bu1cu2 (mod p)) (mod q) ≡ (bk (mod p)) (mod q), a to

oznacza v = r.

Ślepe podpisy cyfrowe

Zasadniczym założeniem protokołów podpisów cyfrowychjest, że podpisujący dokument wie co podpisuje. Nie na-leży podpisywać dokumentów wyglądających na losowy ciągbitów. Od powyższej zasady są jednak odstępstwa. Przypu-śćmy, że Bolek jest notariuszem, zaś Alicja chce aby Bolekpotwierdził notarialnie istnienie dokumentu, ale nie chce abyten dokument obejrzał. Mamy wtedy do czynienia z tzw.ślepym podpisem. Wyobraźmy sobie, że Alicja wkłada listdo koperty łącznie z kalką, a potem prosi Bolka o złożeniepodpisu na zaklejonej kopercie. Po otwarciu koperty na liściebędzie kopia podpisu Bolka. Cyfrowo ślepy podpis możnazrealizować korzystając np. z algorytmu RSA.

• Ślepy podpis z użyciem RSA

⋆ Alicja pobiera klucz publiczny Bolka {e, n}⋆ Alicja wybiera liczbę losową k, 0 < k < n,

⋆ Alicja oblicza z = M ke (mod n) i przesyła z do Bolka

⋆ Bolek oblicza zd = (M ke)d (mod n) używając swojegoklucza prywatnego {d, n} i wynik przesyła Alicji

⋆ Alicja oblicza s = zd/k (mod n). Ponieważ zd ≡(M ke)d ≡ Mdk (mod n), więc zd/k = Mdk/k ≡ Md

(mod n), czyli s = Md (mod n) jest podpisem Bolkana wiadomości M .

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 71

Page 73: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Niezaprzeczalne podpisy cyfrowe

Podpis niezaprzeczalny nie może być sprawdzony bez zgodyosoby podpisującej. Podpisujący nie może się wyprzećswojego podpisu, ale może także dowieść, że podpis jestfałszywy (jeśli jest).

• Niezaprzeczalny podpis oparty na logarytmachdyskretnychPrzypuśćmy, że stroną podpisującą dokument jest Alicja.

⋆ Generacja kluczaAlicja posiada klucz prywatny {a, g, p} oraz kluczpubliczny {b, g, p} wygenerowany jak w algorytmieElGamala.

⋆ PodpisywanieAlicja oblicza z = Ma (mod p) i to jest jej podpis dladokumentu M

⋆ Weryfikacja

1. Bolek wybiera dwie liczby losowe r i s mniejsze od p,oblicza w = zrbs (mod p) i przesyła Alicji

2. Alicja oblicza

t = a−1 (mod p− 1)

v = wt (mod p)

i przesyła Bolkowi v3. Bolek sprawdza czy v = Mrgs (mod p)

⋆ UzasadnienieZauważmy, że v = wt = zrtbst = (zt)r(bt)s = (Mat)r(gat)s =

Mrgs (mod p)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 72

Page 74: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Uwierzytelnianie

Kluczową sprawą dla bezpieczeństwa systemów kompute-rowych jest zapewnienie dostępu do systemu i zasobówtylko osobom do tego uprawnionym. W systemie musi więcbyć wbudowany mechanizm sprawdzania, czy użytkownikpodający się za Alicję, naprawdę nią jest. Do tego celusłuży mechanizm uwierzytelniania lub identyfikacji (tutaj nierozróżniamy tych pojęć, chociaż czasem się je rozróżnia).

• HasłaNajczęściej stosowany system identyfikacji to system haseł.Alicja chcąc wejść do sytemu podaje tajne hasło znanetylko jej i systemowi.

⋆ Hasła w systemie Unix szyfrowane są programemcrypt, który stanowi pewną modyfikację DES. Użyt-kownik wybiera ośmioliterowe hasło. Z każdego bajtureprezentującego literę hasła wybieranych jest 7 bitów,które w rezultacie tworzą 56 bitowy klucz. Kluczten służy do szyfrowania 64 bitowego bloku znanegotekstu (zwykle same zera). Wynik podlega kolejnemuszyfrowaniu, i tak 25 razy. Dodatkowo używa się 12bitów („salt”) generowanych przez zegar systemowy wmomencie tworzenia hasła. Bity te są wykorzystanew permutacji rozszerzającej DES. Wynik szyfrowania(64 bity) plus „salt” (12 bitów) jest „przepakowany” izapisywany w postaci 11 znaków ASCII. Hasło prze-chowywane jest w postaci 13 znaków ASCII, którezawierają dwa znaki „salt” oraz 11 znaków zaszyfro-wanego hasła. Dodanie 12 bitów „salt” powoduje, że

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 73

Page 75: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

liczba możliwości dla wybranego hasła zwiększa się212 = 4096 razy.

⋆ W nowszych systemach stosuje się bezpieczniejszesposoby szyfrowania haseł, np. algorytm MD5

• PIN — Personal Identification NumberOdmianą hasła jest także PIN używany w przypadkukart kredytowych, bankowych, czy tzw. tokenów. Jestto zwykle liczba czterocyfrowa (czasem ośmiocyfrowa),która ma zabezpieczać przed użyciem karty przez osobyniepowołane, np. złodzieja.

• Protokół challenge-responseIdea tego sposobu identyfikacji polega na odpowiedzi Alicjina wyzwanie przesłane przez Bolka, która przekona Bolka,że ma do czynienie rzeczywiście z Alicją.

⋆ Protokół challenge-response z tajnym kluczem

1. Alicja i Bolek dysponują takim samym tajnymkluczem K (algorytm symetryczny) oraz umówili sięjakiej funkcji hashującej H będą używać.

2. Alicja komunikuje się z Bolkiem przedstawiając sięjako Alicja

3. Bolek generuje liczbę losową rB i wysyła ją Alicji4. Alicja oblicza H(K, rB) i przesyła wynik Bolkowi5. Bolek także oblicza H(K, rB) i jeśli wynik zgadza

się z wynikiem przysłanym przez Alicję to tożsamośćAlicji zostaje potwierdzona

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 74

Page 76: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ Protokół challenge-response z kluczem publicz-nym

1. Alicja komunikuje się z Bolkiem przedstawiając sięjako Alicja

2. Bolek generuje liczbę losową rB i wysyła ją Alicji3. Alicja szyfruje liczbę rB używając swojego klucza

prywatnego i kryptogram wysyła do Bolka4. Bolek deszyfruje kryptogram otrzymany od Alicji

używając jej klucza publicznego i jeśli w wynikuotrzyma rB to tożsamość Alicji jest potwierdzona

• Dowody z wiedzą zerową

D

W

Rysunek 13: Jaskinia

⋆ Alicja chce przekonać Bolka, że zna pewien sekret, alenie chce zdradzić samego sekretu. Alicja twierdzi, żepotrafi otworzyć drzwi zamykające przejście w jaskini.

⋆ Bolek stoi przy wejściu do jaskini

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 75

Page 77: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ Alicja wchodzi do jaskini i idzie albo w lewo albo wprawo dochodząc do drzwi zamykających przejście

⋆ Bolek dochodzi do rozwidlenia korytarza, rzuca monetąi w zależności od wyniku rzutu krzyczy, nakazującAlicji wyjść albo z lewego korytarza albo z prawego

⋆ Alicja wykonuje polecenie Bolka, otwierając drzwi jeślito konieczne

⋆ Doświadczenie takie powtarzają n-krotnie. Jeśli n jestdostatecznie duże, to prawdopodobieństwo tego, żeAlicja wykona polecenie Bolka nie potrafiąc otworzyćdrzwi jest znikomo małe (1/2n).

• Dowód o wiedzy zerowej dla logarytmu dyskret-negoAlicja chce przekonać Bolka, że zna wartość logarytmudyskretnego bez zdradzanie tej wartości. Czyli chce udo-wodnić, że zna liczbę x, która spełnia zależność ax = b

(mod p), gdzie p jest dużą liczbą pierwszą. Oboje znająp, a, b, natomiast Bolek nie zna x.

⋆ Alicja generuje t liczb losowych r1, r2, . . . , rt mniejszychod p− 1

⋆ Alicja oblicza hi ≡ ari (mod p) i przesyła je Bolkowi

⋆ Alicja i Bolek wspólnie rzucają t razy monetą generującw ten sposób t bitów b1, b2, . . . , bt

⋆ Dla wszystkich bitów Alicja oblicza i przesyła Bolkowinastępujące liczby

ri jeśli bi = 0

si = ri − rj jeśli bi = 1

gdzie j jest największą wartością, dla której bj = 1

⋆ Dla wszystkich bitów t Bolek sprawdza czy

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 76

Page 78: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

ari ≡ hi (mod p) dla bi = 0

asi ≡ hih−1j (mod p) dla bi = 1

⋆ Dla każdego i, dla którego bi = 1, Alicja oblicza iwysyła Bolkowizi = (x− ri) (mod p− 1)

⋆ Bolek sprawdza czy azi ≡ bh−1i (mod p)

• Protokół Fiata-ShamiraBezpieczeństwo tego protokołu opiera się na trudnościobliczeniowej pierwiastków kwadratowych modulo n, gdzien jest iloczynem dwóch liczb pierwszych. Protokół tenwymaga udziału strony trzeciej, zaufanego arbitra —Trusted Authority (TA)

⋆ TA wybiera dwie liczby pierwsze p i q, oblicza ichiloczyn n = pq

⋆ Alicja wybiera losową liczbę względnie pierwszą z n,oblicza liczbę v = s2 (mod n) i rejestruje u TA v jakoswój klucz publiczny

⋆ TA udostępnia liczby n i v jako identyfikatory tożsa-mości Alicji

⋆ Alicja wybiera losowo liczbę r względnie pierwszą z n,oblicza x = r2 (mod n) i wysyła x Bolkowi

⋆ Bolek wysyła Alicji losowy bit b

⋆ Alicja wysyła Bolkowi

r jeśli b = 0

y = r · s (mod n) jeśli b = 1

⋆ Bolek sprawdza czy

x = r2 (mod n) jeśli b = 0

y2 = x · v (mod n) jeśli b = 1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 77

Page 79: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Pierwsza równość dowodzi, że Alicja zna pierwiastekkwadratowy z x, druga natomiast dowodzi, że Alicjazna s. Protokół ten powtarza się t razy, wtedyprawdopodobieństwo oszustwa przez Alicję wynosi1/2t.

• Protokół SchnorraProtokół ten opiera się na problemie logarytmu dyskret-nego. Protokół wykorzystuje certyfikaty wydawane przezTA. W etapie wstępnym należy wybrać liczbę pierwszą poraz drugą liczbę pierwszą q taką, że q|p − 1. Liczby tepowinny być dostatecznie duże (np. p długości 1024 bitya q > 160 bitów. Wybieramy także liczbę b = g(p−1)/q,gdzie g jest generatorem Zp. Każda ze stron otrzymujeliczby {p, q, b} oraz klucz publiczny pozwalający weryfi-kować podpisy TA. Ponadto należy wybrać parametr t(t ≥ 40, 2t < q), który określa poziom bezpieczeństwa.

⋆ TA ustala tożsamość Alicji w konwencjonalny sposób iprzydziela jej identyfikator IA

⋆ Alicja wybiera losowo tajną liczbę a oraz obliczav = ba (mod p) i rejestruje v u TA

⋆ TA generuje podpis cyfrowy S(IA, v) oraz wydaje Alicjicertyfikat C = (IA, v, S(IA, v)) wiążący IA z v

⋆ Alicja wybiera liczbę losową r < q i obliczax = br (mod p)

⋆ Alicja przesyła Bolkowi certyfikat C oraz liczbę x

⋆ Bolek sprawdza klucz publiczny Alicji sprawdzającpodpis TA na certyfikacie

⋆ Bolek wybiera losowo liczbę k (1 ≤ k ≤ 2t) i wysyła jąAlicji (challenge)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 78

Page 80: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ Alicja sprawdza 1 ≤ k ≤ 2t i wysyła Bolkowiy = ak + r (mod q) (response)

⋆ Bolek oblicza z = byvk (mod p) i jeśli z = x uznaje, żetożsamość Alicji jest potwierdzona.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 79

Page 81: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Zarządzanie kluczami

• Generowanie kluczyDo wytwarzania kluczy najlepiej nadają się generatoryciągów losowych.Przykład: standard ANSI X9.17(Financial Institution Key Management)EDEK1,K2

(X) oznacza szyfrowanie 3-DES kluczamiK1,K2 liczby X. Niech V0 będzie tajną liczbą 64 bitową,a T znacznikiem czasu, wtedy klucz losowy Ri generujesię w następujący sposób:Ri = EDEK1,K2

(EDEK1,K2(Ti)⊕ Vi)

Vi+1 = EDEK1,K2(EDEK1,K2

(Ti)⊕Ri)

• Przesyłanie kluczyJeśli Alicja i Bolek zamierzają posługiwać się symetrycz-nym algorytmem kryptograficznym, to potrzebują tegosamego klucza. Alicja może wygenerować taki klucz uży-wając generatora ciągów losowych, ale pozostaje problemjak w bezpieczny sposób przekazać ten klucz Bolkowi.

• Przechowywanie kluczyNajbezpieczniejszym sposobem przechowywania kluczajest zapamiętanie go przez Alicję. Niestety sposób tenma tę wadę, że Alicja może zapomnieć taki klucz. Kluczemogą być przechowywane w pamięci ROM. Klucz takimoże być rozdzielony na połowy, z których jedna jestprzechowywana w terminalu a druga w pamięci ROM.W wielu sytuacjach istnieje konieczność przechowywaniakopii zapasowych klucza. Do tego celu wykorzystuje sięnp. karty inteligentne. Klucze na ogół mają strukturęhierarchiczną

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 80

Page 82: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ master keysklucze znajdujące się najwyżej w hierarchii, takie klu-cze nigdy nie są zmieniane. Taki klucz jest zwykletylko zapamiętywany przez użytkownika lub zapisanyw urządzeniu kryptograficznym. Może on być czę-ściowo zapisany na kartach inteligentnych a częściowozapamiętywany przez użytkownika. Master key służydo zabezpieczania innych kluczy.

⋆ klucze do szyfrowania kluczy (keys-encrypting keys)klucze wykorzystywane w protokołach do uzgadniania(przesyłania) kluczy.

⋆ klucze do szyfrowania danych (data keys)są to zwykle klucze o krótkim czasie ważności (np.klucze sesyjne) służące do szyfrowania danych

Uzgadnianie kluczy

• Algorytm Diffiego-Hellmana

⋆ Alicja i Bolek uzgadniają dwie liczby: dużą liczbępierwszą p oraz liczbę g, która jest generatorem Zp

⋆ Alicja wybiera losowo dużą liczbę całkowitą a < p− 1 iprzesyła Bolkowi x = ga (mod p)

⋆ Bolek wybiera losowo dużą liczbę całkowitą b < p− 1 iwysyła Alicji y = gb (mod p)

⋆ Alicja oblicza K = ya (mod p)

⋆ Bolek oblicza K = xb (mod p)

Uzasadnienie:

K = ya = (gb)a = gab (mod p)

K = xb = (ga)b = gab (mod p)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 81

Page 83: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Algorytm ElGamala

⋆ Bolek wybiera liczbę pierwszą p oraz generator g w Zp,a następnie wybiera losowo liczbę 0 < b < p−1, obliczagb (mod p) oraz ogłasza swój klucz publiczny {p, g, gb}

⋆ Alicja pobiera klucz publiczny Bolka, wybiera losowoliczbę 0 < a < p− 1 i wysyła Bolkowiga (mod p)

obliczając jednocześnie klucz K = (gb)a (mod p)

⋆ Bolek oblicza ten sam klucz K = (ga)b (mod p)

• Station-to Station protocol (STS)W tym protokole przyjmuje się, że Alicja ma certyfikatklucza publicznego Bolka i na odwrót Bolek ma certyfikatklucza publicznego Alicji. Niech E oznacza symetrycznyalgorytm szyfrujący, SA(M) oznacza podpis Alicji podwiadomością M : SA(M) = (H(M))dA (mod nA) (RSAna wartości funkcji hashującej). Każda ze stron wybieraodpowiednią liczbę pierwszą p oraz generator g w Zp.Każda ze stron wybiera klucze RSA do podpisu.

⋆ Alicja wybiera losowo liczbę a i wysyła Bolkowiga (mod p)

⋆ Bolek wybiera losowo liczbę b i oblicza klucz K = (ga)b

(mod p)

⋆ Bolek podpisuje konkatenację gb, ga, szyfruje podpiskluczem K i wysyła Alicjigb (mod p) oraz EK(SB(gb, ga))

⋆ Alicja oblicza klucz K = (gb)a (mod p), deszyfrujeotrzymane dane oraz używa klucza publicznego Bolkado sprawdzenia podpisu pod wartością funkcji hashu-

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 82

Page 84: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

jącej z konkatenacji obu eksponensów. Jeśli wartośćfunkcji hashującej zgadza się z otrzymaną przez niąwartością, Alicja akceptuje klucz K i wysyła BolkowiEK(SA(ga, gb))

⋆ Bolek deszyfruje otrzymaną wiadomość, weryfikujepodpis Alicji i jeśli wynik jest pozytywny, akceptujeklucz K

• Uzgadnianie klucza z szyfrowaniemZakładamy, że Alicja i Bolek (użytkownik i komputer)znają hasło P .

⋆ Alicja generuje losowo parę kluczy (publiczny i pry-watny), szyfruje klucz publiczny K ′ używając algo-rytmu symetrycznego wykorzystującego hasło P jakoklucz i wysyła do BolkaEP (K ′)

⋆ Bolek deszyfruje wiadomość otrzymaną od Alicjiotrzymując klucz K ′, następnie generuje klucz sesyjnyK, szyfruje ten klucz kluczem publicznym K ′ orazkluczem P i wysyła AlicjiEP (EK′(K))

⋆ Alicja deszyfruje wiadomość otrzymaną od Bolkauzyskując klucz K. Następnie generuje ciąg losowy rA,szyfruje go kluczem K i wysyła do BolkaEK(rA)

⋆ Bolek deszyfruje wiadomość otrzymaną od Alicjiotrzymując ciąg rA, generuje własny ciąg losowy rB,szyfruje obydwa ciągi kluczem K i wysyła AlicjiEK(rA, rB)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 83

Page 85: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

⋆ Alicja deszyfruje wiadomość uzyskując rA i rB. JeślirA jest prawidłowe, szyfruje rB i wysyła do BolkaEK(rB)

⋆ Bolek deszyfruje wiadomość i jeśli rB jest prawidłoweklucz K zostaje zaakceptowany jako klucz sesyjny.

Istnieją różne implementacje tego protokołu, z wykorzy-staniem algorytmu RSA czy ElGamala. Protokół tenwzmacnia bezpieczeństwo przy uzgadnianiu klucza sesyj-nego.

• ssh secure shell

Protokół umożliwiający bezpieczne logowanie się dokomputerów w sieci stworzony przez Tatu Ylönena,który skutecznie zapobiega takim metodom ataku jak IPSpoofing i DNS Spoofing, czy też podsłuchiwaniu haseł lubtransmitowanych danych. Obecnie rozwijana jest wersjaOpenSSH, na licencji GNU.

⋆ przy instalacji programu generowana jest para klu-czy algorytmu asymetrycznego przynależna danemukomputerowi — klucz publiczny komputera — host key

⋆ przy uruchomieniu demona sshd generowana jestnastępna para kluczy — server keys. Publiczny jestdostępny do czytania, a prywatny jest przechowywanyw pamięci komputera (nie jest zapisywany na dysku).Co godzinę para tych kluczy jest zmieniana.

⋆ każdy użytkownik generuje kolejną parę kluczy (ssh-

keygen), które służą do uwierzytelniania użytkownika.Klucz prywatny jest szyfrowany.

⋆ Kiedy Alicja próbuje zalogować się na komputer Bolka,

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 84

Page 86: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

to komputer ten wysyła jej swoje dwa klucze publicznehost key i server key. Komputer Alicji sprawdza czyhost key zgadza się z kluczem zapisanym w lokalnympliku known-hosts.

⋆ Jeśli wszystko się zgadza to Alicja generuje losowy kluczsesji i szyfruje go po kolei obydwoma kluczami publicz-nymi komputera Bolka i tak uzyskany kryptogramprzesyła do Bolka.

⋆ Bolek potrzebuje dwóch kluczy prywatnych do odszy-frowania klucza sesyjnego

⋆ Bolek przesyła Alicji liczbę losową rB zaszyfrowanąkluczem publicznym Alicji.

⋆ Alicja deszyfruje otrzymany kryptogram i odsyłaBolkowi H(rB) udowadniając mu swoją tożsamość.W ten sposób zostaje ustanowiony bezpieczny kanałkomunikacyjny.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 85

Page 87: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Kryptoanaliza

• Podstawowe rodzaje ataku

⋆ Atak typu ciphertext-only — znane są tylko krypto-gramy — chcemy znaleźć klucz lub tekst jawny

⋆ Atak typu known plaintext — znane są pewne parykryptogram-tekst jawny — szukamy klucza

⋆ Atak typu chosen plaintext — znane są kryptogramydla dowolnie wybranego tekstu jawnego

⋆ Atak typu chosen ciphertext — atakujący ma możliwośćuzyskania tekstu jawnego dla dowolnie wybranegotekstu tajnego

⋆ Atak typu adaptive chosen plaintext — atakujący mamożliwość wielokrotnego szyfrowania tekstu jawnego,który jest modyfikowany w zależności od uzyskanychwcześniej wyników

• Kryptoanaliza różnicowaEli Biham i Adi Shamir w 1990 r. znaleźli metodę atakuna DES przy wybranym tekście jawnym, która okazałasię bardziej efektywna niż przeszukiwanie wszystkichmożliwości (atak brutalny). W kryptoanalizie różnicowejporównuje się pary kryptogramów, które powstały wwyniku zaszyfrowania par tekstów jawnych o ustalonychróżnicach. Przypuśćmy, że mamy dwa bloki o równejdługości X i X ′ i wprowadzimy różnicę obu bloków ∆X =

X⊕X ′ (operacja dodawania modulo dwa odpowiadającychsobie bitów obu bloków — operacja xor — w wyniku

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 86

Page 88: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

dostajemy jedynki na tych miejscach gdzie ciągi bitówsię różnią). Rozważmy parę wejściową X i X ′ tekstówjawnych i uwzględniając fakt, że operacje liniowe niezmieniają różnicy ∆X, co dotyczy także operacji xor zkluczem Ki, która daje:Y = X ⊕Ki, Y ′ = X ′ ⊕Ki,∆Y = (X ⊕Ki)⊕ (X ′ ⊕Ki) = X ⊕X ′ = ∆X ,a więc przed wejściem do S-boksa różnice się zachowująi nie zależą od wartości klucza. Nieliniowym elementemDES’a są S-boksy i różnica ∆Y zostanie przez S-boks naogół zmieniona. Jeśli wynikiem działania S-boksu będzieZ = S(Y ), to różnica ∆Z = S(Y )⊕ S(Y ′) będzie zależałaod klucza Ki i okazuje się, że tylko niektóre wartości dla∆Z są możliwe, a to oznacza, że możliwe jest uzyskanieinformacji o kluczu Ki. W tablicy 9 podane są liczbymożliwych ∆Z dla danej różnicy ∆X (różnice ∆X i ∆Z

podane są układzie szesnastkowym o czym przypominawskaźnik x). Liczba znajdująca się w tablicy podzielonaprzez 64 określa prawdopodobieństwo wystąpienia danejróżnicy ∆Z. W tabeli znajdujemy wiele zer, a to oznacza,że takie różnice nie mogą wystąpić. Prawdopodobieństwawystąpienia poszczególnych różnic znacznie się różnią iten fakt jest wykorzystywany w kryptoanalizie różnicowej.Np. dla ∆X = 1x istnieją tylko cztery pary które dająróżnicę ∆Z = Fx. Takie pary można wcześniej wyznaczyći w tym przypadku są to pary:{1Ex, 1Fx}, {1Fx, 1Ex}, {2Ax, 2Bx}, {2Bx, 2Ax}.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 87

Page 89: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

∆X ∆Z0x 1x 2x 3x 4x 5x 6x 7x 8x 9x Ax Bx Cx Dx Ex Fx

0x 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01x 0 0 0 6 0 2 4 4 0 10 12 4 10 6 2 42x 0 0 0 8 0 4 4 4 0 6 8 6 12 6 4 23x 14 4 2 2 10 6 4 2 6 4 4 0 2 2 2 04x 0 0 0 6 0 10 10 6 0 4 6 4 2 8 6 25x 4 8 6 2 2 4 4 2 0 4 4 0 12 2 4 66x 0 4 2 4 8 2 6 2 8 4 4 2 4 2 0 127x 2 4 10 4 0 4 8 4 2 4 8 2 2 2 4 48x 0 0 0 12 0 8 8 4 0 6 2 8 8 2 2 49x 10 2 4 0 2 4 6 0 2 2 8 0 10 0 2 12Ax 0 8 6 2 2 8 6 0 6 4 6 0 4 0 2 10Bx 2 4 0 10 2 2 4 0 2 6 2 6 6 4 2 12Cx 0 0 0 8 0 6 6 0 0 6 6 4 6 6 14 2Dx 6 6 4 8 4 8 2 6 0 6 4 6 0 2 0 2Ex 0 4 8 8 6 6 4 0 6 6 4 0 0 4 0 8Fx 2 0 2 4 4 6 4 2 4 8 2 2 2 6 8 810x 0 0 0 0 0 0 2 14 0 6 6 12 4 6 8 611x 6 8 2 4 6 4 8 6 4 0 6 6 0 4 0 012x 0 8 4 2 6 6 4 6 6 4 2 6 6 0 4 013x 2 4 4 6 2 0 4 6 2 0 6 8 4 6 4 614x 0 8 8 0 10 0 4 2 8 2 2 4 4 8 4 015x 0 4 6 4 2 2 4 10 6 2 0 10 0 4 6 416x 0 8 10 8 0 2 2 6 10 2 0 2 0 6 2 617x 4 4 6 0 10 6 0 2 4 4 4 6 6 6 2 018x 0 6 6 0 8 4 2 2 2 4 6 8 6 6 2 219x 2 6 2 4 0 8 4 6 10 4 0 4 2 8 4 01Ax 0 6 4 0 4 6 6 6 6 2 2 0 4 4 6 81Bx 4 4 2 4 10 6 6 4 6 2 2 4 2 2 4 21Cx 0 10 10 6 6 0 0 12 6 4 0 0 2 4 4 01Dx 4 2 4 0 8 0 0 2 10 0 2 6 6 6 14 01Ex 0 2 6 0 14 2 0 0 6 4 10 8 2 2 6 21Fx 2 4 10 6 2 2 2 8 6 8 0 0 0 4 6 4

Tablica 9: Tablica rozkładu różnic w S-boksie S1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 88

Page 90: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

∆X ∆Z0x 1x 2x 3x 4x 5x 6x 7x 8x 9x Ax Bx Cx Dx Ex Fx

20x 0 0 0 10 0 12 8 2 0 6 4 4 4 2 0 1221x 0 4 2 4 4 8 10 0 4 4 10 0 4 0 2 822x 10 4 6 2 2 8 2 2 2 2 6 0 4 0 4 1023x 0 4 4 8 0 2 6 0 6 6 2 10 2 4 0 1024x 12 0 0 2 2 2 2 0 14 14 2 0 2 6 2 425x 6 4 4 12 4 4 4 10 2 2 2 0 4 2 2 226x 0 0 4 10 10 10 2 4 0 4 6 4 4 4 2 027x 10 4 2 0 2 4 2 0 4 8 0 4 8 8 4 428x 12 2 2 8 2 6 12 0 0 2 6 0 4 0 6 229x 4 2 2 10 0 2 4 0 0 14 10 2 4 6 0 42Ax 4 2 4 6 0 2 8 2 2 14 2 6 2 6 2 22Bx 12 2 2 2 4 6 6 2 0 2 6 2 6 0 8 42Cx 4 2 2 4 0 2 10 4 2 2 4 8 8 4 2 62Dx 6 2 6 2 8 4 4 4 2 4 6 0 8 2 0 62Ex 6 6 2 2 0 2 4 6 4 0 6 2 12 2 6 42Fx 2 2 2 2 2 6 8 8 2 4 4 6 8 2 4 230x 0 4 6 0 12 6 2 2 8 2 4 4 6 2 2 431x 4 8 2 10 2 2 2 2 6 0 0 2 2 4 10 832x 4 2 6 4 4 2 2 4 6 6 4 8 2 2 8 033x 4 4 6 2 10 8 4 2 4 0 2 2 4 6 2 434x 0 8 16 6 2 0 0 12 6 0 0 0 0 8 0 635x 2 2 4 0 8 0 0 0 14 4 6 8 0 2 14 036x 2 6 2 2 8 0 2 2 4 2 6 8 6 4 10 037x 2 2 12 4 2 4 4 10 4 4 2 6 0 2 2 438x 0 6 2 2 2 0 2 2 4 6 4 4 4 6 10 1039x 6 2 2 4 12 6 4 8 4 0 2 4 2 4 4 03Ax 6 4 6 4 6 8 0 6 2 2 6 2 2 6 4 03Bx 2 6 4 0 0 2 4 6 4 6 8 6 4 4 6 23Cx 0 10 4 0 12 0 4 2 6 0 4 12 4 4 2 03Dx 0 8 6 2 2 6 0 8 4 4 0 4 0 12 4 43Ex 4 8 2 2 2 4 4 14 4 2 0 2 0 8 4 43Fx 4 8 4 2 4 0 2 4 4 2 4 8 8 6 2 2

Tablica 9: Tablica rozkładu różnic w S-boksie S1

c.d.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 89

Page 91: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Znajomość takich par oraz prawdopodobieństw ich wy-stąpienia pozwala przy wykorzystaniu ataku typu chosen

plaintext uzyskać informację o bitach klucza. Można w tensposób znacznie ograniczyć przestrzeń możliwych kluczy.Prawdopodobnie twórcy DES’a zdawali sobie sprawę zmożliwości kryptoanalizy różnicowej, chociaż pojawiła sięona później niż sam DES. Liczba rund DES’a została wy-brana w taki sposób, że nawet korzystanie z kryptoanalizyróżnicowej wymaga dużych nakładów (mocy obliczenio-wych) dla złamania szyfru.

• Kryptoanaliza liniowaInną metodą kryptoanalizy jest kryptoanaliza liniowazaproponowana przez Mitsuru Matsui w 1993 r. Ideakryptoanalizy liniowej polega na opisie działania urządze-nia szyfrującego poprzez aproksymację liniową. Mimo, żeS-boksy DES’a są elementami nieliniowymi, to mogą byćone aproksymowane formułami liniowymi. Oznacza to,że zależności liniowe aproksymujące działanie S-boksu sąspełnione z prawdopodobieństwem różnym niż 1/2. Jeślinp. wiemy, że pomiędzy bitami klucza ki, tekstu jawnegomi oraz kryptogramu ci zachodzą z prawdopodobieństwem90% zależnościm15 ⊕ k2 ⊕m7 ⊕ k6 = c2 ⊕m5 ⊕ c7m8 ⊕ k2 ⊕ k6 = c5 ⊕ c6,to znając mi i ci możemy z takim samym prawdopo-dobieństwem wyznaczyć k2 ⊕ k6. Oczywiście tego typuzależności należy najpierw znaleźć.

Dla DES’a przy ataku typu known plaintext kryptoanalizaliniowa wymaga średnio 243 par tekst jawny-kryptogram

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 90

Page 92: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

do znalezienia klucza. Matsui w 1994 r. potrzebował 50dni aby na 12 komputerach HP 9735 obliczyć klucz DES’a!

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 91

Page 93: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Algorytmy kwantowe

• Bit kwantowy — kubit (qubit)Klasyczny bit może przyjmować dwie wartości {0, 1}.Układ kwantowy, który ma dwa możliwe stany {|0〉, |1〉}może się znajdować w każdym z nich, ale także w staniebędącym superpozycją stanów bazowych

|Ψ〉 = a|0〉+ b|1〉

i taki stan nazywamy kubitem. Oznacza to, że z prawdo-podobieństwem p0 = |a|2 układ znajduje się w stanie |0〉 iz prawdopodobieństwem p1 = |b|2 w stanie |1〉, oczywiściep0+p1 = 1. Stan układu kwantowego możemy przedstawićjako wektor na sferze Blocha

|0〉

|1〉

|Ψ〉

Rysunek 14: Kubit na sferze Blocha

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 92

Page 94: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Twierdzenie o nieklonowaniuNie istnieje transformacja unitarna U taka, że

U |Ψ〉|0〉 = |Ψ〉|Ψ〉

dla dowolnego |Ψ〉.Dowód:Przypuśćmy, że istnieje U takie, że

U |Ψ〉|0〉 = |Ψ〉|Ψ〉U |Φ〉|0〉 = |Φ〉|Φ〉

dla dowolnych |Ψ〉 i |Φ〉. Transformacja U reprezentowałaby maszynę klonującą, gdyby taka istniała. Z unitarnościU wynika jednak, że

〈Ψ|〈0|U †U |Φ〉|0〉 = 〈Ψ|Φ〉〈Ψ|Φ〉〈Ψ|Φ〉〈0|0〉 = 〈Ψ|Φ〉〈Ψ|Φ〉

co nie jest prawdziwe dla dowolnych |Ψ〉 i |Φ〉, natomiastmoże zachodzić dla stanów ortogonalnych 〈Ψ|Φ〉 = {0, 1}.Stany ortogonalne (klasyczne bity) mogą być kopiowane,natomiast dowolne stany kwantowe nie.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 93

Page 95: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Bramki logicznereplacemen

klasyczne kwantowe

x x a|0〉+ b|1〉

a|0〉+ b|1〉 a|1〉+ b|0〉

a|0〉 − b|1〉

|1〉 1√2(|0〉+ |1〉)

S

R

Rysunek 15: Jednobitowe bramki logiczne

klasyczne kwantowe

xx

x

x

y

y

y x ∧ y

x⊕ yx⊕ y

CNOT

Rysunek 16: Dwubitowe bramki logiczne

W bazie stanów {|0〉, |1〉}, mamy

|0〉 ≡

1

0

, |1〉 ≡

0

1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 94

Page 96: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Wtedy operacje na stanach kwantowych mają reprezenta-cję macierzową, i tak na przykład

UNOT =

0 1

1 0

UNOT|0〉 =

0 1

1 0

1

0

=

0

1

≡ |1〉

Operacja przesunięcia fazy, która nie zmienia stanu |0〉 zaśstan |1〉 zmienia na −|1〉, ma postać

US =

1 0

0 −1

Operacja Hadamarda, czasem nazywana pierwiastkiemkwadratowym z NOT (

√NOT), ma postać

H =1√2

1 1

1 −1

Istnieje nieskończenie wiele bramek kwantowych genero-wanych przez rotacje o kąt θ

UR(θ) =

cos θ − sin θ

sin θ cos θ

oraz przesunięcia faz

UP (ϕ1, ϕ2) =

eiϕ1 0

0 eiϕ2

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 95

Page 97: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Operacja CNOT (kontrolowane NOT) na dwóch kubitachma postać

UCN =

1 0 0 0

0 1 0 0

0 0 0 1

0 0 1 0

• Problem DeutschaPrzypuśćmy, że mamy kwantową czarną skrzynkę oblicza-jącą funkcję f(x), tzn. wykonującą transformację unitarnąna dwóch kubitach przedstawioną poniżej

|x〉 ? |f(x)〉

f : {0, 1} → {0, 1}

Uf : |x〉|y〉 → |x〉|y ⊕ f(x)〉

Pytanie:czy po jednym przebiegu kwantowego komputera możemy

stwierdzić, że f(0) = f(1)?

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 96

Page 98: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Weźmy następujący kwantowy obwód

|0〉 H H Pomiar

|1〉 H Ufgdzie H jest kwantową bramką Hadamarda.

Działanie obwodu

H : |0〉 → 1√2(|0〉+ |1〉)

|1〉 → 1√2(|0〉 − |1〉)

|0〉|1〉 → 1

2(|0〉+ |1〉)(|0〉 − |1〉)

→ 1

2

(

(−1)f(0)|0〉+ (−1)f(1)|1〉)

(|0〉 − |1〉)

→ 1

2

[

(

(−1)f(0) + (−1)f(1))

|0〉

+(

(−1)f(0) − (−1)f(1))

|1〉]

1√2(|0〉 − |1〉)

|m〉 =

|0〉 dla f(0) = f(1)

|1〉 dla f(0) 6= f(1)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 97

Page 99: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Kwantowy paralelizmPrzypuśćmy, że mamy funkcję działającą na N bitów o2N możliwych wartościach. Aby obliczyć tablicę funkcjif(x) musielibyśmy policzyć wartość funkcji 2N razy(dla N = 100 ∼ 1030)! Na komputerze kwantowymdziałającym zgodnie z

Uf : |x〉|0〉 → |x〉|f(x)〉

możemy wybrać stan początkowy (kwantowy rejestr) wpostaci

|ψ0〉 =

[

1√2(|0〉+ |1〉)

]N

=1

2N/2

2N−1∑

x=0

|x〉

i obliczając f(x) tylko raz otrzymujemy stan

|ψ〉 =1

2N/2

2N−1∑

x=0

|x〉|f(x)〉

Na przykład, dla N = 2

|ψ0〉 =1

2(|00〉+ |01〉+ |10〉+ |11〉)

|00〉 → |0〉

|01〉 → |1〉

|10〉 → |2〉

|11〉 → |3〉

|ψ0〉 =1

2(|0〉+ |1〉+ |2〉+ |3〉)

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 98

Page 100: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Algorytm Shora

• Etap 1Przygotowujemy rejestr A komputerakwantowego w superpozycji wszyst-kich możliwych stanów

• Etap 2Liczba, którą chcemy sfaktoryzowaćjest N , N = 15 Wybieramy liczbę lo-sową X, 1 < X < N−1, X = 2. Wyko-nujemy operację B = (XA mod N)

np. dla X = 2 mamy wyniki przedsta-wione w tabelce

• Etap 3Obliczamy P = Xf/2 − 1; f = 4 isprawdzamy czy P jest dzielnikiem N

w naszym przypadkuP = 24/2 − 1 = 3,P = 24/2 + 1 = 5;

Hurra !!!15/3 = 5

15/5 = 3

Rejestr A Rejestr B

0 1

1 2

2 4

3 8

4 1

5 2

6 4

7 8

8 1

9 2

10 4

11 8

12 1

13 2

14 4

15 8

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 99

Page 101: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Kwantowa transformata Fouriera

QFT : |x〉 → 1

q

q−1∑

y=0

e2πixy/q|y〉

gdzie q = 2N

• Okres funkcjiPrzygotowujemy stan

|ψ0〉 =1√q

q−1∑

x=0

|x〉|f(x)〉

Mierzymy drugi rejestr dostając |f(x0)〉, co powoduje, żepierwszy rejestr staje się superpozycją wszystkich stanów,które dają wartość f(x0) (funkcja jest okresowa z okresemr)

1√a

a−1∑

j=0

|x0 + jr〉 , a− 1 <q

r< a+ 1

Stosujemy QTF

1√qa

q−1∑

y=0

e2πix0ya−1∑

j=0

e2πijry/q|y〉

Prob(y) =a

q

1

a

a−1∑

j=0

e2πijry/q

2

Jeśli q/r jest całkowite (q/r = a), to

Prob(y) =1

a

1

a

a−1∑

j=0

e2πijy/q

2

=

1r y = a ∗ integer0 otherwise

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 100

Page 102: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Kryptografia kwantowa

• Protokół BB84 (Bennett, Brassard, 1984)Wybierzmy dwie ortonormalne bazy dla pomiaru polary-zacji fotonu:

⋆ Baza prosta (+)Tworzą ją dwa stany o polaryzacji poziomej orazpionowej {|→〉, |↑〉}

⋆ Baza ukośna (×)Tworzą ją dwa stany o polaryzacji 45◦ oraz polaryzacji135◦ {|ր〉, |տ〉}

⋆ Zachodzą następujące relacje

|ր〉 =1√2

(|→〉+ |↑〉)

|տ〉 = − 1√2

(|→〉− |↑〉)

|→〉 =1√2

(|ր〉− |տ〉)

|↑〉 =1√2

(|ր〉+ |տ〉)

Wynika z nich, że pomiar polaryzacji fotonu “ukośnego”w bazie prostej daje z prawdopodobieństwem 1/2 stan|→〉 lub |↑〉, co oznacza, że pomiar taki nie daje żad-nych informacji o polaryzacji fotonu. To samo możemypowiedzieć o pomiarze fotonu “prostego” w bazie uko-śnej. Polaryzacja prosta i polaryzacja ukośna to dwiewielkości fizyczne, które zgodnie z prawami mechaniki

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 101

Page 103: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

kwantowej nie są współmierzalne. Obowiązuje tutajzasada nieoznaczoności Heisenberga.

⋆ Alfabety kwantoweMając dwie bazy możemy stworzyć dwa kwantowealfabety przypisując dwóm ortogonalnym stanom bazywartości binarne 0 i 1.

|→〉 ≡ 0

|↑〉 ≡ 1

|ր〉 ≡ 0

|տ〉 ≡ 1

⋆ Etapy BB84

1. Alicja wybiera losowo jedną z dwóch baz i jednąz dwóch ortogonalnych polaryzacji w wybranej ba-zie, co oznacza wybór jednej z czterech możliwychpolaryzacji i wysyła do Bolka foton o takiej polary-zacji. Zgodnie z przyjętymi alfabetami oznacza toodpowiadający wybranym polaryzacjom ciąg bitów.

2. Bolek losowo wybiera bazę prostą lub ukośną iwykonuje pomiar polaryzacji fotonu, który otrzymałod Alicji

3. Bolek notuje wyniki pomiarów zachowując je wtajemnicy

4. Bolek publicznie informuje Alicję jakiej bazy używał,zaś Alicja informuje go czy była to baza właściwaczy nie.

5. Alicja i Bolek przechowują wyniki, dla których Bolekużył właściwej bazy. Przypisując tym wynikom

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 102

Page 104: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

wartości binarne 0 i 1 zgodnie z przyjętymi alfabetamioboje otrzymują taki sam ciąg zer i jedynek (losowy),który może służyć jako klucz kryptograficzny.

Przykład:

Alicja + × + × × + × × × + + + ×↑ ր → ր տ → տ տ ր ↑ ↑ ↑ ր1 0 0 0 1 0 1 1 0 1 1 1 0

Bolek + + × + × × × + × + + × ×↑ → ր ↑ տ ր տ → ր ↑ ↑ տ ր1 0 0 1 1 0 1 0 0 1 1 1 0

A/B√ √ √ √ √ √ √

klucz 1 1 1 0 1 1 0

Porównując bity wysłane przez Alicję z bitami za-rejestrowanymi przez Bolka możemy podzielić bityzarejestrowane przez Bolka na trzy kategorie: bitypewne (średnio 50 %) — te dla których Bolek wybrałprawidłową bazę i które mogą być traktowane jakoklucz kryptograficzny; bity prawidłowe pomimo złegowyboru bazy (średnio 25 %); bity nieprawidłowe (śred-nio 25 %). Prawdopodobieństwo wyboru jednej z dwóchmożliwych baz wynosi 1/2, prawdopodobieństwo zare-jestrowania prawidłowej polaryzacji przy prawidłowymwyborze bazy wynosi 1, prawdopodobieństwo pomiaru

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 103

Page 105: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

prawidłowej polaryzacji przy nieprawidłowo wybranejbazie wynosi 1/2, zatem prawdopodobieństwo tego, żezarejestrowany bit będzie prawidłowy (taki sam jak bitwysłany) jest równe 1

2 · 1 + 12 · 12 = 3

4 . Prawdopodobień-stwo zarejestrowania bitu nieprawidłowego (błędnego)wynosi więc 1− 3

4 = 14 .

Alicja + × + × × + × × × + + + ×↑ ր → ր տ → տ տ ր ↑ ↑ ↑ ր1 0 0 0 1 0 1 1 0 1 1 1 0

Bolek + + × + × × × + × + + × ×↑ → ր ↑ տ ր տ → ր ↑ ↑ տ ր1 0 0 1 1 0 1 0 0 1 1 1 0

pewne 1 1 1 0 1 1 0

dobre 0 0 0 1

złe 1 0

Jeśli Ewa podsłuchuje stosując strategię tzw. nieprze-źroczystego podsłuchu, to wybiera losowo bazę prostąlub ukośną, dokonuje pomiaru polaryzacji w tej bazie inastępnie przesyła do Bolka foton o takiej polaryzacjijaką zmierzyła. Dokonywane przez Ewę pomiary musząwprowadzić błędy, które Alicja i Bolek mogą wykryćprzy uzgadnianiu klucza. W podanym niżej przykładzieostatni bit został zmieniony. Średnio 25 % bitów kluczazostanie zmienionych. Takie błędy Alicja i Bolek mogą

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 104

Page 106: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

wykryć wybierając losowo pewną liczbę bitów klucza iporównując publicznym kanałem ich wartości. Te bityoczywiście następnie się wyrzuca. Jeśli liczba błędówprzekracza założony poziom to uznaje się, że kanałbył podsłuchiwany i procedurę uzgadniania kluczarozpoczyna się od nowa.

Mechanika kwantowa nie dopuszcza możliwości pasyw-nego podsłuchu. Bezpieczeństwo kwantowego systemukryptograficznego gwarantowane jest przez prawa fizyki!

Alicja + × + × × + × × × + + + ×↑ ր → ր տ → տ տ ր ↑ ↑ ↑ ր1 0 0 0 1 0 1 1 0 1 1 1 0

Ewa + + + × + × + × + + + × +

↑ → → ր → ր ↑ տ ↑ ↑ ↑ տ →1 0 0 0 0 0 1 1 1 1 1 1 0

Bolek + + × + × × × + × + + × ×↑ → ր ↑ տ ր տ → ր ↑ ↑ տ տ1 0 0 1 1 0 1 0 0 1 1 1 1

klucz 1 1 1 0 1 1 1

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 105

Page 107: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

• Protokół B92 (Bennett, 1992)W 1992 r. Charles Bennett zaproponował protokół wy-miany klucza oparty na dwóch nieortogonalnych stanachkwantowych. Niech takimi stanami będą {|→〉, |ր〉}. Bo-lek wykonuje pomiary polaryzacji w stanach ortogonalnychdo {|→〉, |ր〉}, tzn. w stanach {|↑〉, |տ〉}.⋆ Alfabet kwantowy

Alicja przygotowuje fotony o polaryzacji horyzontalnej|→〉 lub polaryzacji 45◦ |ր〉 przypisując im wartościbinarne

|→〉 ≡ 0

|ր〉 ≡ 1

⋆ Etapy B92

1. Alicja wybiera losowo jedną z dwóch polaryzacji{|→〉, |ր〉} i przesyła do Bolka foton o takiej pola-ryzacji. Powtarzając tę procedurę, Alicja wysyła doBolka losowy ciąg zer i jedynek.

2. Bolek losowo wybiera jeden ze stanów {|↑〉, |տ〉} imierzy polaryzację w takim stanie. Jeśli wybrał po-laryzację ortogonalną do polaryzacji wybranej przezAlicję, to nie zarejestruje fotonu. W przeciwnymrazie z prawdopodobieństwem 1/2 zarejestruje foton.Jeśli zarejestrował foton o polaryzacji |↑〉 to przypi-suje mu wartość binarną 1, zaś fotonowi o polaryzacji|տ〉 przypisuje wartość binarną 0.

3. Bolek przekazuje Alicji publicznym kanałem infor-mację dla których fotonów uzyskał wynik pozytywny

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 106

Page 108: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

(T), czyli zarejestrował foton, ale nie zdradza jakąpolaryzację zmierzył.

4. Alicja i Bolek przechowują ciąg bitów, dla którychBolek zarejestrował foton. Ciąg ten stanowi kluczkryptograficzny.

Przykład:

Alicja ր → → → ր → ր ր → ր ր ր →1 0 0 0 1 0 1 1 0 1 1 1 0

Bolek տ տ ↑ տ ↑ ↑ ↑ տ ↑ տ տ ↑ ↑N T N T T N N N N N N T N

0 0 1 1

A/B√ √ √ √

klucz 0 0 1 1

Podobnie jak w przypadku protokołu BB84 obecnośćEwy spowoduje błędy w kluczu, które Alicja i Bolekmogą wykryć.

Kryptografia kwantowa szybko się rozwija. Tutaj przedsta-wiłem tylko najprostsze protokoły. Istnieją inne protokołykwantowe uzgadniania klucza, np. protokół zaproponowanyprze Ekerta w 1991 r oparty na zjawisku EPR. Do kodowaniamożna używać np. fazy fotonu, a nie polaryzacji.Kryptografia kwantowa jest już faktem!.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 107

Page 109: Wykład z podstaw klasycznej kryptografii z elementami …zon8.physd.amu.edu.pl/~tanas/kryptografia.pdf · Handbook of Applied Cryptography, CRC Press, 1997, New York, dostępna

Kryptografia — wykład dla IV roku

Grupa prof. Gisina w Genewie przeprowadziła udane eks-perymenty z kwantową dystrybucją klucza na odległości 67km, używając komercyjnych światłowodów. Trwają inten-sywne prace nad kwantową dystrybucją klucza w otwartejprzestrzeni.

Mechanika kwantowa, która z jednej strony może spowo-dować, że klasyczne algorytmy kryptograficzne staną siębezużyteczne, z drugiej strony daje możliwość wykorzystaniajej praw do bezpiecznego przekazywania klucza kryptogra-ficznego.

Ryszard Tanaś, http://zon8.physd.amu.edu.pl/˜tanas 108