[B 2010] Algoritmo Cifratura Asimmetrica

lunedì 20 aprile 2015 - 16.28
Tag Elenco Tags  .NET 4.0  |  Windows XP  |  Visual Studio 2010  |  Visual Studio Express

Mrk31 Profilo | Newbie

Come da titolo sono alla ricerca di un'algoritmo di cifratura adatto al mio problema:

Ho un programma nel quale e' presente una sezione "delicata" che l'utente normale non dovrebbe utilizzare se non in condizioni eccezionali.

In tali condizioni l'utente dovrebbe contattare un servizio di assistenza che fornisca una password per accedere a tale area.
Mi servirebbe che la password avessa validita' ristretta (nel tempo) per questo avevo pensato di cifrare un a "stringa" del Genere:

- CodiceUtente+DataEOra(solo hh in modo da dare una finestra di utilizzo di un'ora)+StringaFissa

Le richiesta dovrebbe essere effettuata nel seguente modo.

L'utente contatta l'assistenza e fornisce il proprio codice e l'ora del sistema su cui sta lavorando.

- L'operatore dell'assistenza immette tali dati in un programma AdHoc che calcola la password da dare all'utente

- L'utente immette la password ed il programma la devifra e controlla che utente e orario corrispondano.

Il programma in mano all'assistenza dovrebbe solamente "cifrare", quello in mano all'utente solo "deficrare" con due chiavi differenti.

Andrebbe benissimo anche se tutte le copie del programma in mano all'utente condividessero la stessa "ChiavePrivataUtente" e se tutte le copie del programma in mano all'assistenza condividessero la stessa "ChiavePrivataAssistenza"

Il risultato della "cifratura" dovrebbe essere corto perche' deve essere dettata ed inserita a mano dall'utente...

Quale algoritmo di cifratura permetterebbe cio' generando testoCifrato "corto"?

La comunicazione sarebbe "MonoDirezionale" (quindi dovrei aver bisongo di una sola coppia di chiavi ancziche' due) e avverrebbe un'unica "conversazione"...

Vi Ringrazio In Anticipo.

P.S. E' mangiata parte del titolo...lavoro in VB 2010 (.Net 4.0)

emilier Profilo | Newbie

Allora, mi sembra un problema che puoi risolvere con la cifratura asimmetrica.
Con il tuo programma distribuisci la chiave privata all'interno dell'algoritmo che ti gestisce la parte nascosta.
Tu con la chiave pubblica cripti i dati che ti servono nell'algoritmo di sblocco.

Ora la lunghezza da comunicare non dipende dalla chiave ma dalla lunghezza dei dati del messaggio che vuoi inviare!

ps. I classici passaggi della cifratura sono questi:
Alice chiede a Bob di spedirle il suo lucchetto, già aperto. La chiave dello stesso verrà però gelosamente conservata da Bob.
Alice riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Bob.
Bob riceve il pacco e può aprirlo con la chiave di cui è l'unico proprietario.

Qua hai il link "How to: Encrypt XML Elements with Asymmetric Keys"
https://msdn.microsoft.com/en-us/library/ms229746%28v=vs.110%29.aspx

Qua invece "How to: Decrypt XML Elements with Asymmetric Keys"
https://msdn.microsoft.com/en-us/library/ms229919%28v=vs.110%29.aspx

Direi che c'è tutto...

Mrk31 Profilo | Newbie

Si hai ragione...il mio problema e' che mi servirebbe un algoritmo di cifratura asimmetrica che generi testo cifrato "corto" diciamo un 6-10caratteri che possibilmente sia gia' implementato nelle librerie di .NET di quelli implementati conosco solamente RSA e Diffie-Hellmann...

Secondo te qual'e' meglio...in piu' la coppia di chiavi (pubblicha e privata) dovrei generarle a priori per poi includerne una (pubblica) nel software "assistenza", l'altra (privata) nel Sw "utente" in modo che quello assistanza possa solamente cifrare e quello utente solamente decifrare...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5