Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szyfrowanie "B-T Cipher"
Forum PHP.pl > Inne > Oceny
wasik89
Witam smile.gif
Co sadzicie o tym narzedziu ? http://www.breath-take.com/cipher.php

Z zalozenia ma to byc koder i dekoder poszczegolnych wyrazow smile.gif W przyszlosci mam zamiar zrobic kodowanie i odczyt
calych zdan z textarei ... ale poki co tyle.

Podoba sie ?
Wydaje mi sie ze praktycznie nie do zlamania ... czy sie myle ? biggrin.gif
eccocce
No ale wiesz, dekoder jest publicznie dostępny, więc twoje zakodowane dane będą bezpieczne dopóki nikt się nie dowie z jakiego narzędzia korzystałeś do zakodowania smile.gif
W ogóle śmieszny ten algorytm jest:
Cytat
Wynik jest obarczony prawdopodobieństwem wystąpienia fałszywych bitów.

Oznacza chyba mniej więcej tyle, że niektóre bajty danych są losowe, bo np. podane niżej hasze po odkodowaniu dają to samo:
Kod
C7SEMB6A63N2W83QO547YP73UR8J35Y83AUXNL21Q1W1UEQ8284H0815W2SQA1X2
C7SEMB6A63N2W83QO547YP73UR8J35Y83AUXNL21Q1W1UEQ8284H1815W2SQA1X2
C7SEMB6A63N2W83QO547YP73UR8J35Y83AUXNL21Q1W1UEQ8284HZ815W2SQA1X2
C7SEMB6A63N2W83QO547YP73UR8J35Y83AUXNL21Q1W1UEQ8285H0815W2SQA1X2

Dla "dupa" dostałem tyle różnych kodów:
Kod
7VJUCX67047555WZMSHVHG99IY3M0640WT802W41DHWJBEQ82U50FUV7W2SQA1J8
4441862J62EQ82W2SQA1L4TG26R22HRJPS569WM6214O0JFM383KZADGVI066TQ6
H5A1B477LM499S6F5W51495O5EHN7Y06829L3EE95QR92EQ82MK416W0W2SQA1Y2
1L2H144Y8U7Y1PF7EQA1J82W0KUCD4025311Y75I281740OU0562SQ2C8ZK15ME0
Q6JJ7QB761H983BWEQA1A82WU48JY5R7U24449M28AL4Z339HS22SQX74RQ6HMZ0
D9X2N7334UEQ82W2SQA1F5VIU2L476Q1JJ073FC16CGK1A1D5YO2111N7YURQ759
5Q2KCW42682W2SQA1LM7DJ847SP0744OJ8EQ09HX492FXEG8OM80QV6X7F8M83Z7
51954758I82W2SQA1L861QC2G4QV8916G7EQIHYR5V76TNBXOT1TK8P647PW1581
2UP5UI72VEF7656XX176VU6864RO347I7685H27AAQJP3EQ82G383301W2SQA1O2
5768VO4Y12CRK603T552G60O9G1I3WNCH2097D7F4R276EQ82SJ17XG8W2SQA1R8

Wnioski: kod musi zawierać informacje o użytym sposobie szyfrowania. No i jak już wiemy, występują fałszywe bity (bajty), więc albo występują one na stałych pozycjach, ale informacja o nich jest zawarta w szyfrze. W każdym razie szyfr na pewno nie jest 512 bitowy jak napisali na stronie tongue.gif Jak ktoś ma czas może pogenerować więcej kodów dla jednego hasła, to być może zauważy jakieś inne cechy smile.gif
No i wiem, że szyfr zawiera też sumę kontrolną, bo po zmianie ostatniego bajtu czasami dostaje się komunikat o błędnym szyfrze, a nie jakieś dziwne dane.
wasik89
Dzieki za wnikliwosc smile.gif
Narzedzie do dekodowania dalem na poczet testow smile.gif aby wychwycic pewne bledy ... wczesniej zjadalo pierwsze znaki po dekodowaniu, potem cos innego sie sypalo... teraz jest stabilnie. wszystko jest ujete w fajnej funkcji wiec wszechstronnosc zastosowan mysle bedzie spora. Oczywiscie przed ponownym wlasciwym uzytkiem pozmieniam klucze.

