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 Function
Toimii 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