2010-08-30 15 views
7

Mam egzamin jutro w Advanced Development, ale utknąłem na temacie Encryption. Przeczytałem o tym na stronie http://support.microsoft.com/kb/246071. Jednak nadal jestem zdezorientowany.Szyfrowanie asymetryczne

Jeśli wiadomość jest zaszyfrowana przy użyciu szyfrowania asymetrycznego, przy użyciu klucza publicznego, w jaki sposób odszyfrownik pozna klucz prywatny, za pomocą którego będzie go odszyfrować? Z pewnością jedynym sposobem na zrobienie tego jest publiczne udostępnienie klucza prywatnego, ale to pokonuje obiekt szyfrowania asymetrycznego.

Czy ktoś może wyjaśnić to w taki sposób, w jaki osoba nietechnologiczna byłaby w stanie to zrozumieć? Jest to jedyne szyfrowanie asymetryczne, którego nie rozumiem, a nie szyfrowanie symetryczne. Z góry dziękuję.

Pozdrawiam,

Richard

Edit: Więc Podsumowując wszystkie odpowiedzi w przypadku aplikacji internetowych (określonego zastosowania, dla którego muszę o tym wiedzieć):

  1. Użytkownik odwiedza witrynę;
  2. Użytkownik jest proszony o podanie klucza publicznego;
  3. Użytkownik tworzy publiczną i prywatną parę kluczy, zachowuje prywatną prywatną i odsyła klucz publiczny do serwera;
  4. Serwer używa klucza publicznego do szyfrowania wszystkiego, co musi zostać wysłane do użytkownika i wysyła informacje do użytkownika;
  5. Użytkownik wykorzystuje swój klucz prywatny do odszyfrowania odpowiedzi z serwera;
  6. Użytkownik robi to, czego potrzebuje, i odsyła odpowiedź do serwera, używając klucza prywatnego do zaszyfrowania;
  7. Serwer odszyfrowuje za pomocą klucza publicznego. Kroki 4 - 7 mogą być kontynuowane wiele razy lub mogą się zdarzyć tylko raz lub mogą wystąpić tylko 4 i 5.

Czy to wszystko jest poprawne? Jeśli tak, to powinno być wszystko, co muszę wiedzieć o egzaminie. Nie powinienem myśleć, że będę musiał wiedzieć więcej, aby uzyskać maksimum 40%, jeśli pojawi się pytanie na ten temat - wspomnę jednak o istnieniu certyfikatów i podpisów.

Dziękuję za całą pomoc.

Pozdrawiam,

Richard

Edit: No ja właśnie wróciłam z mojego egzaminu i poszło całkiem ok, myślę. Ale nie padło pytanie o kryptografię, jednak ... Pomoc została doceniona. Dziękuje wszystkim.

Pozdrawiam,

Richard

+1

http://en.wikipedia.org/wiki/Public-key_cryptography? –

+1

BTW, jeśli interesuje cię kryptografia, powinieneś zajrzeć do "The Code Book" Simona Singha –

+0

Dzięki za link do wiki, jednak a) powiedziano nam, by nigdy nie używać wiki (i tak nadal czynię dla większości rzeczy !!) i b) sposób, w jaki został tutaj wyjaśniony, jest o wiele łatwiejszy do zrozumienia niż wiki. Jednak wiki ma kilka dobrych rozdziałów o praktycznych implikacjach. – ClarkeyBoy

Odpowiedz

7

Alicja tworzy swój klucz prywatny + klucz publiczny. Trzyma prywatny klucz prywatny. Sprawia, że ​​jej publiczny klucz jest publiczny.

Bob bierze klucz publiczny Alicji (powinien najpierw sprawdzić, czy to naprawdę klucz publiczny Alicji!) I używa go do zaszyfrowania wiadomości, którą wysyła do Alicji.

Alicja może odszyfrować wiadomość, używając jej klucza prywatnego.

+0

Z tego, co rozumiem, działa też na odwrót - Alicja może szyfrować za pomocą swojego klucza prywatnego, a następnie może odszyfrować. Dobry sposób na wyjaśnienie tego. Dzięki. – ClarkeyBoy

+0

Nie. W tym scenariuszu Bob musiałby użyć klucza publicznego do odszyfrowania. Ale każdy jeszcze zna klucz publiczny (jest publiczny!) I może również odszyfrować. – Jens

+0

@Jens: Nie jest przydatne do szyfrowania (w sensie tajności), ale może być używane do podpisywania wiadomości. Uwaga: W zależności od schematu szyfrowania ważne może być użycie różnych kluczy do podpisu i szyfrowania (patrz np. Http://security.stackexchange.com/q/1806) –

2

Klucz publiczny jest do „szyfratora” przez „dekodera”, zatem z definicji „deszyfrującego” zna klucz prywatny (ponieważ jest to część para kluczy tworzony przez „dekodera”.

+0

Ach, więc czy mówisz, że wiadomość jest szyfrowana przez odszyfrowanie za pomocą klucza prywatnego, więc szyfrowanie może odszyfrować wiadomość, a następnie odesłać wiadomość zaszyfrowaną przy użyciu klucza publicznego, który tylko użytkownik z oryginalnym kluczem prywatnym może odszyfrować? To ma sens, chyba że haker zdobędzie oryginalną wiadomość zawierającą klucz publiczny. Czy nadal go nie dostaję? – ClarkeyBoy

+1

Nie ... z asymetryczną kryptografią musisz wysyłać do innych ludzi tylko swój klucz publiczny. Bez względu na to, kto słucha tej wiadomości, każdy może zaszyfrować informacje za pomocą Twojego klucza publicznego i wysłać go do Ciebie. Jeśli ktoś nas słucha, nie ma to znaczenia, ponieważ tylko Ty masz klucz prywatny (którego nigdy nie należy przekazywać). – Sebastian

+0

W związku z tym rozumiem, że w aplikacji internetowej to klienci (użytkownicy), którzy dostarczają klucz publiczny do serwera i zachowują klucz prywatny ..? Jeśli tak, to ma to sens. Dzięki. – ClarkeyBoy

1

Powiedzmy „deszyfrującego” = D, a „szyfratora” = E.

D wcześniej wysłał swój klucz publiczny do E, więc E może zaszyfrować mesage.Ponieważ tylko D zna swój prywatny klucz, tylko D będzie wiedział, jak odszyfrować wiadomość, którą E wysłał mu (pamiętaj: jeden klucz służy do szyfrowania, a drugi do odszyfrowania). W ten sposób uzyskujesz prywatność.

5

Inni podali "ogólny" opis, a ja zajrzę głębiej w stronę prawdziwego życia.

Większość współczesnych asymetrycznych standardów szyfrowania nie działa z surowymi kluczami publicznymi i prywatnymi, ale z bardziej złożonymi kodami, takimi jak certyfikaty X.509 lub klucze OpenPGP (są to obecnie dwie najbardziej popularne asymetryczne infrastruktury szyfrowania). Zarówno certyfikaty, jak i klucze OpenPGP zawierają dodatkowe informacje, które pozwalają na łatwe identyfikowanie, wyszukiwanie i zarządzanie.

Teraz zaszyfrowany blok danych zwykle obejmuje część publiczną (tj. Certyfikat lub publiczny klucz OpenPGP) służącą do szyfrowania lub przynajmniej identyfikator (hash tej części publicznej). Odbiorca danych zwykle ma (lub ma mieć) zarówno część publiczną, jak i prywatną (klucze prywatne są zwykle przechowywane razem z certyfikatami lub publicznymi kluczami openpgp) pod ręką. Kiedy więc odbiorca otrzyma zaszyfrowane dane, wie, że musi sprawdzić swoją pamięć klucza prywatnego dla części publicznej o danym ID (lub dla danej części publicznej, gdy jest ona zawarta w zaszyfrowanych danych).

Istnieją przypadki, gdy nic nie jest uwzględnione. Następnie odbiorca nie ma nic innego do roboty, jak wypróbować wszystkie dostępne klucze prywatne do odszyfrowania. Ale takie przypadki są rzadkie, ponieważ domyślnie certyfikat lub klucz id są obecne w zaszyfrowanym bloku danych.

+0

To jest dobra odpowiedź - musisz dodać informacje identyfikujące do zaszyfrowanego bloku/bloba, aby zidentyfikować, które klucze zostaną poddane drecryptowaniu. (nazwa, odcisk palca lub mieszanie klucza publicznego) –

12

Klucz prywatny ma być znany tylko jego prawowitemu użytkownikowi i nie jest rozpowszechniany. Jego odpowiednik, klucz publiczny, może zostać przekazany każdemu.

Na tej podstawie można dostać 4 operacje:

  • szyfrowanie za pomocą klucza publicznego
  • Deszyfruj przy użyciu klucza prywatnego
  • znak przy użyciu klucza prywatnego
  • zweryfikować podpis pomocą publiczną klucz

Następny problem, który możesz napotkać, to powiązanie tożsamości z kluczem publicznym (tak jak nie byłoby to możliwe) t chcesz zaszyfrować coś lub zaufać czemuś podpisanemu kluczem publicznym oszusta). Istnieją różne modele dystrybucji kluczy publicznych. Zazwyczaj można mieć:

  • web of trust, gdzie ludzie podpisać wzajemnie powiązanie między kluczem publicznym i tożsamości: jest to zazwyczaj model PGP.
  • a public key infrastructure (PKI), w której organy certyfikacji uzyskują certyfikaty, często z półproduktami, w hierarchii drzewiastej. (PGP może również używać tego modelu, ale wydaje się to mniej powszechne.)