logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Programy i sprzęt do testowania algorytmów AES, DES, ECC

blue_17 06 Wrz 2011 00:11 4420 20
REKLAMA
  • #1 9899469
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    Witam chciałbym przeprowadzić i udokumentować testy algorytmów szyfrujących AES, DES oraz opartych na krzywych eliptycznych oraz czymś w rodzaju kluczy publicznych

    1. Czy istnieją programy do takich testów :?:
    2. Jaki sprzętem, mocą obliczeniową trzeba dysponować aby przeprowadzając takie testy
    nie chodzi mi tu dokładnie o złamanie kodowania tylko określenie czasu w którym można to zrobić :?:
    3. Czy implementacje tych algorytmów są dostępne powszechnie, chodzi mi oczywiście pod względem matematycznym a nie pod postacią gotowego kodu ;)

    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 9899679
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    1. Istnieją programy do łamania szyfrów (a ściślej: kluczy), ale najlepiej znać algorytm szyfrujący ;)
    2. Żadną. Do wyznaczenia czasu wystarczy znać złożoność algorytmu łamiącego, sposób jego pracy oraz parametry (głównie długość klucza) szyfru; potem wystarczy kartka i długopis lub kalkulator.
    3. Tak (a co za różnica, czy kod, czy matematyka - przecież to jedno i to samo ;) )
  • REKLAMA
  • #3 9900217
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    A co w przypadku mieszania szyfrowań czy w tedy czas jest sumą poszczególnych czasów, i co będzie kiedy zastosuje się kilka kilkanaście gpu wtedy czas znajdywania również się skróci :?:

    Bo jeśli klucz jest niesymetryczny to wiele to nie da.

    Pozdrawiam
  • Pomocny post
    #4 9900288
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Powinien Cię zainteresować program CrypTool, tylko polecam wersję 1.X. Nie korzysta z GPU i innych tego rodzaju udogodnień, ale potrafi szyfrować i deszyfrować wiele algorytmów, dokonywać prób ich łamania wyświetlając szacowany czas i ma kilka funkcji do analizy kryptograficznej oraz kilka innych ficzerów. Takie bardziej szkolne narzędzie pomocne przy nauce na temat kryptografii i kryptologii.
  • #5 9900633
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    Dzienki McMonster chociaż już się natknąłem na ten program

    Ale u mnie spraw jest trochę inna bo jak mówię chciałbym testować mix tych szyfrowań

    Czy są jakieś narzędzia niekoniecznie darmowe do sprawdzania jakości takich zabezpieczeń,

    Chodzi mi o podobne testy jak przy certyfikacji NATO niestety niemożna znaleźć jak oni to testują.

    Pozdrawiam
  • #6 9900691
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Najprościej byłoby chyba napisać jakiś skrypt wywołujący odpowiednie programy szyfrujące, deszyfrujące i łamiące oraz zbierający wyniki np. do pliku.
  • #7 9901381
    Dżyszla
    Poziom 42  
    Posty: 7077
    Pomógł: 1095
    Ocena: 226
    Cóż, w przypadku szyfrowania już zaszyfrowanych danych, szczególnie innym algorytmem, stopień złożoności pewnie wzrośnie dość diametralnie. Szczególnie, że w takim przypadku odpadają metody bazujące na spodziewanej odpowiedzi. Choć powiem szczerze, że nie szczególnie spotkałem się z takim podejściem do tematu przez jakiekolwiek programy. Ale może to moje małe doświadczenie tylko. niemniej trzeba by się zastanowić - dlaczego.

    Tak na marginesie - za taką metodę można uznać np 3DES :) Poczytaj o nim i chyba znajdziesz odpowiedź na swoje pytanie. Przynajmniej częściowo.
  • Pomocny post
    #8 9901904
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Takie hybrydowe szyfrowanie jest stosowane, chociaż nie jestem w stanie podać jakiegoś konkretnego przykładu. Chyba najprostsze wyjaśnienie jest takie, że są algorytmy, które przy odpowiednio długim kluczu są obecnie całkowicie bezpieczne.
  • REKLAMA
  • #9 9902138
    sebap123
    Poziom 10  
    Posty: 17
    Taka moja rada - jeśli chcesz testować szyfrowania to zacznij od pojedynczych szyfrów. Na wielokrotnie złożone przyjdzie czas.
    Na sam początek poczytaj sobie o paru szyfrowaniach i zobaczysz wtedy, że nawet nie ma co wielokrotnie szyfrować danych, bo niektóre z popularnych szyfrów są na tyle bezpieczne, że tylko komputery kwantowe są w stanie je złamać.
  • #10 9902281
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    Chciałbym testować urządzenie które stosuje szyfrowanie AES 256 z 256 bitowym symetrycznym kluczem, przyczyn klucz podczas każdego nowego działania jest zmieniany do tego anty zakłóceniowy klucz 4096 bitowy z Diffie-Hellman i/lub 571 bitowy klucz generowany na podstawie krzywych eliptycznych.

    Chcę testować to urządzenie :D a dokładnie jego bezpieczeństwo, a w dzisiejszych kryteriach ile zajmie znalezienie klucza, a dodam jeszcze że można również coś stosować na wzór niesymetrycznego klucza publicznego wszystko w jednym urządzeniu :D

    sebap123 napisał:
    bo niektóre z popularnych szyfrów są na tyle bezpieczne, że tylko komputery kwantowe są w stanie je złamać.


    Otóż właśnie niema algorytmu który gwarantuje 100% bezpieczeństwa tylko czas który jest potrzebny do znalezienia klucza jest odpowiednio długi, lub sprzęt do takich przeliczeń jest mega drogi

    P.S A ile mamy oficjalnie tych komputerów kwantowych 2,3 :?:

    Pozdrawiam
  • REKLAMA
  • #11 9902613
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Bodaj jakaś firma z Kanady produkuje takie komputery, ceny nie są astronomiczne (w skali superkomputerowej).

    Tylko teraz zastanów się, ile potrzeba sprawdzić kombinacji dla dużych kluczy dowolnego algorytmu uznawanego za bezpieczny. Mnie na studiach uczono, że obecnie 1024-bitowe klucze uważa się za bezpieczne, czyli że czas odnajdywania klucza przy obecnym sprzęcie, nawet spiętym w olbrzymie klastry i takim, który może się pojawić w przewidywalnej przyszłości jest wciąż ogromny.

    Skoro tak Ci zależy na bezpieczeństwie, to stosuj np. 2048-bitowe klucze. Gdy nadejdą czasy, że będą możliwości techniczne do ich łamania, to już nie będzie pamięci o Tobie, tym urządzeniu, chronionych przez nie danych, a prawdopodobnie też o gwieździe naszego układu słonecznego.

    Jest jeszcze jedno miejsce, gdzie możesz poszukać inspiracji i wiedzy praktycznej, strony amerykańskich agencji rządowych, w szczególności NSA. Stworzyli standardy bezpiecznego usuwania danych z np. dysków twardych, to może mają też coś do poczytania na temat kryptografii.
  • #12 9902640
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    Niestety ale żeby mieć klucz 1024 bitowy i robić coś w czasie rzeczywistym to chyba niezłe wyzwanie samo w sobie bo urządzenie wtedy z wielkości małego pudełka opartego na ARM-ie czy też FPGA zamienia się w serwerek :)

    Co do algorytmów szyfrowania to prym wiedzie NSA ich tworami są SH-1 i SH-2

    Podrawiam
  • #13 9902670
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Algorytmy szyfrowania nie są skomplikowane obliczeniowo (poza przypadkiem próby deszyfracji bez znajomości klucza oczywiście ;)), można je stosować nawet na papierze, byle kalkulator sobie poradzi, a ARM nie powinien dostać nawet zadyszki.

    Ja na kolokwium w tym semestrze liczyłem na papierze RSA, tylko dla trochę mniejszych parametrów. W CrypToolu są prezentacje pokazujące działanie niektórych algorytmów, polecam je sobie obejrzeć.
  • #14 9903757
    sebap123
    Poziom 10  
    Posty: 17
    blue_17 napisał:

    Otóż właśnie niema algorytmu który gwarantuje 100% bezpieczeństwa tylko czas który jest potrzebny do znalezienia klucza jest odpowiednio długi, lub sprzęt do takich przeliczeń jest mega drogi

    P.S A ile mamy oficjalnie tych komputerów kwantowych 2,3 :?:


    Zgodzę się, że nie ma algorytmu doskonałego. Chyba nawet to napisałem. Ale Czas potrzebny do złamania, nawet przez średniej klasy klaster obliczeniowy to są o ile się nie mylę setki lat. Dlatego uznaje je się za "niezniszczalne".

    A co do ilości prawdziwych komputerów kwantowych, to nie wiem, czy jakikolwiek istnieje. Co prawda słyszałem już parę plotek, że gdzieś w jakichś agencjach jest, ale większość naukowców w to nie wieży, bo ludzie jeszcze nie do końca wiedzą co wykorzystać w roli kubita.
  • #15 9904106
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Znalazłem. Było chyba nawet w newsach na elektrodzie. Widać jednak coś się udało zmajstrować.
  • #16 9904267
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    Szukam o zastosowaniu krzywych eliptycznych można to gdzieś znaleźć jakoś opracowane żeby sobie kod na podstawie tego zklecić :?:

    Czy przy kluczu 1024 bitowym i zastosowani kilku po sobie algorytmów kodowania kiedy chciałbym dekodowanie i kodowanie wykonywać w czasie rzeczywistym musiał bym już wykorzystać mini serwer na kilku GPU :?:
  • Pomocny post
    #17 9904492
    And!
    Admin grupy Projektowanie
    Posty: 9061
    Pomógł: 175
    Ocena: 784
    Samo testowanie algorytmów istniejących lub nowych to bardziej
    kryptoanaliza niż uruchamianie programu i zapisywanie wyników.

    Symetryczne algorytmy szyfrujące są deterministyczne i wiadomo ile zajmie przeliczenie jednego klucza.
    Znając długość klucza, rodzaj algorytmu możemy obliczyć potrzebną ilość iteracji,
    do wykonania ataku brutforce, przy założeniu że posiadamy odpowiedni test dla danych oceniający poprawność rozszyfrowania.

    Nie ma tutaj miejsca na badania syntetyczne z użyciem programów mierzących czas
    (chyba że oceniamy czas pojedynczej iteracji na naszym sprzęcie)

    Inne ataki poza brutforce na dobry algorytm szyfrujący,
    możliwe są przy pewnych określonych warunkach,
    które wynikają z niedoskonałości algorytmu,
    sposobu wykorzystania algorytmu (trybu szyfrowania bloków),
    niedoskonałości urządzenia szyfrującego (ulot EM, możliwość penetracji komórek pamięci)

    Tutaj także brak miejsca na testy programami.

    Jest jeden wskaźnik o którego mierzenie można się pokusić,
    aby ocenić wstępnie jakość nowego algorytmu,
    lub poprawność lub sposób wykorzystania istniejącego:
    ocena losowości szyfrogramu, powinien on jak najbardziej przypominać ciąg losowy.
    Natomiast sam algorytm powinien być taki aby zmiana dowolnego bitu klucza,
    powodowała jak największe zamieszanie w szyfrogramie.

    Co do realizacji sprzętowej, zaczynając od AVR XMEGA jest wyposażony
    w sprzętowy blok akceleracji obliczeń dla AES/DES.
    Lub jeżeli to potrzebne większe wydajności można zastosować FPGA z zaimplementowanym szyfratorem.


    Co do algorytmów niesymetrycznych,
    warto je zastosować gdy wymiana kluczy szyfrujących ,
    dla algorytmów symetrycznych musi nastąpić kanałem publicznym.
    Jeżeli można wymienić klucze w inny sposób,
    można odpuścić szyfry niesymetryczne.
    Jeżeli będziemy korzystać z szyfrów niesymetrycznych,
    nie będziemy ich obliczać co sekundę,
    jeżeli bezpiecznie wymieniliśmy klucze, to należy z nich korzystać.

    Gorzej jeżeli potrzebne byłoby wykorzystanie szyfrów niesymetrycznych,
    do podpisywania treści, niezaprzeczalności itd. wtedy zapotrzebowanie na moc
    obliczeniową wzrasta.
  • #18 9904843
    blue_17
    Poziom 32  
    Posty: 2414
    Pomógł: 172
    Ocena: 472
    Dziękuje kolego And!

    Czyli wynika z tego że kluczem do jakości jest klucz a właściwie jego jakość.

    Chciałbym stosować kilkukrotne szyfrowanie , i zobaczyć ilość iteracji przy kluczu 1024 bitowym

    Tylko jedno mnie nurtuje jak wygląda arytmetyka 1024 bitowa z kluczem niesymetrycznym jeśli musi ona jeszcze odbywać się w czasie rzeczywistym

    Jakiego pokroju sprzęt podoła takiemu zadaniu, czy wystarczy mini pecet czy trzeba zaprzęgnąć 2 konkretne karty graficzne.

    Pozdrawiam
  • #19 9905087
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    Co masz na myśli pod pojęciem czasu rzeczywistego? Obliczeniowo cudów tu nie ma, ale wszystko zależy m.in. od tego, ile w danej jednostce czasu pojawia się zadań szyfrowania lub deszyfrowania i jak wiele danych jest w każdym zadaniu. Ale potrzebny czas zawsze można dość dokłądnie obliczyć znając liczbę i rozmiar zadań.
  • #21 9905197
    McMonster
    Poziom 32  
    Posty: 1942
    Pomógł: 182
    Ocena: 57
    W takim razie jesteś w stanie skutecznie ocenić ilość danych i ile operacji w jakim czasie musisz wykonać do płynnego odtwarzania dla danego algorytmu.

Podsumowanie tematu

✨ W dyskusji poruszono kwestie związane z testowaniem algorytmów szyfrujących, takich jak AES, DES oraz algorytmy oparte na krzywych eliptycznych. Użytkownicy pytali o dostępne programy do testowania, wymagania sprzętowe oraz dostępność implementacji algorytmów. Zasugerowano program CrypTool jako narzędzie do analizy kryptograficznej, które umożliwia szyfrowanie i deszyfrowanie różnych algorytmów oraz szacowanie czasu łamania. Wskazano również na znaczenie długości klucza oraz złożoności algorytmu w kontekście bezpieczeństwa. Uczestnicy dyskusji podkreślili, że testowanie hybrydowych szyfrowań oraz zastosowanie kilku algorytmów jednocześnie zwiększa złożoność obliczeniową. Wskazano na potrzebę odpowiedniego sprzętu, takiego jak mini serwery z wieloma GPU, do realizacji zadań w czasie rzeczywistym.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA