Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11



Podobne dokumenty
Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 9

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Bezpieczeństwo systemów komputerowych. Podpis cyfrowy. Podpisy cyfrowe i inne protokoły pośrednie

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 1

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

WSIZ Copernicus we Wrocławiu

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Bezpieczeństwo systemów informatycznych

SSL (Secure Socket Layer)

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Nowy klucz jest jedynie tak bezpieczny jak klucz stary. Bezpieczeństwo systemów komputerowych

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

Protokoły zdalnego logowania Telnet i SSH

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Podstawy Secure Sockets Layer

ZiMSK. Konsola, TELNET, SSH 1

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

SSH - Secure Shell Omówienie protokołu na przykładzie OpenSSH

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

BEZPIECZEOSTWO SYSTEMU OPERO

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

Bezpieczna poczta i PGP

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe. kradzieŝy! Jak się przed nią bronić?

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Wykład 3 Bezpieczeństwo przesyłu informacji; Szyfrowanie

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

Szyfrowanie RSA (Podróż do krainy kryptografii)

Zastosowania matematyki w systemie operacyjnym Linux

Bezpieczeństwo kart elektronicznych

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Laboratorium nr 2 Szyfrowanie, podpis elektroniczny i certyfikaty

Przewodnik użytkownika

2 Kryptografia: algorytmy symetryczne

Bezpieczeństwo systemów komputerowych

Bezpieczeństwo usług oraz informacje o certyfikatach

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Wykorzystanie protokołu T=CL w systemach kontroli dostępu

Authenticated Encryption

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Sieci komputerowe Wykład 7. Bezpieczeństwo w sieci. Paweł Niewiadomski Katedra Informatyki Stosowanej Wydział Matematyki UŁ niewiap@math.uni.lodz.

Wstęp do systemów wielozadaniowych laboratorium 21 Szyfrowanie

KAMELEON.CRT OPIS. Funkcjonalność szyfrowanie bazy danych. Wtyczka kryptograficzna do KAMELEON.ERP. Wymagania : KAMELEON.ERP wersja

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Usługi sieciowe systemu Linux

Problemy z bezpieczeństwem w sieci lokalnej

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Płace Optivum. Jakie czynności musi wykonać pracownik, aby otrzymywać drogą elektroniczną paski z list płac?

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

KUS - KONFIGURACJA URZĄDZEŃ SIECIOWYCH - E.13 ZABEZPIECZANIE DOSTĘPU DO SYSTEMÓW OPERACYJNYCH KOMPUTERÓW PRACUJĄCYCH W SIECI.

Czym jest kryptografia?

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Algorytmy asymetryczne

Zarys algorytmów kryptograficznych

Bezpiecze ństwo systemów komputerowych.

Kryptografia szyfrowanie i zabezpieczanie danych

Wykład VIII. Systemy kryptograficzne Kierunek Matematyka - semestr IV. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Szyfrowanie informacji

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Technologie zapewniajace bezpieczeństwo w systemach operacyjnych (PKI, Smart Cards, SSL, SSH)

Bezpieczeństwo danych, zabezpieczanie safety, security

INSTRUKCJA INSTALACJI I OBSŁUGI GPG4Win

Bringing privacy back

Poufność (słaba) Integralność (niekryptograficzna) Uwierzytelnienie (słabe) Brak kontroli dostępu Brak zarządzania kluczami

Sieci komputerowe. Wykład 11: Podstawy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Seminarium Katedry Radiokomunikacji, 8 lutego 2007r.

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Bezpieczna poczta i PGP

Bezpieczeństwo systemów komputerowych

Kryptografia systemy z kluczem publicznym. Kryptografia systemy z kluczem publicznym

System Użytkowników Wirtualnych

Instrukcja obsługi programu altbackup

VIII Festiwal Nauki i Sztuki. Wydziale Fizyki UAM

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Kryptografia kwantowa

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Plan całości wykładu. Ochrona informacji 1

Instalacja i konfiguracja serwera SSH.

Podpis elektroniczny

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Bezpieczeństwo systemów komputerowych.

Kryptologia. Bezpieczeństwo komunikacji elektronicznej

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Wykład 9. komputerowych Głosowanie internetowe - główne slajdy. 23 listopada Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Copyright by K. Trybicka-Francik 1

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

5. Metody uwierzytelniania i bezpiecznej komunikacji Certyfikat klucza publicznego oparty o standard X.509

INSTRUKCJA AKTYWACJI I INSTALACJI CERTYFIKATU ID

Protokół SSL/TLS. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Copyright by K. Trybicka-Francik 1

Transkrypt:

Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 11

Spis treści 16 Zarządzanie kluczami 3 16.1 Generowanie kluczy................. 3 16.2 Przesyłanie kluczy................. 4 16.3 Przechowywanie kluczy............... 5 17 Uzgadnianie kluczy 8 17.1 Algorytm Diffiego-Hellmana............ 8 17.2 Algorytm ElGamala................. 9 17.3 Station-to Station protocol (STS)......... 10 17.4 Uzgadnianie klucza z szyfrowaniem......... 12 17.5 ssh (secure shell).................. 15

16 Zarządzanie kluczami 16.1 Generowanie kluczy Do generowania kluczy najlepiej nadają się generatory ciągów losowych. Przykład: standard ANSI X9.17 (Financial Institution Key Management) Niech EDE K1,K 2 (X) oznacza szyfrowanie 3-DES z kluczami K 1, K 2 liczby X. Niech V 0 będzie tajną liczbą 64 bitową, a T znacznikiem czasu, wtedy klucz losowy R i generuje się w następujący sposób: R i = EDE K1,K 2 (EDE K1,K 2 (T i ) V i ) V i+1 = EDE K1,K 2 (EDE K1,K 2 (T i ) R i )

16 Zarządzanie kluczami 16.1 Generowanie kluczy Do generowania kluczy najlepiej nadają się generatory ciągów losowych. Przykład: standard ANSI X9.17 (Financial Institution Key Management) Niech EDE K1,K 2 (X) oznacza szyfrowanie 3-DES z kluczami K 1, K 2 liczby X. Niech V 0 będzie tajną liczbą 64 bitową, a T znacznikiem czasu, wtedy klucz losowy R i generuje się w następujący sposób: R i = EDE K1,K 2 (EDE K1,K 2 (T i ) V i ) V i+1 = EDE K1,K 2 (EDE K1,K 2 (T i ) R i )

16 Zarządzanie kluczami 16.1 Generowanie kluczy Do generowania kluczy najlepiej nadają się generatory ciągów losowych. Przykład: standard ANSI X9.17 (Financial Institution Key Management) Niech EDE K1,K 2 (X) oznacza szyfrowanie 3-DES z kluczami K 1, K 2 liczby X. Niech V 0 będzie tajną liczbą 64 bitową, a T znacznikiem czasu, wtedy klucz losowy R i generuje się w następujący sposób: R i = EDE K1,K 2 (EDE K1,K 2 (T i ) V i ) V i+1 = EDE K1,K 2 (EDE K1,K 2 (T i ) R i )

16.2 Przesyłanie kluczy Jeśli Alicja i Bolek zamierzają posługiwać się symetrycznym algorytmem kryptograficznym, to potrzebują tego samego klucza. Alicja może wygenerować taki klucz używając generatora ciągów losowych, ale pozostaje problem jak w bezpieczny sposób przekazać ten klucz Bolkowi.

16.2 Przesyłanie kluczy Jeśli Alicja i Bolek zamierzają posługiwać się symetrycznym algorytmem kryptograficznym, to potrzebują tego samego klucza. Alicja może wygenerować taki klucz używając generatora ciągów losowych, ale pozostaje problem jak w bezpieczny sposób przekazać ten klucz Bolkowi.

16.2 Przesyłanie kluczy Jeśli Alicja i Bolek zamierzają posługiwać się symetrycznym algorytmem kryptograficznym, to potrzebują tego samego klucza. Alicja może wygenerować taki klucz używając generatora ciągów losowych, ale pozostaje problem jak w bezpieczny sposób przekazać ten klucz Bolkowi.

16.3 Przechowywanie kluczy Najbezpieczniejszym sposobem przechowywania klucza jest zapamiętanie go przez Alicję. Niestety sposób ten ma tę wadę, że Alicja może zapomnieć taki klucz. Klucze mogą być przechowywane w pamięci ROM. Klucz taki może być rozdzielony na połowy, z których jedna jest przechowywana w terminalu a druga w pamięci ROM. W wielu sytuacjach istnieje konieczność przechowywania kopii zapasowych klucza. Do tego celu wykorzystuje się np. karty inteligentne. Klucze na ogół mają strukturę hierarchiczną

16.3 Przechowywanie kluczy Najbezpieczniejszym sposobem przechowywania klucza jest zapamiętanie go przez Alicję. Niestety sposób ten ma tę wadę, że Alicja może zapomnieć taki klucz. Klucze mogą być przechowywane w pamięci ROM. Klucz taki może być rozdzielony na połowy, z których jedna jest przechowywana w terminalu a druga w pamięci ROM. W wielu sytuacjach istnieje konieczność przechowywania kopii zapasowych klucza. Do tego celu wykorzystuje się np. karty inteligentne. Klucze na ogół mają strukturę hierarchiczną

16.3 Przechowywanie kluczy Najbezpieczniejszym sposobem przechowywania klucza jest zapamiętanie go przez Alicję. Niestety sposób ten ma tę wadę, że Alicja może zapomnieć taki klucz. Klucze mogą być przechowywane w pamięci ROM. Klucz taki może być rozdzielony na połowy, z których jedna jest przechowywana w terminalu a druga w pamięci ROM. W wielu sytuacjach istnieje konieczność przechowywania kopii zapasowych klucza. Do tego celu wykorzystuje się np. karty inteligentne. Klucze na ogół mają strukturę hierarchiczną

16.3 Przechowywanie kluczy Najbezpieczniejszym sposobem przechowywania klucza jest zapamiętanie go przez Alicję. Niestety sposób ten ma tę wadę, że Alicja może zapomnieć taki klucz. Klucze mogą być przechowywane w pamięci ROM. Klucz taki może być rozdzielony na połowy, z których jedna jest przechowywana w terminalu a druga w pamięci ROM. W wielu sytuacjach istnieje konieczność przechowywania kopii zapasowych klucza. Do tego celu wykorzystuje się np. karty inteligentne. Klucze na ogół mają strukturę hierarchiczną

16.3 Przechowywanie kluczy Najbezpieczniejszym sposobem przechowywania klucza jest zapamiętanie go przez Alicję. Niestety sposób ten ma tę wadę, że Alicja może zapomnieć taki klucz. Klucze mogą być przechowywane w pamięci ROM. Klucz taki może być rozdzielony na połowy, z których jedna jest przechowywana w terminalu a druga w pamięci ROM. W wielu sytuacjach istnieje konieczność przechowywania kopii zapasowych klucza. Do tego celu wykorzystuje się np. karty inteligentne. Klucze na ogół mają strukturę hierarchiczną

master keys klucze znajdujące się najwyżej w hierarchii, takie klucze nigdy nie są zmieniane. Taki klucz jest zwykle tylko zapamiętywany przez użytkownika lub zapisany w urządzeniu kryptograficznym. Może on być częściowo zapisany na kartach inteligentnych a częściowo zapamiętywany przez użytkownika. Master key służy do zabezpieczania innych kluczy. klucze do szyfrowania kluczy (keys-encrypting keys) klucze wykorzystywane w protokołach do uzgadniania (przesyłania) kluczy.

master keys klucze znajdujące się najwyżej w hierarchii, takie klucze nigdy nie są zmieniane. Taki klucz jest zwykle tylko zapamiętywany przez użytkownika lub zapisany w urządzeniu kryptograficznym. Może on być częściowo zapisany na kartach inteligentnych a częściowo zapamiętywany przez użytkownika. Master key służy do 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

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17 Uzgadnianie kluczy 17.1 Algorytm Diffiego-Hellmana Alicja i Bolek uzgadniają dwie liczby: dużą liczbę pierwszą p oraz liczbę g, która jest generatorem Z p Alicja wybiera losowo dużą liczbę całkowitą a < p 1 i przesyła Bolkowi x = g a (mod p) Bolek wybiera losowo dużą liczbę całkowitą b < p 1 i wysyła Alicji y = g b (mod p) Alicja oblicza K = y a (mod p) Bolek oblicza K = x b (mod p) Uzasadnienie: K = y a = (g b ) a = g ab (mod p) K = x b = (g a ) b = g ab (mod p)

17.2 Algorytm ElGamala Bolek wybiera liczbę pierwszą p oraz generator g w Z p, a następnie wybiera losowo liczbę 0 < b < p 1, oblicza g b (mod p) oraz ogłasza swój klucz publiczny {p, g, g b } Alicja pobiera klucz publiczny Bolka, wybiera losowo liczbę 0 < a < p 1 i wysyła Bolkowi g a (mod p) obliczając jednocześnie klucz K = (g b ) a (mod p) Bolek oblicza ten sam klucz K = (g a ) b (mod p)

17.2 Algorytm ElGamala Bolek wybiera liczbę pierwszą p oraz generator g w Z p, a następnie wybiera losowo liczbę 0 < b < p 1, oblicza g b (mod p) oraz ogłasza swój klucz publiczny {p, g, g b } Alicja pobiera klucz publiczny Bolka, wybiera losowo liczbę 0 < a < p 1 i wysyła Bolkowi g a (mod p) obliczając jednocześnie klucz K = (g b ) a (mod p) Bolek oblicza ten sam klucz K = (g a ) b (mod p)

17.2 Algorytm ElGamala Bolek wybiera liczbę pierwszą p oraz generator g w Z p, a następnie wybiera losowo liczbę 0 < b < p 1, oblicza g b (mod p) oraz ogłasza swój klucz publiczny {p, g, g b } Alicja pobiera klucz publiczny Bolka, wybiera losowo liczbę 0 < a < p 1 i wysyła Bolkowi g a (mod p) obliczając jednocześnie klucz K = (g b ) a (mod p) Bolek oblicza ten sam klucz K = (g a ) b (mod p)

17.2 Algorytm ElGamala Bolek wybiera liczbę pierwszą p oraz generator g w Z p, a następnie wybiera losowo liczbę 0 < b < p 1, oblicza g b (mod p) oraz ogłasza swój klucz publiczny {p, g, g b } Alicja pobiera klucz publiczny Bolka, wybiera losowo liczbę 0 < a < p 1 i wysyła Bolkowi g a (mod p) obliczając jednocześnie klucz K = (g b ) a (mod p) Bolek oblicza ten sam klucz K = (g a ) b (mod p)

17.3 Station-to Station protocol (STS) W tym protokole przyjmuje się, że Alicja ma certyfikat klucza publicznego Bolka i na odwrót Bolek ma certyfikat klucza publicznego Alicji. Niech E oznacza symetryczny algorytm szyfrujący, S A (M) oznacza podpis Alicji pod wiadomością M: S A (M) = (H(M)) d A (mod n A ) (RSA na wartości funkcji hashującej). Każda ze stron wybiera odpowiednią liczbę pierwszą p oraz generator g w Z p. Każda ze stron wybiera klucze RSA do podpisu. Alicja wybiera losowo liczbę a i wysyła Bolkowi g a (mod p) Bolek wybiera losowo liczbę b i oblicza klucz K = (g a ) b (mod p)

17.3 Station-to Station protocol (STS) W tym protokole przyjmuje się, że Alicja ma certyfikat klucza publicznego Bolka i na odwrót Bolek ma certyfikat klucza publicznego Alicji. Niech E oznacza symetryczny algorytm szyfrujący, S A (M) oznacza podpis Alicji pod wiadomością M: S A (M) = (H(M)) d A (mod n A ) (RSA na wartości funkcji hashującej). Każda ze stron wybiera odpowiednią liczbę pierwszą p oraz generator g w Z p. Każda ze stron wybiera klucze RSA do podpisu. Alicja wybiera losowo liczbę a i wysyła Bolkowi g a (mod p) Bolek wybiera losowo liczbę b i oblicza klucz K = (g a ) b (mod p)

17.3 Station-to Station protocol (STS) W tym protokole przyjmuje się, że Alicja ma certyfikat klucza publicznego Bolka i na odwrót Bolek ma certyfikat klucza publicznego Alicji. Niech E oznacza symetryczny algorytm szyfrujący, S A (M) oznacza podpis Alicji pod wiadomością M: S A (M) = (H(M)) d A (mod n A ) (RSA na wartości funkcji hashującej). Każda ze stron wybiera odpowiednią liczbę pierwszą p oraz generator g w Z p. Każda ze stron wybiera klucze RSA do podpisu. Alicja wybiera losowo liczbę a i wysyła Bolkowi g a (mod p) Bolek wybiera losowo liczbę b i oblicza klucz K = (g a ) b (mod p)

