Accueil > > > CRYPTAGE/DECRYPTAGE RSA SUR 64 BITS
CRYPTAGE/DECRYPTAGE RSA SUR 64 BITS
Information sur la source
Description
Module de cryptage/decryptage RSA 64 bits avec génération des clés privée/public.
Source
- Public key(1 To 3) As Double
- Public p As Double, q As Double
- Public PHI As Double
-
- Public Sub keyGen()
-
- Dim E#, D#, N#
- Const PQ_UP As Integer = 9999
- Const PQ_LW As Integer = 3170
- Const KEY_LOWER_LIMIT As Long = 10000000
- p = 0: q = 0
-
- Randomize
-
- Do Until D > KEY_LOWER_LIMIT
- Do Until IsPrime(p) And IsPrime(q)
- p = Int((PQ_UP - PQ_LW + 1) * Rnd + PQ_LW)
- q = Int((PQ_UP - PQ_LW + 1) * Rnd + PQ_LW)
- Loop
-
- N = p * q
- PHI = (p - 1) * (q - 1)
- E = GCD(PHI)
- D = Euler(E, PHI)
- Loop
-
- key(1) = E
- key(2) = D
- key(3) = N
-
- End Sub
-
-
- Private Function Euler(E3 As Double, PHI3 As Double) As Double
-
- On Error Resume Next
-
- Dim u1#, u2#, u3#, v1#, v2#, v3#, q#
- Dim t1#, t2#, t3#, z#, uu#, vv#, inverse#
-
- u1 = 1
- u2 = 0
- u3 = PHI3
- v1 = 0
- v2 = 1
- v3 = E3
-
- Do Until (v3 = 0)
- q = Int(u3 / v3)
- t1 = u1 - q * v1
- t2 = u2 - q * v2
- t3 = u3 - q * v3
-
- u1 = v1
- u2 = v2
- u3 = v3
-
- v1 = t1
- v2 = t2
- v3 = t3
- z = 1
- Loop
- uu = u1
- vv = u2
-
- If (vv < 0) Then
- inverse = vv + PHI3
- Else
- inverse = vv
- End If
-
- Euler = inverse
-
- End Function
-
- Private Function GCD(nPHI As Double) As Double
-
- On Error Resume Next
-
- Dim nE#, y#
- Const N_UP = 99999999
- Const N_LW = 10000000
-
- Randomize
- nE = Int((N_UP - N_LW + 1) * Rnd + N_LW)
-
- top:
- x = nPHI Mod nE
- y = x Mod nE
- If y <> 0 And IsPrime(nE) Then
- GCD = nE
- Exit Function
- Else
- nE = nE + 1
- End If
-
- GoTo top
-
- End Function
-
- Private Function IsPrime(lngNumber As Double) As Boolean
-
- On Error Resume Next
-
- Dim lngCount#
- Dim lngSqr#
- Dim x#
- lngSqr = Int(Sqr(lngNumber))
-
-
- If lngNumber < 2 Then
- IsPrime = False
- Exit Function
- End If
- lngCount = 2
- IsPrime = True
-
-
- If lngNumber Mod lngCount = 0 Then
- IsPrime = False
- Exit Function
- End If
- lngCount = 3
-
-
- For x = lngCount To lngSqr Step 2
-
-
- If lngNumber Mod x = 0 Then
- IsPrime = False
- Exit Function
- End If
- Next
- End Function
-
- Public Function Mult(ByVal x As Double, ByVal p As Double, ByVal m As Double) As Double
-
- On Error GoTo error1
-
- y = 1
-
- Do While p > 0
-
-
- Do While (p / 2) = Int((p / 2))
- x = nMod((x * x), m)
- p = p / 2
- Loop
- y = nMod((x * y), m)
- p = p - 1
- Loop
- Mult = y
- Exit Function
-
- error1:
- y = 0
-
- End Function
-
- Private Function nMod(x As Double, y As Double) As Double
-
- On Error Resume Next
-
- Dim z#
-
- z = x - (Int(x / y) * y)
-
- nMod = z
-
- End Function
-
- Public Function enc(tIp As String, eE As Double, eN As Double) As String
-
- On Error Resume Next
-
- Dim encSt As String
- encSt = ""
- e2st = ""
-
- If tIp = "" Then Exit Function
- For i = 1 To Len(tIp)
- encSt = encSt & Mult(CLng(Asc(Mid(tIp, i, 1))), eE, eN) & "+"
- Next i
-
- enc = encSt
-
- End Function
-
- Public Function dec(tIp As String, dD As Double, dN As Double) As String
-
- On Error Resume Next
-
- Dim decSt As String
- decSt = ""
-
- For z = 1 To Len(tIp)
- ptr = InStr(z, tIp, "+")
- tok = Val(Mid(tIp, z, ptr))
- decSt = decSt + Chr(Mult(tok, dD, dN))
- z = ptr
- Next z
-
- dec = decSt
-
- End Function
-
Public key(1 To 3) As Double
Public p As Double, q As Double
Public PHI As Double
Public Sub keyGen()
Dim E#, D#, N#
Const PQ_UP As Integer = 9999
Const PQ_LW As Integer = 3170
Const KEY_LOWER_LIMIT As Long = 10000000
p = 0: q = 0
Randomize
Do Until D > KEY_LOWER_LIMIT
Do Until IsPrime(p) And IsPrime(q)
p = Int((PQ_UP - PQ_LW + 1) * Rnd + PQ_LW)
q = Int((PQ_UP - PQ_LW + 1) * Rnd + PQ_LW)
Loop
N = p * q
PHI = (p - 1) * (q - 1)
E = GCD(PHI)
D = Euler(E, PHI)
Loop
key(1) = E
key(2) = D
key(3) = N
End Sub
Private Function Euler(E3 As Double, PHI3 As Double) As Double
On Error Resume Next
Dim u1#, u2#, u3#, v1#, v2#, v3#, q#
Dim t1#, t2#, t3#, z#, uu#, vv#, inverse#
u1 = 1
u2 = 0
u3 = PHI3
v1 = 0
v2 = 1
v3 = E3
Do Until (v3 = 0)
q = Int(u3 / v3)
t1 = u1 - q * v1
t2 = u2 - q * v2
t3 = u3 - q * v3
u1 = v1
u2 = v2
u3 = v3
v1 = t1
v2 = t2
v3 = t3
z = 1
Loop
uu = u1
vv = u2
If (vv < 0) Then
inverse = vv + PHI3
Else
inverse = vv
End If
Euler = inverse
End Function
Private Function GCD(nPHI As Double) As Double
On Error Resume Next
Dim nE#, y#
Const N_UP = 99999999
Const N_LW = 10000000
Randomize
nE = Int((N_UP - N_LW + 1) * Rnd + N_LW)
top:
x = nPHI Mod nE
y = x Mod nE
If y <> 0 And IsPrime(nE) Then
GCD = nE
Exit Function
Else
nE = nE + 1
End If
GoTo top
End Function
Private Function IsPrime(lngNumber As Double) As Boolean
On Error Resume Next
Dim lngCount#
Dim lngSqr#
Dim x#
lngSqr = Int(Sqr(lngNumber))
If lngNumber < 2 Then
IsPrime = False
Exit Function
End If
lngCount = 2
IsPrime = True
If lngNumber Mod lngCount = 0 Then
IsPrime = False
Exit Function
End If
lngCount = 3
For x = lngCount To lngSqr Step 2
If lngNumber Mod x = 0 Then
IsPrime = False
Exit Function
End If
Next
End Function
Public Function Mult(ByVal x As Double, ByVal p As Double, ByVal m As Double) As Double
On Error GoTo error1
y = 1
Do While p > 0
Do While (p / 2) = Int((p / 2))
x = nMod((x * x), m)
p = p / 2
Loop
y = nMod((x * y), m)
p = p - 1
Loop
Mult = y
Exit Function
error1:
y = 0
End Function
Private Function nMod(x As Double, y As Double) As Double
On Error Resume Next
Dim z#
z = x - (Int(x / y) * y)
nMod = z
End Function
Public Function enc(tIp As String, eE As Double, eN As Double) As String
On Error Resume Next
Dim encSt As String
encSt = ""
e2st = ""
If tIp = "" Then Exit Function
For i = 1 To Len(tIp)
encSt = encSt & Mult(CLng(Asc(Mid(tIp, i, 1))), eE, eN) & "+"
Next i
enc = encSt
End Function
Public Function dec(tIp As String, dD As Double, dN As Double) As String
On Error Resume Next
Dim decSt As String
decSt = ""
For z = 1 To Len(tIp)
ptr = InStr(z, tIp, "+")
tok = Val(Mid(tIp, z, ptr))
decSt = decSt + Chr(Mult(tok, dD, dN))
z = ptr
Next z
dec = decSt
End Function
Conclusion
N'oubliez pas de générer les clés !
Lundi 21 Mai ajout d'un projet démo et de l'exécutable.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
cryptage decryptage RSA cle prive cle publique [ par thierrydelepine ]
bonjour,je cherche un code sample sur le cryptage decryptage RSA mais avec de grandes clés.j'ai testé les differentes sources de VBFrance mais les clé
Aider-moi (cryptage-décryptage de texte) [ par Quiske ]
Salut tlm j'ai un bleme je fais un programme pour crypter et decrypter du texte:j'ai une textbox et 2 bouton je voudrais que en entrant un truc zarb c
Cryptage RSA [ par pirate75000 ]
Je desirais savoir si la je crypte par la methode RSA une valeur de chaine du type "TOTO" la valeur encripté retourné sera t elle la meme sous un syst
comment ajouté un code de cryptage RSA [ par salimkalil ]
salut a tt j'ai une application de transfère de fichier par RS232 bd 9 avec vb 6 mais je ne sais pas comment ajouté un code de cryptage RSA pour ê
Décryptage dans un dossier Temp [ par gotakk ]
Bonjour, je suis débutant en visual basic et je fait un jeu sous frog creator. Mon problème est le suivant : j'ai trouvé une source qui à une fonctio
Cryptage TripleDES [ par dheroux ]
Bonjour, Je programme sous VB NET 2008. Le cryptage TripleDES s'effectue à l'aide d'une clé de 192 bits (et d'un vecteur) Lorsqu'on génère automatiqu
décrypter du RSA [ par petit chat ]
Bonjour à toutes et tous, Mon soucis est de mettre au point un algo qui décrypte un message chiffré en RSA. Alors je récapitule, dites moi quand je m
Cryptage base de données [ par lionyz ]
Bonjour, J'ai créé une base de données DAO avec l'instruction Set Madb = CreateDatabase(NomBase, dbLangGeneral, dbEncrypt) Après plusieure éssais je
Problème décryptage [ par lilj ]
Bonjour, Voilà, j'utilise la source [url=http://www.vbfrance.com/codes/CRYPTAGE-DECRYPTAGE-FICHIER-AVEC-AES_48385.aspx]ELGAESCRYPT[/url]. Mais en l'u
Cherche cryptage de ce fichier [ par viruskail ]
Bonjour je recherche le cryptage de ce fichier : http://www.megaupload.com/?d=4HL0DAPM aidez moi svp
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|