Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kryptografia.... własne rozwiązania
eai
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


Witam.

Czy ktoś interesował się kryptografią i pisaniem własnych metod kryptoanalizy i kryptologii (odkowanie/kodowanie) w php?

Szukam materiałów na temat sposobu budowy kodera/dekodera według własnego klucza.
Może ktoś z was już coś takiego napisał i podzieli się rozwiązaniami.

Nie szukam gotowych skryptów (bo jest ich masa np. w phpclasses.org) tylko chciałbym stworzyć własny.

Zapraszam do dyskusji.

Ten post edytował eai 20.10.2006, 13:17:10
Go to the top of the page
+Quote Post
Turgon
post
Post #2





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


W mojej opinie jest stworzyć klucz o prostej strukturze. W którym każda kolejny znak symbolizuje kolejne litery, cyfry i znaki. Potem to rozdzielasz i na podstawie tego odkodowywujesz i zakodowywujesz. Tj. weług mnie najprostszy sposób.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
eai
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


Ja myślałem nad czymś innym np dwie pierwsze litery odpowiadaja dwum cyfrom od 0-9 np jesli pierwsza litera odpowiada cyfrze 2 to przesuwamy kazda litere i cyfre o ilosc znakow ktora stanowi druga litera (cyfra 0-9) itp... Kolejne znaki w kluczu to np zamiana znaku 1 w stringu na znak 2 ktory stoi obok 1 znaku itd....

Kto ma jeszcze jakies ciekawe pomysly?
Go to the top of the page
+Quote Post
siemakuba
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Pamiętam kiedy byłem baaardzo mały, był w telewizji serial. Nie pamiętam ani tytułu, ani fabuły, w zasadzie nic oprócz jednego fragmentu. Otóż, jeden pan przesyłał do drugiego zakodowaną wiadomość, i pan otrzymujący musial najpierw odgadnąć sposób kodowania a następnie odkodować wiadomość aby ją odczytać. Do reczy, spsób kodowania był taki:
  • alfabet Morse'a składa się jak wiadomo ze znaków "_" i "."
  • litera C np. wygląda tak: _ . _ .
  • zakodowana 'serialowy' sposób litera C wyglądała tak:TIFA
na czym to polega: popatrzmy na górne krawędzie liter. Gdybyśmy zakryli je i pozostawili tylko krawędź o grubości górnej kreski z litery T, została by nam linia tworząca _ (T) . (I) _ (F) . (A). Cała "sprytność" polega na tym, że daną literę można w ten sposób zapisać różnymi kombinacjami. Wracając do naszeg "C" może to być: TIFA, TJEL, EAEA, EITJ itp.

Dodatkowo, do podstawień za kropki i kreski używamy tylko liter, więc spacje mogą być zakodowane jako cyfry, może byc jedna, może być klilka, bo zawsze wiadomo że zbitka cyfr odpowiada spacji.


Kiedyś napisałem mini klasę realizująca kodowanie / dekodowanie w taki właśnie sposób.
Jeżeli uda mi się odneleźć gdzieś na PC w domu to wrzucę :)

pozdr.
Go to the top of the page
+Quote Post
php programmer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

Ostrzeżenie: (0%)
-----


Ja pisałem prace mgr na temat szyfrów blokowych takich jak DES,

myślę że dość łatwą metodą było by coś takiego,
masz, tekst do zakodowania, masz klucz (hasło skaldające się z kilku znaków),
no i na tekscie, który chcesz zakodować, wykonujesz,
operacje bitowe (takie jak np XOR) z wykorzystaniem bitów z klucza,
proste i skuteczne zarazem

Ten post edytował php programmer 20.10.2006, 14:47:33
Go to the top of the page
+Quote Post
intol
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 29.07.2003

Ostrzeżenie: (10%)
X----


Dodam tylko, że jeżeli potrafisz utrzymać klucz w tajemnicy, to kodowanie XOR za pomocą odpowiednio długiego klucza jest najlepszą metodą, jaką w obecnej chwili udało się wymyślić.


--------------------
Zbiór najlepszych technologicznych artykułów (programowanie, internet, linux)
Go to the top of the page
+Quote Post
eai
post
Post #7





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


Jesli kogos to zainteresuje: http://www.webfaq.pl/artykuly.php/5/0/2/O%...20nie%20tylko...
Go to the top of the page
+Quote Post
gszesiek
post
Post #8





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 17.09.2006

Ostrzeżenie: (0%)
-----


kurcze, jak mi się podoba ta książka hakerskie łamigłówki
(jest w czytelni PWR winksmiley.jpg )
jestem całkiem początkujący w tych sprawach i takim polecam książkę

Ten post edytował gszesiek 21.10.2006, 15:42:40


--------------------
Go to the top of the page
+Quote Post
My4tic
post
Post #9





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

Ostrzeżenie: (0%)
-----


Cytat(eai @ 20.10.2006, 12:16:39 ) *
Szukam materiałów na temat sposobu budowy kodera/dekodera według własnego klucza.
Może ktoś z was już coś takiego napisał i podzieli się rozwiązaniami.


