Kirjoittaja: tnb
Kirjoitettu: 18.01.2004 – 18.01.2004
Tagit: kirjaston käyttö, tietoturva, koodi näytille, vinkki
Vb.net pitää sisällään valmiit rutiinit RSA salakirjoitukseen 1024 bittisellä avaimella. 1024 bittinen koodaus on tietääkseni edelleen murtamaton. Kaverille annetaan julkinen indeksi e ja julkinen modulud N joilla hän salaa viestinsä. Salakirjoitus ei aukea julkisilla avaimilla vaan avaus perustuu vain itsellä tiedossa olevaan salaiseen indeksiin d ja julkiseen modulukseen N.
Salauskaavahan oli
salattuluku = (luku^e)mod N
avattuluku = (salattuluku^d)mod N
missä e,d,N valitaan tarkkojen sääntöjen perusteella kahden alkuluvun P ja Q avulla.
^ on potenssiin korotus
mod N on jakojäännös kun jaetaan N:llä.
'Alkuun tämä namespace Imports System.Security.Cryptography
Itse sovellus
'Generoi julkinen/salainen avain Dim RSA As RSACryptoServiceProvider = New RSACryptoServiceProvider 'Talleta avaimet rakenteeseen True = myös salainen avain Dim RSAKeyInfo As RSAParameters = RSA.ExportParameters(True) 'julkinen indexi TextBox4.Text = ByteToAsciiText(RSAKeyInfo.Exponent) ' julkinen modulus N TextBox5.Text = ByteToAsciiText(RSAKeyInfo.Modulus) 'salainen avain D TextBox6.Text = ByteToAsciiText(RSAKeyInfo.D) 'salakirjoitus Dim EncryptedByteMatrix() As Byte EncryptedByteMatrix = RSA.Encrypt(TextTobyte(TextBox1.Text), False) TextBox2.Text = ByteToAsciiText(EncryptedByteMatrix) 'salakirjoituksen avaus Dim DecryptedByteMatrix() As Byte DecryptedByteMatrix = RSA.Decrypt(EncryptedByteMatrix, False) TextBox3.Text = ByteToText(DecryptedByteMatrix)
Apufunktiot
Function TextTobyte(ByVal str As String) As Byte()
'muuttaa byte matriisin tekstiksi
Dim i As Long
Dim mat(str.Length - 1) As Byte
For i = 0 To str.Length - 1
mat(i) = Asc(str.Chars(i))
Next
TextTobyte = mat
End Function
Function ByteToText(ByVal Matrix() As Byte) As String
'muuttaa byte matriisin takaisin tekstiksi
Dim i As Long
Dim mat As Long = (UBound(Matrix))
ByteToText = ""
For i = 0 To mat
ByteToText = ByteToText + Chr(Matrix(i))
Next
End Function
Function ByteToAsciiText(ByVal Matrix() As Byte) As String
'muuttaa byte metriisin vastaavaksi pilkutetuksi ascii tekstiksi
Dim i As Long
Dim mat As Long = (UBound(Matrix))
ByteToAsciiText = ""
For i = 0 To mat
ByteToAsciiText = ByteToAsciiText + CStr(Matrix(i)) + ","
Next
ByteToAsciiText = (ByteToAsciiText.TrimEnd(","))
End FunctionToimii se. HUOM! Vain VB.NETissä.
Tee 6 textboxia ja yksi painike.
Laita alkuun tuo eka juttu.
Itse sovellus kopioi painikkeen onclick tapahtumaan ja tee moduuli, johon laitat tuon apufunktion.
Mikä muuten on vb.net...oon vähän newbie tässä asiassa
Näyttääpi aikalailla yhtä hyvältä kuin DES-salauksesi.
Tyhmää kysymys kun olen sellabeb N00B salauksissa miten tota käytetään?
"Mikä muuten on vb.net..."
Visual Basic, joka on rakennettu käyttämään Microsoftin .NET -ajoalustaa.
"Tyhmää kysymys kun olen sellabeb N00B salauksissa miten tota käytetään?"
http://www.rsasecurity.com/rsalabs/node.asp?id=2152