Blog (76)
Komentarze (5.6k)
Recenzje (0)
@nintyfanHashe z ziarna i szyfr cezara

Hashe z ziarna i szyfr cezara

Od pewnego czasu postanowiłem wymyślić coś, co utrudni kradzież hasła. Problem jest taki, że np. keyloger może wykraść hasło lub ktoś może je podpatrzeć/nagrać na dyktafon podczas wpisywania. By rozwiązać ten problem postanowiłem... pozbyć się haseł.

O problemie

Na rynku są już rozwiązania, ale wszystkie one zawodzą. Pamięć USB może ktoś wykraść, a są też metody przypominające moją, jak choćby wprowadzanie symboli otrzymanych ze strony i konieczność wpisania odpowiedzi, wygenerowanej przez specjalny chip, ale karta z chipem też może być skradziona.

Rozwiązanie

Moja metoda to zmodyfikowany szyfr cezara. I tutaj rodzi się pytanie - ile podejrzeń komunikacji wystarczy, by odszyfrować klucz? Tego nie wiem, więc zwracam się z prośbą do was, byście złamali moją metodę, ale o tym na forum.

Moja metoda polega na tym, że komputer generuje zapytanie i przesyła je do klienta, a klient musi w głowie obliczyć skrót zapytania i go przesłać do serwera.

Zapytanie

Serwer wykorzystuje następujące zmienne podczas generowania zapytania:

  1. [Ziarno zapisaną w bazie danych(potrzeba do generatora liczb pseudolosowych)
  2. Klucz zapisany w bazie danych
  3. Przedrostek, wrost, i końcówkę

W przyszłości planuję również dodać hasło, które będzie wykorzystywane jako klucz do zaszyfrowania tych danych. W przyszłości ograniczę także próbę błędnych logowań do trzech - po tym zmieniane będzie ziarno.

Działa to w następujący sposób, że serwer odczytuje ziarno użytkownika i oddaje ją generatorowi liczb pseudolosowych. Następnie generuję ilość segmentów. Dla każdego segmentu generuje co najmniej dwie liczby: liczbę cyfr szumu i liczbę cyfr właściwych. Dodaje liczbę cyfr szumu do zapytania, a następnie szyfruje ją szyfrem cezara. Dla liczby cyfr szumu po zaszyfrowaniu generuje odpowiedni szum. To samo się dzieje z cyframi właściwymi i liczbą cyfr właściwych.

Odpowiedź

Odpowiedź generuje się następująco.

[numlist] [item]Zliczamy liczbę cyfr otrzymanego ciągu i odejmujemy od niej długość wrostu, przedrostku i końcówki. Wynik dzielimy przez dwa i dodajemy następnie do niego liczbę cyfr przedrostku[/item][item]Wyrzucamy z otrzymanego ciągu ilość cyfr wrostu, począwszy od otrzymanego wyniku z przesunięciem w prawo o 1, a jeśli liczba cyfr wyniku w pkt. 1 jest nieparzysta, to o 2.[/item][item]Zaczynamy od cyfry przesuniętej o liczbę cyfr przedrostku plus 1[/item][item]Dopóki nie dotrzemy do końcówki, to

  1. Podajemy zaszyfrowaną odwrotnym kluczem liczbę kolejnych cyfr do pominięcia z naszej odpowiedzi
  2. Podajemy tyle szyfr szumu, co zaszyfrowana cyfra, którą podaliśmy
  3. Podajemy zaszyfrowaną odwrotnym kluczem liczbę kolejnych cyfr do przetworzenia z naszej odpowiedzi
  4. Szyfrujemy obecną cyfrę
  5. Pomijamy n cyfr wyniku z poprzedniego punktu
  6. Przesuwamy się o jeden w prawo
  7. Szyfrujemy obecną cyfrę
  8. Szyfrujemy n cyfr, gdzie n zostało obliczone w poprzednim punkcie, lecz nie więcej niż liczba cyfr do przetworzenia

[/item][/numlist]

To już wszystko na dzisiaj!

Zapraszam na stronę www.twójid.pl/bogacz.php

Wynik należy podać metodą get, jako action ciąg super, a odpowiedź w zmiennej answer.

=== EDYCJA === Oto kolejne zapytania i odpowiedzi: 1037 9586 1800 5756 4663 19 http://www.twójid.pl/bogacz.php?action=super&answer=015859

1463 7840 1600 4698 4143 48 http://www.twójid.pl/bogacz.php?action=super&answer=013560195786962

9903 2404 0637 4300 7178 0731 2167 3 http://www.twójid.pl/bogacz.php?action=super&answer=00361013613211081029495

8219 7677 0518 0012 3683 1390 24 http://www.twójid.pl/bogacz.php?action=super&answer=091425829271

8294 0191 8001 6942 1984 http://www.twójid.pl/bogacz.php?action=super&answer=01676497

1425 1894 7013 0075 7681 1484 4 http://www.twójid.pl/bogacz.php?action=superr&answer=01401920309689968

7439 6927 6293 0090 3411 3457 96 http://www.twójid.pl/bogacz.php?action=super&answer=0194054727014992630

7621 2394 9140 0099 6166 2774 http://www.twójid.pl/bogacz.php?action=super&answer=014796177

7170 0024 9 http://www.twójid.pl/bogacz.php?action=super&answer=0104 Bardzo fajna jest ostatnia para - może coś z tego odkryjecie.

8552 8290 9420 0262 6145 8681 http://twójid.pl/bogacz.php?action=super&answer=0191764454

7462 3531 2900 0922 1210 71 http://twójid.pl/bogacz.php?action=super&answer=2241327174

2878 6238 5247 0015 5691 7814 73 http://twójid.pl/bogacz.php?action=super&answer=5241854283460

PS: Czy bierze ktoś w tym udział?

Wybrane dla Ciebie
Komentarze (13)