Jeśli chcesz pisać coś swojego musisz być dość ostrożny i zdecydowanie odradzam używanie wyłącznie własnej implementacji. Takie postępowanie jest bardzo ryzykowne. Często wiele algorytmów jest bardzo trudnych do 'złamania' ale dzięki błędom w implementacji udaje je się stosunkowo szybko łamać - szybciej niż wynika z teoretycznych założeń. Żeby dobrze coś napisać trzeba dobrze poznac dany algorytm co czasami nie jest łatwe - dlatego własne procedury mogą być tylko dodatkiem do istniejących rozwiązań - no chyba, że jesteś jakimś genialnym matematykiem i programistą smile.gif Sam używam XORowania + kilka własnych pomysłów ale na końcu i tak wszystko mieszam SHA1. Temat jest ciekawy i można się pobawić ale w komercyjnych rozwiązaniach raczej bym nie ryzykował wyłącznie własną implementacją.

Ten post edytował My4tic 21.10.2006, 16:06:27


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
060156
post
Post #10





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 9.03.2006
Skąd: Columbus Georgia

Ostrzeżenie: (0%)
-----


Czesc ..
Mozna uzywac encryption funkcji z php,
lub tutaj masz prosty na enkrypcje przyklad:
  1. <?php
  2. function decrypt($string) {
  3. $result="";
  4. $key = ENCRYPT_KEY;
  5. $lkey = strlen($key)-1;
  6. $string = base64_decode($string);
  7. $result = '';
  8. for($i=1; $i<=strlen($string); $i++) {
  9.  $char = $string[$i-1];
  10.  $keychar = $key[$i % $lkey];
  11.  $char = chr(ord($char)-ord($keychar));
  12.  $result.=$char;
  13. }
  14. return $result;
  15.  }
  16.  
  17.  function encrypt($string) {
  18. $result = '';
  19. $key = ENCRYPT_KEY;
  20. $lkey = strlen($key)-1;
  21. for($i=1; $i<=strlen($string); $i++) {
  22.  $char = $string[$i-1];
  23.  $keychar = $key[$i % $lkey];
  24.  $char = chr(ord($char)+ord($keychar));
  25.  $result.=$char;
  26. }
  27. return base64_encode($result);
  28. }
  29. ?>


pozdrawiam ..
Go to the top of the page
+Quote Post
My4tic
post
Post #11





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

Ostrzeżenie: (0%)
-----


...no i właśnie podałeś przykład do tego o czym pisałem wcześniej. Wygląda to jak zlepek kodu znalezionego w necie. Base64 używane jest raczej podczas przesyłania maili przez starsze systemy pocztowe obsługujące 7-bitowe kody ASCII. W dlaszej części wydaje mi się, że możesz miec problem z przechowaniem rezultatu działania tego kodu:

  1. <?php
  2. $keychar = $key[$i % $lkey];
  3. $char = chr(ord($char)-ord($keychar));
  4. ?>


...w bazie danych czy pliku bo możesz dostac 'niestandardowe' znaki ASCII - kodu nie sprawdzałem - tak mi sie tylko wydaje smile.gif


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
060156
post
Post #12





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 9.03.2006
Skąd: Columbus Georgia

Ostrzeżenie: (0%)
-----


Polecam,
sprawdz, uzywam ten kod od 2 lat do przesylania rowniez
UTF-8 i nie wystapila zaden problem.
A z bas64 to sie calkowicie mylisz ...
Czasami to co sie wydaje nie jest prawdziwe ...
pozdrawiam ..
Go to the top of the page
+Quote Post
My4tic
post
Post #13





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 4.08.2005

Ostrzeżenie: (0%)
-----


Cytat(60156 @ 4.11.2006, 11:49:08 ) *
A z bas64 to sie calkowicie mylisz ...


...a możesz podać jakiś argument? Całkiem możliwe, że się myle ale FAKT jest taki, że base64 używane było głownie to przesyłania załączników poczty i do uwierzytelniania w SMTP co wynikało z ograniczeń serwerów SMTP. Hasło zakodowane w base64 dla współczesnych komputerów nie jest wielkim problemem i jest trywialne do zdekodowania więc moim zdaniem używanie tego algorytmu do kodowania haseł w aplikacjach webowych nie przyniesie dobrego rezultatu. Z drugiej strony nie mówię, że base64 musi być używane zgodnie z jego pierwotnym przeznaczeniem - to Twoja decyzja - Twoje ryzyko smile.gif

Jeśli chodzi o to...

Cytat(60156 @ 4.11.2006, 11:49:08 ) *
Polecam,
sprawdz, uzywam ten kod od 2 lat do przesylania rowniez
UTF-8 i nie wystapila zaden problem.


...to problem o ktorym pisałem występuje podczas np. XORowania. XORując jakieś znaki z powiedzmy przedzialu [21]-[7D] (HEX) można na wyjsciu dostać jakiś znak z poza tego przedzialu... albo np. " ' ".

Ten post edytował My4tic 4.11.2006, 16:32:16


--------------------
Załóż konto na dropbox.
Go to the top of the page
+Quote Post
060156
post
Post #14





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 9.03.2006
Skąd: Columbus Georgia

Ostrzeżenie: (0%)
-----


No wlasnie,
zalaczona medota enkrypcji w polaczeniu z base64
zapewnia ze pojawiajace sie znaki sa wlasciwe.
Nie uwzywam base64 tylko do enkrypcji a wlasciwie
do zapisania zakodowanego ciagu znakow..
A problem ', latwo sie rozwiazuje przez support functions
z mysql ..
pozdrawiam ..
Go to the top of the page
+Quote Post
darektbg
post
Post #15





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


Witam !
A może tak kryptografia asymetryczna po obu stronach ?

Pozdrawiam
Darektbg


--------------------
skocz.org - system skracania linków
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:09