Newsgroup: it.comp.lang.visual-basic
Titolo: [!]Craccata chiave crittografica da 576 bit

http://punto-informatico.it/p.asp?i=47985
 
"Craccata chiave crittografica da 576 bit
Un team internazionale di matematici si è aggiudicato un premio di 
svariate migliaia di dollari messo in palio da RSA Security craccando, 
in poco più di tre mesi, una chiave crittografica RSA-576. Già pronta la 
prossima sfida"
Lupo sfida i crittografi di tutto il mondo con il suo metodo personale!
;-)
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 personale!
Se solo qualcuno si degnasse di farlo qui...

 Se solo qualcuno si degnasse di farlo qui...
l'abbiamo già craccato, ma non te lo diciamo perchè se no cambi codice, e ci
tocca di rifare il lavoro da capo.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 codice, e ci tocca di rifare il lavoro da capo.
Il codice lo cambio quando lo voglio, non ho problemi...
Ecco il 3d della "sfida", con tanto di esempi, indizi e "quasi soluzioni":
http://makeashorterlink.com/?T2D061928

Il 29/04/2004 10.41, Lupo scrisse:

Ma se lo dai in pasto a loro e non ci riescono, vinci 10.000 dollari.
Con noi vinci al massimo una cena!
:-)


 Con noi vinci al massimo una cena!
No, cari, nemmeno la cena. :-P
Ma, senza offesa, se viene decrittato qui, lo sarebbe certamente anche là...

 
http://makeashorterlink.com/?T2D061928
E c'è anche uno dei miei primi messaggi su questo ng!!!
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it

 No, cari, nemmeno la cena. :-P
Boh, mi rendo conto (anche nel post di Sergio) di aver letto (e quindi
risposto) Roma per Toma.
Comunque, non solo non ci guadagno, ma ci rimetto pure la pubblicazione
dell'algoritmo (solo sul SC, non con un post qui). Il mio impegno preso il
quel 3d resta valido, mi piacerebbe solo sapere se qualcuno c'ha provato...
Ah, una cosa marginale: le chiavi delle codifiche in quel 3d io non me le
ricordo più, però se si trovano le chiavi esatte sono in condizioni di
verificarle al volo.

 anche là...
Il tuo algoritmo ha una relativa sicurezza in quanto si basa sul fatto che
noi non lo conosciamo.
Tutti gli algoritmi più accreditati al momento si basano su funzioni
matematiche le cui funzioni inverse richiedono tempi di decrittatura
inimmaginabili (parliamo di centinaia di anni con le potenze dei processri
attuali)...
Per maggiori info ti consiglio di andare su:
http://www.enricozimuel.net/


 processri attuali)...
Come scrivo là, no.
Potrei anche raccontare l'algoritmo, ma senza chiave non sarebbe comunque
facile (certo, sarebbe meno difficile) arrivare alla frase in chiaro. Ovvio
che se racconto algoritmo e chiave, beh, ... bella storia. :-P

 storia. :-P
Potresti dirmi se è simile al mio algoritmo? (quello in CrittaFiles,
sorgente incluso in FileSuite sul sito comune).
'Crittatura dati da inviare
Public Function CrittaDati(Stringa As String, Password As String) As String
Dim i As Long
Dim z As Integer
Dim Carattere, SommaPass As Integer
Dim StringaCritt As String
StringaCritt = ""
SommaPass = 0
For i = 1 To Len(Password)
SommaPass = SommaPass + Asc(Mid(Password, i, 1))
    If SommaPass > 255 Then
        SommaPass = SommaPass - 255
    End If
Next
i = 1
z = 1
Do While i < Len(Stringa) + 1
    If z > Len(Password) Then z = 1
    Carattere = CInt(Asc(Mid(Stringa, i, 1))) + CInt(Asc(Mid(Password, z,
1))) + CInt(SommaPass)
    If Carattere > 255 Then
        Carattere = Carattere - 255
    End If
    StringaCritt = StringaCritt & Chr(Carattere)
    z = z + 1
    i = i + 1
Loop
CrittaDati = StringaCritt
End Function
'Decrittatura Dati Ricevuti
Public Function DecrittaDati(Stringa As String, Password As String) As
String
Dim z As Integer
Dim i As Long
Dim Carattere, SommaPass
Dim StringaDecritt As String
SommaPass = 0
For i = 1 To Len(Password)
SommaPass = SommaPass + Asc(Mid(Password, i, 1))
    If SommaPass > 255 Then
        SommaPass = SommaPass - 255
    End If
Next
i = 1
z = 1
Do While i < Len(Stringa) + 1
    If z > Len(Password) Then z = 1
    Carattere = CInt(Asc(Mid(Stringa, i, 1))) - CInt(Asc(Mid(Password, z,
1))) - CInt(SommaPass)
    If Carattere < 0 Then
        Carattere = 255 + Carattere
    End If
    StringaDecritt = StringaDecritt & Chr(Carattere)
    i = i + 1
    z = z + 1