co do wynikow:
- zalozeniem mialo byc aby kolejna proba kodowania jakiegos stringa wygladala w rezultacie inaczej.
- co do 512 bitow .. tu strzelalem biggrin.gif wstyd sie przyznac nie wiem jak sprawnie to oszacowac.
- bledne 'bity' czy losowe ... nieraz tak
- sa 4 losowe sposoby mielenia ciagiem ...
- slusznie wychwyciles ze gdzies koncowym kodzie jest info o odkodowaniu
- btw .... nie zawsze zakodowana literka A np. bedzie wystepowala pozniej w takiej samej konstrukcji smile.gif
-------------------------------------------------------

W przygotowaniu wersja ( 1.5 )
Nowosci ktore zostana wprowadzone:
- dodany kolejny krok szyfrujacy dzieki ktoremu zostanie wykluczone
powtarzanie sie tych samych literek, przez co trudniejsze bedzie odgadniecie ktora to ktora przy
powtorzeniu jej powiedzmy 30 razy biggrin.gif
- roznorakie znaczenie semantyczne kazdej litery alfabetu w zaleznosci od jej pozycji w poczatkowym stringu

W polaczeniu z obecnymi funkcjami mielenia caloscia smile.gif daje bardzo mocna mieszanke ktorej zapewniam ze
nikt bez pomocy 100 sclastrowanych PS3 nie rozbroi przez ruski rok smile.gif

- nowa wersja ukaze sie pod starym linkiem ... (szukac napisu wersji 1.5 )
in5ane
A ja mam za każdym razem przy odkodowaniu taką informację: "Słowo ma niedozwolone znaki.".
eccocce
Tak się jeszcze zastanawiam do jakiego rodzaju "szyfrów" zaliczyć twój skrypt. Bo na pewno nie jest to funkcja skrótu (bo jak widać istnieje funkcja odwrotna). Wspomniałeś coś o kluczach - czy ten sam klucz jest używany do odkodowania co do zakodowania? Wtedy można by skrypt podciągnąć pod szyfr symetryczny. No ale co tu dużo mówić, skrypt jest bezpieczny, dopóki nie usiądzie przy nim ktoś z dużą ilością wolnego czasu i nie zacznie przeprowadzać "adaptive chosen-plaintext attack" tongue.gif Tym bardziej, że jeśli algorytm korzysta z klucza, to jest on niestety stały (nie mamy możliwości podać własnego klucza), więc szyfrując w kółko ten sam plaintext w końcu uda się zauważyć ciekawe cechy wspólne. Gdyby nie ta sesja, chętnie sam bym pokombinował, ale cóż... tongue.gif
wasik89
@ komunikat o niedozwolonych znakach pokazuje sie przy kodowaniu jezeli wprowadzisz : /, \ albo spacje .. tylko tego nie da sie zakodowac.
chyba ze cos sie kopiuje z wordow i innych to jakies ukryte meta rzeczy tez wchodza. Ewentualnie ja cos dzialalem aktualnie i jakies rzeczy lipne wychodzily smile.gif teraz pracuje na osobnym pliku wiec poki nie skoncze wersji 1.5 to nie bedzie kolidowalo ze stara.

@ tzn tak .. na chwile obecna funkcje wywoluje sie zwyczajnie cipher($slowo, $metoda); gdzie slowo to fraza do zakodowania badz juz zakodowana, a metoda to 1 lub 2 w zaleznosci czy wybieramy kodowanie czy deszyfracje. w kolejnej wersji dam mozliwosc zmiennosci owego klucza czyli powiedzmy funkcja wywolana
cipher($slowo, $metoda, $nr_klucza); odkoduje sie tylko wtedy kiedy dany ciag bedziemy mielic odwrotnie tym samym numerem klucza co przy zakodowaniu... cos jak enigma miala szyfry dzienne ;p