17.3 Station-to Station protocol (STS) W tym protokole przyjmuje się, że Alicja ma certyfikat klucza publicznego Bolka i na odwrót Bolek ma certyfikat klucza publicznego Alicji. Niech E oznacza symetryczny algorytm szyfrujący, S A (M) oznacza podpis Alicji pod wiadomością M: S A (M) = (H(M)) d A (mod n A ) (RSA na wartości funkcji hashującej). Każda ze stron wybiera odpowiednią liczbę pierwszą p oraz generator g w Z p. Każda ze stron wybiera klucze RSA do podpisu. Alicja wybiera losowo liczbę a i wysyła Bolkowi g a (mod p) Bolek wybiera losowo liczbę b i oblicza klucz K = (g a ) b (mod p)

17.3 Station-to Station protocol (STS) W tym protokole przyjmuje się, że Alicja ma certyfikat klucza publicznego Bolka i na odwrót Bolek ma certyfikat klucza publicznego Alicji. Niech E oznacza symetryczny algorytm szyfrujący, S A (M) oznacza podpis Alicji pod wiadomością M: S A (M) = (H(M)) d A (mod n A ) (RSA na wartości funkcji hashującej). Każda ze stron wybiera odpowiednią liczbę pierwszą p oraz generator g w Z p. Każda ze stron wybiera klucze RSA do podpisu. Alicja wybiera losowo liczbę a i wysyła Bolkowi g a (mod p) Bolek wybiera losowo liczbę b i oblicza klucz K = (g a ) b (mod p)

Bolek podpisuje konkatenację g b, g a, szyfruje podpis kluczem K i wysyła Alicji g b (mod p) oraz E K (S B (g b, g a )) Alicja oblicza klucz K = (g b ) a (mod p), deszyfruje otrzymane dane oraz używa klucza publicznego Bolka do sprawdzenia podpisu pod wartością funkcji hashują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 Bolkowi E K (S A (g a, g b )) Bolek deszyfruje otrzymaną wiadomość, weryfikuje podpis Alicji i jeśli wynik jest pozytywny, akceptuje klucz K

Bolek podpisuje konkatenację g b, g a, szyfruje podpis kluczem K i wysyła Alicji g b (mod p) oraz E K (S B (g b, g a )) Alicja oblicza klucz K = (g b ) a (mod p), deszyfruje otrzymane dane oraz używa klucza publicznego Bolka do sprawdzenia podpisu pod wartością funkcji hashują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 Bolkowi E K (S A (g a, g b )) Bolek deszyfruje otrzymaną wiadomość, weryfikuje podpis Alicji i jeśli wynik jest pozytywny, akceptuje klucz K

Bolek podpisuje konkatenację g b, g a, szyfruje podpis kluczem K i wysyła Alicji g b (mod p) oraz E K (S B (g b, g a )) Alicja oblicza klucz K = (g b ) a (mod p), deszyfruje otrzymane dane oraz używa klucza publicznego Bolka do sprawdzenia podpisu pod wartością funkcji hashują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 Bolkowi E K (S A (g a, g b )) Bolek deszyfruje otrzymaną wiadomość, weryfikuje podpis Alicji i jeśli wynik jest pozytywny, akceptuje klucz K

17.4 Uzgadnianie klucza z szyfrowaniem Zakładamy, że Alicja i Bolek (użytkownik i komputer) znają hasło P. Alicja generuje losowo parę kluczy (publiczny i prywatny), szyfruje klucz publiczny K używając algorytmu symetrycznego wykorzystującego hasło P jako klucz i wysyła do Bolka E P (K ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując klucz K, następnie generuje klucz sesyjny K, szyfruje ten klucz kluczem publicznym K oraz kluczem P i wysyła Alicji E P (E K (K))

17.4 Uzgadnianie klucza z szyfrowaniem Zakładamy, że Alicja i Bolek (użytkownik i komputer) znają hasło P. Alicja generuje losowo parę kluczy (publiczny i prywatny), szyfruje klucz publiczny K używając algorytmu symetrycznego wykorzystującego hasło P jako klucz i wysyła do Bolka E P (K ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując klucz K, następnie generuje klucz sesyjny K, szyfruje ten klucz kluczem publicznym K oraz kluczem P i wysyła Alicji E P (E K (K))

17.4 Uzgadnianie klucza z szyfrowaniem Zakładamy, że Alicja i Bolek (użytkownik i komputer) znają hasło P. Alicja generuje losowo parę kluczy (publiczny i prywatny), szyfruje klucz publiczny K używając algorytmu symetrycznego wykorzystującego hasło P jako klucz i wysyła do Bolka E P (K ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując klucz K, następnie generuje klucz sesyjny K, szyfruje ten klucz kluczem publicznym K oraz kluczem P i wysyła Alicji E P (E K (K))

17.4 Uzgadnianie klucza z szyfrowaniem Zakładamy, że Alicja i Bolek (użytkownik i komputer) znają hasło P. Alicja generuje losowo parę kluczy (publiczny i prywatny), szyfruje klucz publiczny K używając algorytmu symetrycznego wykorzystującego hasło P jako klucz i wysyła do Bolka E P (K ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując klucz K, następnie generuje klucz sesyjny K, szyfruje ten klucz kluczem publicznym K oraz kluczem P i wysyła Alicji E P (E K (K))

Alicja deszyfruje wiadomość otrzymaną od Bolka uzyskując klucz K. Następnie generuje ciąg losowy r A, szyfruje go kluczem K i wysyła do Bolka E K (r A ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując ciąg r A, generuje własny ciąg losowy r B, szyfruje obydwa ciągi kluczem K i wysyła Alicji E K (r A, r B ) Alicja deszyfruje wiadomość uzyskując r A i r B. Jeśli r A jest prawidłowe, szyfruje r B i wysyła do Bolka E K (r B ) Bolek deszyfruje wiadomość i jeśli r B jest prawidłowe klucz K zostaje zaakceptowany jako klucz sesyjny.

Alicja deszyfruje wiadomość otrzymaną od Bolka uzyskując klucz K. Następnie generuje ciąg losowy r A, szyfruje go kluczem K i wysyła do Bolka E K (r A ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując ciąg r A, generuje własny ciąg losowy r B, szyfruje obydwa ciągi kluczem K i wysyła Alicji E K (r A, r B ) Alicja deszyfruje wiadomość uzyskując r A i r B. Jeśli r A jest prawidłowe, szyfruje r B i wysyła do Bolka E K (r B ) Bolek deszyfruje wiadomość i jeśli r B jest prawidłowe klucz K zostaje zaakceptowany jako klucz sesyjny.

Alicja deszyfruje wiadomość otrzymaną od Bolka uzyskując klucz K. Następnie generuje ciąg losowy r A, szyfruje go kluczem K i wysyła do Bolka E K (r A ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując ciąg r A, generuje własny ciąg losowy r B, szyfruje obydwa ciągi kluczem K i wysyła Alicji E K (r A, r B ) Alicja deszyfruje wiadomość uzyskując r A i r B. Jeśli r A jest prawidłowe, szyfruje r B i wysyła do Bolka E K (r B ) Bolek deszyfruje wiadomość i jeśli r B jest prawidłowe klucz K zostaje zaakceptowany jako klucz sesyjny.

Alicja deszyfruje wiadomość otrzymaną od Bolka uzyskując klucz K. Następnie generuje ciąg losowy r A, szyfruje go kluczem K i wysyła do Bolka E K (r A ) Bolek deszyfruje wiadomość otrzymaną od Alicji otrzymując ciąg r A, generuje własny ciąg losowy r B, szyfruje obydwa ciągi kluczem K i wysyła Alicji E K (r A, r B ) Alicja deszyfruje wiadomość uzyskując r A i r B. Jeśli r A jest prawidłowe, szyfruje r B i wysyła do Bolka E K (r B ) Bolek deszyfruje wiadomość i jeśli r B jest prawidłowe klucz K zostaje zaakceptowany jako klucz sesyjny.

Istnieją różne implementacje tego protokołu, z wykorzystaniem algorytmu RSA czy ElGamala. Protokół ten wzmacnia bezpieczeństwo przy uzgadnianiu klucza sesyjnego.

Istnieją różne implementacje tego protokołu, z wykorzystaniem algorytmu RSA czy ElGamala. Protokół ten wzmacnia bezpieczeństwo przy uzgadnianiu klucza sesyjnego.

17.5 ssh (secure shell) Protokół umożliwiający bezpieczne logowanie się do komputerów w sieci stworzony przez Tatu Ylönena, który skutecznie zapobiega takim metodom ataku jak IP Spoofing i DNS Spoofing, czy też podsłuchiwaniu haseł lub transmitowanych danych. Obecnie rozwijana jest wersja OpenSSH, na licencji GNU.

17.5 ssh (secure shell) Protokół umożliwiający bezpieczne logowanie się do komputerów w sieci stworzony przez Tatu Ylönena, który skutecznie zapobiega takim metodom ataku jak IP Spoofing i DNS Spoofing, czy też podsłuchiwaniu haseł lub transmitowanych danych. Obecnie rozwijana jest wersja OpenSSH, na licencji GNU.

17.5 ssh (secure shell) Protokół umożliwiający bezpieczne logowanie się do komputerów w sieci stworzony przez Tatu Ylönena, który skutecznie zapobiega takim metodom ataku jak IP Spoofing i DNS Spoofing, czy też podsłuchiwaniu haseł lub transmitowanych danych. Obecnie rozwijana jest wersja OpenSSH, na licencji GNU.

przy instalacji programu generowana jest para kluczy algorytmu asymetrycznego przynależna danemu komputerowi klucz publiczny komputera host key przy uruchomieniu demona sshd generowana jest następna para kluczy server keys. Publiczny jest dostępny do czytania, a prywatny jest przechowywany w 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.

przy instalacji programu generowana jest para kluczy algorytmu asymetrycznego przynależna danemu komputerowi klucz publiczny komputera host key przy uruchomieniu demona sshd generowana jest następna para kluczy server keys. Publiczny jest dostępny do czytania, a prywatny jest przechowywany w 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.

przy instalacji programu generowana jest para kluczy algorytmu asymetrycznego przynależna danemu komputerowi klucz publiczny komputera host key przy uruchomieniu demona sshd generowana jest następna para kluczy server keys. Publiczny jest dostępny do czytania, a prywatny jest przechowywany w 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.

przy instalacji programu generowana jest para kluczy algorytmu asymetrycznego przynależna danemu komputerowi klucz publiczny komputera host key przy uruchomieniu demona sshd generowana jest następna para kluczy server keys. Publiczny jest dostępny do czytania, a prywatny jest przechowywany w 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, to komputer ten wysyła jej swoje dwa klucze publiczne host key i server key. Komputer Alicji sprawdza czy host key zgadza się z kluczem zapisanym w lokalnym pliku known-hosts. Jeśli wszystko się zgadza to Alicja generuje losowy klucz sesji i szyfruje go po kolei obydwoma kluczami publicznymi komputera Bolka i tak uzyskany kryptogram przesyła do Bolka. Bolek potrzebuje dwóch kluczy prywatnych do odszyfrowania klucza sesyjnego Bolek przesyła Alicji liczbę losową r B zaszyfrowaną kluczem publicznym Alicji.

Kiedy Alicja próbuje zalogować się na komputer Bolka, to komputer ten wysyła jej swoje dwa klucze publiczne host key i server key. Komputer Alicji sprawdza czy host key zgadza się z kluczem zapisanym w lokalnym pliku known-hosts. Jeśli wszystko się zgadza to Alicja generuje losowy klucz sesji i szyfruje go po kolei obydwoma kluczami publicznymi komputera Bolka i tak uzyskany kryptogram przesyła do Bolka. Bolek potrzebuje dwóch kluczy prywatnych do odszyfrowania klucza sesyjnego Bolek przesyła Alicji liczbę losową r B zaszyfrowaną kluczem publicznym Alicji.

Kiedy Alicja próbuje zalogować się na komputer Bolka, to komputer ten wysyła jej swoje dwa klucze publiczne host key i server key. Komputer Alicji sprawdza czy host key zgadza się z kluczem zapisanym w lokalnym pliku known-hosts. Jeśli wszystko się zgadza to Alicja generuje losowy klucz sesji i szyfruje go po kolei obydwoma kluczami publicznymi komputera Bolka i tak uzyskany kryptogram przesyła do Bolka. Bolek potrzebuje dwóch kluczy prywatnych do odszyfrowania klucza sesyjnego Bolek przesyła Alicji liczbę losową r B zaszyfrowaną kluczem publicznym Alicji.

Kiedy Alicja próbuje zalogować się na komputer Bolka, to komputer ten wysyła jej swoje dwa klucze publiczne host key i server key. Komputer Alicji sprawdza czy host key zgadza się z kluczem zapisanym w lokalnym pliku known-hosts. Jeśli wszystko się zgadza to Alicja generuje losowy klucz sesji i szyfruje go po kolei obydwoma kluczami publicznymi komputera Bolka i tak uzyskany kryptogram przesyła do Bolka. Bolek potrzebuje dwóch kluczy prywatnych do odszyfrowania klucza sesyjnego Bolek przesyła Alicji liczbę losową r B zaszyfrowaną kluczem publicznym Alicji.

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