Loop
DecrittaDati = StringaDecritt
End Function
L'algoritmo in sostanza fa questo:
1-Somma i caratteri Ascii della password e ne ottiene uno solo (se la somma
supera i 255 ritorna a 0 e così via)
2-Somma al testo in chiaro la password
3-Somma al testo ottenuto la somma dei caratteri ascii
Per esempio
pippo        'testo in chiaro
pluto         'password
In ascii (a fianco ho tradotto in caratteri stampati)
112 105 112 112 111 +    pippo
112 108 117 116 111 +    pluto
054 054 054 054 054 =    66666
--------------------------
023 012 028 027 021       ???.§


 3-Somma al testo ottenuto la somma dei caratteri ascii
No, č diverso.
Posso (come in quegli esempi) non aggiungere la pwd nella stringa crittata,
non č necessario
Non mi torna quando dici "1-Somma i caratteri Ascii della password e ne
ottiene uno solo": Forse non ho bene inteso, ma cosě potrebbe essere che due
pwd diverse siano comunque valide...

 essere che due pwd diverse siano comunque valide...
No, perchè alla parola in chiaro somma la password e la somma della
password.


 bye

 Quindi nella frase crittata c'č la pwd (anche se non in chiaro)?
No. C'č solo la somma di tutti i caratteri ascii della password (quindi č
impossibile risalire alla password a partire dal file crittato).


 
http://makeashorterlink.com/?T2D061928
Lupo mi confermi che con il tuo algoritmo le frasi (plain text) criptate
hanno un range (ASCII) che va da 000 a 090 e da 165 a 255, mentre non
verranno mai utilizzati i codici dal 091 al 164 (a meno che non cripti
binario)?
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org

 Lokar
Naturalmente anche la chiave dovrebbe essere plain text.


 che non cripti binario)?
No (salvo un caso che tu puoi aver dedotto, ma è un caso).
Le frasi da crittare sono poi state pubblicate e le trovi in quei posts.
I codici delle frasi crittate li vedi in quei post e potrebbero essere molto
diversi (nell'intero range 000-255) se cambia la frase e/o la chiave.
Ripeto:
-La "roba" da crittare può essere un file (o frase) d'ogni genere,
contenente crt da 000 a 255
-La chiave può essere con crt da 000 a 255
-La "roba" crittata può contenere crt da 000 a 255

> che non cripti binario)?
Se credi, scrivi qui una frase e io ti fornisco la corrispondente crittata.
Ovviamente la chiave me la invento (e me la rammento) io...
Potrei anche fare di piů (ma mi sbragherei davvero): crittare una frase e
fornirne la chiave. Ovviamente senza fornire la frase in chiaro...
Insomma, potrei fornire qualunque combinazione di 2 elementi presi fra i 3
possibili (frase in chiaro, chiave e frase crittata), tranne il terzo di
quella stessa combinazione.

 Ovviamente la chiave me la invento (e me la rammento) io...
questa è un'occasione la frase da criptare è
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaa
ovvero il risultato di string(100,"a")
Fermo restando che stiamo procedendo al contrario rispetto alla logica, in
cui, dato per scontato che l'algoritmo è in chiaro (reverse eng.), si deve
ricavare la chiave dal testo cifrato oppure il testo in chiaro senza avere
la chiave.
termoPilucco

 ovvero il risultato di string(100,"a")
MA LAUGH! =)
In ogni caso credo di essere vicino alla soluzione...
Lokar
P.S. Quando ho postato la prima domanda, avevo letto solo il primo post del
thread di lupo... Dopo mi sono accorto che ha postato la stessa frase con
chiave diversa... ha gia' dato troppi suggerimenti in quel thread, a mio
avviso =)


[termoPilucco = 
circa_ter...@hotmail.com
 in
c6qmiq$evngp$
1...@ID-188026.news.uni-berlin.de
] ha scritto:

Non ho contato se sono 100 (ho copiato dal tuo post, comunque sono tutte
"a", corrispondenza 1:1):
Frase crittata:
---Decimali---
019 004 017 012 014 002 007 004 002 008 015 017 014 021 000 205 232 013 002
017 004 003 008 001 008 011 004 192 019 004 017 012 014 002 007 004 002 008
015 017 014 021 000 205 232 013 002 017 004 003 008 001 008 011 004 192 019
004 017 012 014 002 007 004 002 008 015 017 014 021 000 205 232 013 002 017
041 037 055 042 057 046 041 000 071 048 059 061 057 037
---Esadecimali---
13 04 11 0C 0E 02 07 04 02 08 0F 11 0E 15 00 CD E8 0D 02 11 04 03 08 01 08
0B 04 C0 13 04 11 0C 0E 02 07 04 02 08 0F 11 0E 15 00 CD E8 0D 02 11 04 03
08 01 08 0B 04 C0 13 04 11 0C 0E 02 07 04 02 08 0F 11 0E 15 00 CD E8 0D 02
11 29 25 37 2A 39 2E 29 00 47 30 3B 3D 39 25

 in quel thread, a mio avviso =)