@ wersja 1.5 ukaze sie do niedzieli wieczorem... mam maly problem z nauczeniem tej funkcji odpowiedniego przeskakiwania po literkach wstecz w zaleznosci od wielu czynnikow... ale dam rade.

(napisalem to wylacznie dla zabezpieczenia hasel w bazie winksmiley.jpg ale wciagnelo mnie heh)
eccocce
A to jeśli mogę wiedzieć, czemu nie skorzystałeś po prostu z SHA-256? Jest zaimplementowane w PHP i póki co bezpieczne smile.gif Przechowywanie haseł w bazie w formie dającej się odkodować nie jest zbyt dobrym pomysłem.
wasik89
Gdyz dalem uzytkownikom strony mozliwosc przypomnienia danych na mail... a nie ma bata sumy md5 czy innego hasha nie podesle. Trzeba zwrocic
te przyslowiowe qwerty niz vghgeuwi4ut85geurjgnf...
Pewnie powiesz ze z tym przypomnieniem danych to glupie ... ale coz tak sobie to wymyslilem smile.gif

Btw. Prawdopodobienstwo zlamania maleje jezeli ktos nie ma podpowiedzi w stylu funkcji dekodujacej, czy informacji co robi ta funkcja tak jak jest to na linku podanym przeze mnie wyzej smile.gif wiec moim zdaniem po ukonczeniu tych poprawek moge to implementowac w systemik stronki.

NOWA WERSJA 1.5 WYDANA biggrin.gif http://www.breath-take.com/cipher.php
Zapraszam do testow.

Poprawiono:
- czwarta metode szyfracji
- nowe znaczenie semantyczne kolejnych liter
Cypherq
Myślę, że każdemu przeciętnemu matematykowi z katedry analizy matematycznej Twój szyfr zająłby może godzinę. Bez podpowiedzi w stylu funkcji dekodującej.
wasik89
Podesle ten link swojemu wykladowcy z analizy (jednoczesnie jest i od rachunku prawdopodobienstwa) to w wakzcje sie pobawi jak zechce.... smile.gif
Ale jakby ktos znalazl czas to tez zachecam do zabawy z tym... To juz bardziej chyba dla fanatykow heh bo czas to cenna rzecz.

Pozdrawiam.
r4xz
testowane na "Cipher v. 2.0"

dla "a":
1) 3EI98X3HD231I4FN99AWJ95BJOA2O5BDNMQ98E877Y20222SQCI22245L5ZA2OA9
2) 97RJF35JH03330X722AWDEE7W3B797I2111G3GMI591K47VOPR76T29F44VK43U0
4) 5NZ9R0HP94O0241F214OAMRV90XX2BT0I01517C0O4I1TR6I3UU794RC6222AWD8
2) 36E16R2N3ZTJCHP322AWA1NWOJQCUCEU2WQU2WTQNN3RR663U2IXAU5BM8B20370
2) 8YPUY47Y94I4724222AWBY320T4K6AXVS7NY385W59VNE6KH2X58HIU17U0ETQ90
1) 7VS12755TG0W142OXEAWFK69B55599Q515V239Q4016H6T3HE92Y221W85Q76MT6
3) 51N32V2TY5ZS622AWL0PI7IS4H4D27FZ7X00867L1RVU4MR84UQY4231PV5364W1
3) 82N02SF643B0522AWAOWF23IW52EHJV72B7OK64N1T5JFI3137V43N8I8X3AWD11
1) M56918M00TLR2TYUUMAWP3NY95XU42EJ5316911A239ZI026386F22612L47XB16

<typ kodowania>) <zwrócony wynik>

