<html>
<head>
<meta content="text/html; charset=ISO-8859-7"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 11/07/2011 01:39 AM, Θοδωρής Λύτρας wrote:
<blockquote cite="mid:201111070139.48665.thlytras@gmail.com"
type="cite">
<pre wrap="">Να το πω διαφορετικά: δίνω input στο EpiData το password (π.χ. "qwerty") και
μου δίνει output το κρυπτογραφημένο ("0JHzxN4f" στο παράδειγμα). Δοκιμάζω το
ίδιο input στη δική μου εφαρμογή (σε C++/Qt με το Qt Cryptography
Architecture) με διάφορους συνδυασμούς του αλγορίθμου AES, αλλά δε μπορώ να
φτάσω στο ίδιο αποτέλεσμα.
</pre>
</blockquote>
<font face="sans-serif">Θοδωρή,<br>
<br>
Αυτό που προσπαθείς να κάνεις λέγεται "known plaintext attack" (</font><a
href="http://en.wikipedia.org/wiki/Known-plaintext_attack">http://en.wikipedia.org/wiki/Known-plaintext_attack</a><font
face="sans-serif">) και χρησιμοποιείται για να "σπάσει" κανείς
έναν κώδικα κάνοντας "κρυπτανάλυση". Το πόσο δύσκολο είναι να
βρεις password, salt ή γενικά κάποιο "κλειδί" με το να γνωρίζεις
την είσοδο και την έξοδο ενός αλγορίθμου κρυπτογράφησης καθορίζει
την ασφάλειά του :) Η βασική ιδέα των καλών κρυπτογραφικών
συστημάτων είναι ακριβώς αυτό: μια συνάρτηση που α) υπολογίζεται
εύκολα (με μικρή υπολογιστική ισχύ * χρόνο), β) αντιστρέφεται πολύ
δύσκολα (ή για την ακρίβεια με δυσανάλογα μεγάλη υπολογιστική ισχύ
* χρόνο).<br>
<br>
Δε θα βγάλεις άκρη έτσι. Ο μόνος βατός δρόμος είναι να πάρεις την
πληροφορία που θες από τους developers. Η άλλη εκδοχή είναι να
κάνεις κάποιας μορφής </font><font face="sans-serif"> ανάλυση του
binary</font><font face="sans-serif"> και </font><font
face="sans-serif">disassembly</font><font face="sans-serif">, και
αν δεν είναι scrambled ο κώδικας, να μπορέσεις να βρεις (μιλάμε
για ψύλλο στ' άχυρα...) hard-coded (αν τελικά είναι</font>
hard-coded<font face="sans-serif">) αυτά που θες.<br>
<br>
Δημήτρης<br>
<br>
</font>
</body>
</html>