Infatti... ho le braghe sulle caviglie.
venghino, signori venghino... ;-(

 venghino, signori venghino... ;-(
Hai usato un password di 28 caratteri?
termoPilucco

TERMOCHECIPROVA  NCREDIBILE e' la chiave... a parte un paio di caratteri che
non capisco, checksum o qualcosa del genere suppongo sto verificando =)
Lokar :)

 Hai usato un password di 28 caratteri?
e nella password c'č il mio nick :)
termoPilucco

 sto verificando =)
"termocheciprova.Incredibile!" scritta esattamente cosě (senza virgolette),
non in maiuscolo...
Bingo (e bravo)!
La palma della vittoria a te (se termo non ti azzanna) per una questione di
orari.
Mi scuso per la crittata di prima, sul form di prova ho un paio di check che
accodano un numero casuale e un numero di controllo e, Murphy insegna, sono
attivati di default. Pagherň la mia penale, appena il SC accetta nuovi
progetti.
Beh, ma un giudizio/critica sull'algoritmo. Almeno quello, via... ;-)

 e nella password c'č il mio nick :)
"termocheciprova.Incredibile!" scritta esattamente cosě (senza virgolette),
non in maiuscolo...
Bingo (e bravo)!
La palma della vittoria a Lockar (se non lo azzanni) per una questione di


 Beh, ma un giudizio/critica sull'algoritmo. Almeno quello, via... ;-)
La password non andrebbe mai usata direttamente sui dati :)
meglio creare prima dell'elaborazione un array di byte lungo quanto vuoi (ma
abbastanza) che faccia da chiave.
L'array dovrebbe essere riempito di dati ottenuti applicando trasformazioni
varie (esempio usare un algoritmo tipo sha/md5) alla password.
Anche così non ottieni una sicurezza molto superiore - è più difficile
trovare la password, ma in realta ti basta conoscere la chiave per decifrare
tutto (e magari più password danno la stessa chiave, ma è inevitabile, è una
questione di numeri).
L'altro punto debole è la ripetività.
Anche se gli input sono costanti es. testo="aaaaaaaaaaa" e password="bbbbbb"
l'algoritmo dovrebbe fare in modo che pattern di dati cifrati non si
ripetano ciclicamente.
Inoltre l'output dovrebbe essere caotico (pgp, per assicurare questo, in
certi casi comprime con algoritmo zip prima di cifrare).
Comunque, senza indizi (che hai dato in abbondanza), se non si tratta di
segreti di stato, la maggior parte degli algoritmi inventati, può anche
starci.
Sempre che si supponga che il decifratore non ricorra al reverse eng.
Magari stasera posto un mio algoritmo, simile al tuo, ma scritto in C, che
utilizza un paio di accorgimenti per evitare la ripetività dei pattern...
termoPilucco

 pattern...
Grazie (anche per il tempo che hai perso)

> Beh, ma un giudizio/critica sull'algoritmo. Almeno quello, via... ;-)
Purtroppo avevo intuito che il tuo algoritmo č simile al mio.
Da un vecchio post su it.comp.sicurezza.crittografia il mio (e il tuo)
risultano superati da un pezzo.
Mi spiego. Se io uso un tuo programma di crittatura, mi basta crittare un
testo per poter confrontare il cyphertext e il plaintext e, sapendo la
chiave, visto che l'ho inserita io, ottenere l'algoritmo....
I nostri (o cmq il mio) sono varianti dell'algoritmo di Vigenerč, i cui
metodi di attacco sono stati messi a punto da Babbage (IX secolo)...
Ti posto l'indirizzo della discussione relativa:
http://makeashorterlink.com/?W5A922928


 
http://makeashorterlink.com/?W5A922928
Grazie del link, invecchio anch'io (o "lasciatemi nascere"?).
L'ennesima dimostrazione che č difficile inventare qualcosa.
PS: Ma Lord ti ha gią passato le chiavi? Voglio dire, il SC č abile o le
porte sono ancora chiuse?

 (IX secolo)...
Manca una X :-) Così più che Babbage è Beda il Venerabile :-p
-- 
ale
http://www.sen.it
rara temporum felicitate, ubi sentire
quae velis, et quae sentias dicere, licet

 le porte sono ancora chiuse?
Sta aspettando che i trasferimenti di provider vadano a buon fine e poi ha
detto che mi passerą le chiavi.
Immagino che al meeting potremo discuterne meglio e, magari, mi spiegate
anche come funziona il tutto (giusto per partire col piede giusto).


 giusto).
Per quanto mi riguarda (mai stato WM) credo che solo Lord possa spiegarti
come funziona il tutto...

 spiegarti come funziona il tutto...
Nessuno dei partecipanti al meeting ha ricoperto prima d'ora la carica di
WM?