dla "aw":
692DSG2422F2288ASV03XCR91T63I00QR8R23CX745GNZCJT66N165703GIM59K4
S8K3IZ46OIS839H52IASSGP28659L087QYVH5FXHGHQ8Q6Z1MB9288K53MHCIDP3

2) 300U6FFMG980O522(88AS)UJFD6A707TV90QMJD5Z72P17JV273CURM35W4OE5R740
2) U104705W5GZ10Q22(88AS)I412CO6BZ14IL73KX41MQ8RI9H08684M43BV9OV0B510
VGUCI53EPQ2I73W1<T94Y>9UMS4182EL601729XBOK29Q697U76737HJDX2288ASX8
2) 1E46F8R213YV3022(88AS)EKJQFTU66JDEK3BPT1YOJ0P2BTN863SMYL5I4BOS5580
385V707V9J72288ASBUC60DIB7BJ89123YVHR499489K5W9933XF3K5H83234C47
J34W0G60BD92520Y<2S2D>M3X836YC34Q5789TBZ0ZI7FC6HA368M64R482288ASM8

zmiana treści w () na 22AW daje zmianę stringa na "a", natomiast <> pozostawia bez zmian

dla "wwwwwwxxxxxaxxxx":
2) PPE9XZ7X55T941OP(GW1W)VTU0QGP7K0B9Z68607F5S12G9NZHJTG887J3F22YTEQ0

zmiana treści w () na 22AW daje zmianę stringa na "a"

_______________________________
może coś w tym jest?
oczywiście jak zmieniacie treść w nawiasach, to same nawiasy też usuńcie ;P

PS fajne zajęcie na zbicie wolnego czasu haha.gif
Cypherq
Cytat(wasik89 @ 20.06.2010, 13:49:31 ) *
Podesle ten link swojemu wykladowcy z analizy (jednoczesnie jest i od rachunku prawdopodobienstwa) to w wakzcje sie pobawi jak zechce.... smile.gif
Ale jakby ktos znalazl czas to tez zachecam do zabawy z tym... To juz bardziej chyba dla fanatykow heh bo czas to cenna rzecz.

Pozdrawiam.


łyhm, cały czas mi się ta analiza śni po nocach. Chodziło mi o matematykę dyskretną, czyli również prawdopodobieństwo.
wasik89
Ciesze sie ze ktos postanowil poswiecic troche czasu na przyjrzenie sie temu.

@ AW nie jest niestety poszlaka a wypadkiem w mieleniu koncowym stringiem. (jak widac dosyc mylacym i dobrze smile.gif )
@ od v1.5 dziala jeszcze mylaco zmienna semantyka alfabetu... raz uzyte A czy B pozniej bedzie inaczej kodowane w tym samym wyrazie.

Zmiana nazwy i linku smile.gif
http://www.breath-take.com/hider.php
------------------------
Dodane funkcje:
- pelne wsparcie dla polskiej czcionki
(teraz mozna juz tlumaczyc w pelni efektownie tekst z polskimi ogonkami)
in5ane
Program nie odróżnia wielkich liter i po odkodowaniu zawsze na końcu dodaje spację.
wasik89
@ Spacja nie jest konsekwencja dzialania funkcji a jej wywolania ... celowo dodaje spacje aby przy tlumaczeniu zbiorowym nie zlepialo slow.
@ Co do wielkosci liter to zgadza sie. Owszem jest to do rozpykania ale jak juz bede mial wiecej czasu.

Poki co hasla w bazie i w cookisach na swojej stronie sa szyfrowane i dekodowane tym i zadnej 'f'topy nie mialem wszystko
chodzi szybciutko i bezomylkowo. Problem wielkosci liter rozwiazuje przy logowaniu wiec az takim dramacikiem to dla mnie nie jest winksmiley.jpg

P.S. Aby nie bylo to do celow praktycznych klucze sa zmienione... wiec nikt nie odkoduje sobie niczego tym prostym translatorkiem smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.