Newsgroup: it.comp.sicurezza.crittografia
Titolo: Dubbio su RSA

Per un esame ho preparato un notebook in mathematica in cui craccko 
l'esponente privato d per numeri di pochi bit
Non so se ho usato il cycling attack ho qualcosa di simile...
Ho fatto così:
c = mess ^ e (mod n)
per trovare d elevo nuovamente c alle e poi iterativamente cerco un k per 
cui c^(e*k) = c
questo k mi rimette in chiaro anche il messaggio
capita a volte però che k non sia l'inverso moltiplicativo di e, e dunque 
non sia la chiave privata però mette lo stesso in chiaro il messaggio.
Esempio
p = 31;
q = 29;
n = 31 * 29 = 899;
phi = 840;
landa = LCM[p-1, q-1] = 420
e = 239
d = 239
messaggio = n - 2 = 897
c = messaggio ^ e = 263
se prendiamo come chiave crackata k = 99
263 ^ 99 mod n = 897
se itero l'attacco esce fuori anche k = 239
però non ho capito perché 99 mi mette in chiaro il messaggio, ovviamente per 
altri messaggi 99 non funziona mentre 239 si
qualcuno mi da una delucidazione matematica?;-)
Grazie a tutti
Simone

 qualcuno mi da una delucidazione matematica?;-)
Si chiama "message concealing".
Puoi dare un'occhiata qui:
http://groups.google.it/groups?hl=it&lr=&c2coff=1&frame=right&th=266058e2c80ee42e&seekm=p%25h_d.1076629%2435.39924922%40news4.tin.it#link18
Cristiano

 Per un esame ho preparato un notebook in mathematica in cui craccko
Scusa se questo messaggio non c'entra nulla, ma anche tu stai preparando  
l'esame di Laschi?
-- 
Manny Calavera
AntiSpam: CAVA²

 l'esame di Laschi?
Già ;-) 

 ha scritto nel messaggio 
news:op.so0dfc06rb...@djehwty.mes...
[CUT]
Sappi che il tuo č stato un voto rubato :P
Fitamafia 


Com'č Laschi all'esame???
E' vero che non chiede notebook e applicazione???

 E' vero che non chiede notebook e applicazione???
Circa, almeno con me (ma anche con altri, per quello che ho sentito). Ha 
voluto vedere l'approfondimento e mi ha chiesto "a voce" cosa avessi fatto 
di applicazione e col notebook.
Fitamafia 

 Sappi che il tuo è stato un voto rubato :P
Fita, caghi il cazzo anche qui?
E poi perché sarebbe stato rubato?
Ho portato due approfondimenti e tre progetti perché non sapevo quale  
scegliere


 fatto di applicazione e col notebook.
Idem, se poi non hai un portatile e l'approfondimento l'hai fatto in  
PowerPoint, visto che ha timore di Virus/Worm/Trojan ti fa raccontare a  
voce anche quello.
Se gli piace ti fa lasciare il lavoro per approfondimenti


 scegliere
che progetti hai fatto???
ma soprattutto hai usato Java o C# ???
Oggi stavo per iniziare a dare un occhiata ma in C# non esistono socket 
SSL.... 

 SSL....
Di logica, se in aula ha spiegato c e java, forse in tale linguaggi è  
consigliato fare il tutto, anche perché, ipotizzando che ti permetta di  
fargli vedere il progetto, secondo te sul portatile del '70 ha vs?
Ho fatto un crittatore di Vigenere, un critattore rsa per nttp (che alla  
fine non ha funzionato) e due versioni di un codifcatore a5 (una in c e  
una in java).
Per aiuti, suggerimenti, ricchi premi e altro sono sempre disponibile.


 SSL.... 
vedi se ti può essere utile:
http://www.mentalis.org/soft/projects.qpx

 
http://www.mentalis.org/soft/projects.qpx
Grande! Avevo trovato tutte librerie a pagamento fin'ora...
ti ringrazio.... vedo se funge ora ;-) 

 
per fungere funge, facci sapere come ti trovi.

> per fungere funge, facci sapere come ti trovi.
Funge a byte....
Non capisco perché wrappando il securenetworkstream dentro uno StreamWriter 
non funge cazzo...
E il brutto č che non mi funge nemmeno wrappando un NewtorkStream semplice 
dento uno StreamWriter... che schifo andare a byte....
non capisco dove sbaglio.... arggg.....
costrusico un networkstream passandogli come parametro la socket
costurisco uno streamwriter o reaer passandogli come parametro il 
networkstream ma sti cazzi...
non va... assurdo! 

> per fungere funge, facci sapere come ti trovi.
non funziona e non capisco perché non gli vada bene il certificato.....
Ma poi non č possibile utilizzarlo senza certificati con uno scambio DH 
anonimo???
Il certificato l'ho generato cosi :
makecert -n "CN=nome" -sv cert.pvk cert.cer
e quando mi ha chiesto la password ho messo password come password ;-)
SERVER:------------------------------------------------------------
class Server
{
[STAThread]
static void Main(string[] args)
{
Certificate cert = Certificate.CreateFromCerFile("./cert.cer");
cert.AssociateWithPrivateKey("./cert.pvk", "password");
Console.WriteLine(cert);
SecurityOptions options = new SecurityOptions(
SecureProtocol.Ssl3 | SecureProtocol.Tls1,
cert,
ConnectionEnd.Server,
CredentialVerification.None,
null,
"0.0.0.0",
SecurityFlags.Default,
SslAlgorithms.ALL,
null);
Console.WriteLine("Creando socket server ssl");
SecureSocket serverSocket = new SecureSocket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp, options);
Console.WriteLine("Bindando a 
127.0.0.1:12345
");
serverSocket.Bind(new IPEndPoint(IPAddress.Parse("0.0.0.0"), 12345));
Console.WriteLine("Local end point: " + serverSocket.LocalEndPoint);
Console.WriteLine("Entrando in listening");
serverSocket.Listen(10);
Console.WriteLine("in attesa di connessioni");
SecureSocket socket = (SecureSocket)serverSocket.Accept();
Console.WriteLine("Connessione avvenuta");
Console.WriteLine("Local end point: " + socket.LocalEndPoint);
Console.WriteLine("Remote end point: " + socket.RemoteEndPoint);
Console.WriteLine("Socket blocking: " + socket.Blocking);
Console.WriteLine("socket connessa: " +socket.Connected);
Console.WriteLine("socket type: " + socket.SocketType);
SecureNetworkStream stream = new SecureNetworkStream(socket);
byte[] buffer = new byte[4096];
int read = stream.Read(buffer, 0, 4096);
Console.WriteLine(System.Text.Encoding.ASCII.GetString(buffer, 0, read));
Console.WriteLine("Chiusura connessione");
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
}
CLIENT:
class Client
{
[STAThread]
static void Main(string[] args)
{
SecurityOptions options = new SecurityOptions(
SecureProtocol.Ssl3 | SecureProtocol.Tls1,
null,
ConnectionEnd.Client,
CredentialVerification.None,
null,
"0.0.0.0",
SecurityFlags.Default,
SslAlgorithms.ALL,
null);
Console.WriteLine("Creando socket ssl");
SecureSocket socket = new SecureSocket(AddressFamily.InterNetwork, 
SocketType.Stream, ProtocolType.Tcp, options);
socket.Bind(new IPEndPoint(IPAddress.Parse("0.0.0.0"), 22222));
Console.WriteLine("Local end point: " + socket.LocalEndPoint);
Console.WriteLine("Connettendo");
socket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 12345));
Console.WriteLine("Local end point: " + socket.LocalEndPoint);
Console.WriteLine("Remote end point: " + socket.RemoteEndPoint);
SecureNetworkStream stream = new SecureNetworkStream(socket);
byte[] buffer = System.Text.Encoding.ASCII.GetBytes("SSL FUNZIA");
stream.Write(buffer, 0, buffer.Length);
System.Threading.Thread.Sleep(5000);
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
}