Kirjautuminen

Haku

Tehtävät

Koodit: VB.NET: RSA-salaus

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

Kommentit

Aku2 [19.01.2004 00:19:41]

#

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.

miiro [21.01.2004 19:36:55]

#

Mikä muuten on vb.net...oon vähän newbie tässä asiassa

hunajavohveli [18.06.2004 19:46:50]

#

Näyttääpi aikalailla yhtä hyvältä kuin DES-salauksesi.

theman [05.08.2004 11:36:06]

#

Tyhmää kysymys kun olen sellabeb N00B salauksissa miten tota käytetään?

anttipanda [18.07.2005 11:40:39]

#

"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

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta