Comment convertir ce code VB en C pur ?
Le
Raymond H.
Bonjour,
Il y a environ 2 ans, j'avais commencé à étudier le langage C mais j'ai
dû m'arrêter quelques temps après. J'ai donc beaucoup oublié de ce langage
C.
J'ai développé un nouvel algorithme de cryptage et cet algo doit faire
partie de la version 3.0 d'AllCrypter (version 3.0 dont les licences
d'utilisations qui seront accordées seront gratuites) qui sera disponible
gratuitement lorsque les 2 procédures VB (cryptage et décryptage) seront en
langage C dans une DLL chacune. Ces 2 procédures sont déjà en code VB et
fonctionnent très bien; mais il me reste à convertir en langage C (en DLL)
ces 2 procédures principales pour rendre leur exécution plus rapide qu'en
VB.
http://logicipc.no-ip.com/allcrypter/algorh2a.html (explication de l'algo)
http://logicipc.no-ip.com/allcrypter/algorh2b.html (code VB à convertir en
langage C pour une exécution plus rapide; 1re procédure en haut de la page
que j'ai copié ci-dessous.)
Je chercherais une personne poussée en langage C (utilisant des
pointeurs) qui pourrait m'aider à convertir cette procédure ci-dessous en C
pour compiler dans une DLL (j'ai déjà 'DEV C++') mais avec des pointeurs
puisque c'est la rapidité du code que je cherche avant tout. Tout est déjà
fait et il ne resterait qu'à le convertir fidèlement. Bien que ça puisse me
prendre quelques dizaines de minutes convertir en VB, cela est différent
pour moi de convertir en C car je n'ai pas la même expérience que le VB
(même si je sais que c'est plus simple en C; par exemple, les 8 lignes VB
pour l'inversion d'une chaîne de caractères n'en ferait peut-être qu'une
seule ligne en C (avec un appel); et la conversion d'un caractère VB en
ascii puis en valeur serait plus simple car, si je me souviens bien en C le
caractère est déjà au départ en ascii. Il faudrait que la DLL soit en C pur
pour être lu sous différentes plateformes et non seulement sous Windows.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Public Sub MoteurCryptData(VSa As String, VSb As String, VRep As Double,
VDat As String)
'Cette procédure VB doit être convertie en langage C pur pour une
plus grande rapidité d'exécution.
' Procédure exécutant le chiffrement de chaque bloc
de données à crypter.
'VSa contient la 1re clef de session initiale.
'VSb contient la 2e clef de session initiale.
'VRep contient zéro (0) au départ.
'VDat contient les données à crypter.
Dim VLenVSa As Long
VLenVSa = Len(VSa)
Dim VLenDat As Long
VLenDat = Len(VDat)
Dim VXor As Integer, VXor2 As Integer
Dim V1A As Integer, V3A As Integer, V4A As Integer, V5A As Integer,
V2A As String
Dim VRép1 As Long
'--Inversion de la chaîne de caractères. Chaque groupe doit être lu
à partir de la fin jusqu'au début du fichier en question.
Dim VDemiLenVDat As Long
VDemiLenVDat = VLenDat / 2
Dim VDatTemp As String
For VRép1 = 1 To VDemiLenVDat
VDatTemp = Mid(VDat, VRép1, 1)
Mid(VDat, VRép1, 1) = Mid(VDat, VLenDat - VRép1 + 1, 1)
Mid(VDat, VLenDat - VRép1 + 1, 1) = VDatTemp
Next VRép1
VSa = VSa & Space(VLenDat)
VSb = VSb & Space(VLenDat) 'Idem.
'--Brouillement des données et prolongement des 2 clefs de session.
For VRép1 = 1 To VLenDat
'--Brouillement.
V2A = Right(Str(Asc(Mid(VSb, VRép1 + 3, 1))), 1)
V1A = Val(Right(Str(Asc(Mid(VSa, VRép1 + 1, 1))), 1) & V2A)
V3A = Val(Asc(Mid(VSb, VRép1 + 6 + Val(V2A), 1)))
V4A = Val(Asc(Mid(VDat, VRép1, 1)))
V5A = (V1A + V3A + VRep + V4A) Mod 256
Mid(VDat, VRép1, 1) = Chr(V5A)
VRep = VRep + 1
'--Prolongement des 2 clefs de session.
'-sa> = ((sa_1 + sa_7) Xor (sa_13 + m_1)) Mod 256
Mid(VSa, VLenVSa + VRép1, 1) = Chr(((Val(Asc(Mid(VSa, VRép1,
1))) + Val(Asc(Mid(VSa, VRép1 + 6, 1)))) Xor (Val(Asc(Mid(VSa, VRép1 + 12,
1))) + V5A)) Mod 256)
'-sb> = ((sb1 + sb3) Xor (sb5 + m1)) Mod 256
Mid(VSb, VLenVSa + VRép1, 1) = Chr(((Val(Asc(Mid(VSb, VRép1,
1))) + Val(Asc(Mid(VSb, VRép1 + 2, 1)))) Xor (Val(Asc(Mid(VSb, VRép1 + 4,
1))) + V5A)) Mod 256)
'--Xorer..
'm4_1 = ((sa_10> || sb_2>) xor (sa_17 + sb_6) xor m3_1) mod
256' .
VXor2 = V5A Xor Val(Right(Str(Asc(Mid(VSa, VRép1 + 9, 1))),
1) & Right(Str(Asc(Mid(VSb, VRép1 + 1, 1))), 1))
VXor = Val(Asc(Mid(VSa, VRép1 + 16, 1))) + Val(Asc(Mid(VSb,
VRép1 + 5, 1)))
Mid(VDat, VRép1, 1) = Chr((Val(VXor2) Xor Val(VXor)) Mod
256)
Next VRép1
VRep = VRep Mod 256
VSa = Right(VSa, VLenVSa)
VSb = Right(VSb, VLenVSa)
End Sub
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
a+
Raymond H.
www.allcrypter.com
contact@allcrypter.com
Il y a environ 2 ans, j'avais commencé à étudier le langage C mais j'ai
dû m'arrêter quelques temps après. J'ai donc beaucoup oublié de ce langage
C.
J'ai développé un nouvel algorithme de cryptage et cet algo doit faire
partie de la version 3.0 d'AllCrypter (version 3.0 dont les licences
d'utilisations qui seront accordées seront gratuites) qui sera disponible
gratuitement lorsque les 2 procédures VB (cryptage et décryptage) seront en
langage C dans une DLL chacune. Ces 2 procédures sont déjà en code VB et
fonctionnent très bien; mais il me reste à convertir en langage C (en DLL)
ces 2 procédures principales pour rendre leur exécution plus rapide qu'en
VB.
http://logicipc.no-ip.com/allcrypter/algorh2a.html (explication de l'algo)
http://logicipc.no-ip.com/allcrypter/algorh2b.html (code VB à convertir en
langage C pour une exécution plus rapide; 1re procédure en haut de la page
que j'ai copié ci-dessous.)
Je chercherais une personne poussée en langage C (utilisant des
pointeurs) qui pourrait m'aider à convertir cette procédure ci-dessous en C
pour compiler dans une DLL (j'ai déjà 'DEV C++') mais avec des pointeurs
puisque c'est la rapidité du code que je cherche avant tout. Tout est déjà
fait et il ne resterait qu'à le convertir fidèlement. Bien que ça puisse me
prendre quelques dizaines de minutes convertir en VB, cela est différent
pour moi de convertir en C car je n'ai pas la même expérience que le VB
(même si je sais que c'est plus simple en C; par exemple, les 8 lignes VB
pour l'inversion d'une chaîne de caractères n'en ferait peut-être qu'une
seule ligne en C (avec un appel); et la conversion d'un caractère VB en
ascii puis en valeur serait plus simple car, si je me souviens bien en C le
caractère est déjà au départ en ascii. Il faudrait que la DLL soit en C pur
pour être lu sous différentes plateformes et non seulement sous Windows.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Public Sub MoteurCryptData(VSa As String, VSb As String, VRep As Double,
VDat As String)
'Cette procédure VB doit être convertie en langage C pur pour une
plus grande rapidité d'exécution.
' Procédure exécutant le chiffrement de chaque bloc
de données à crypter.
'VSa contient la 1re clef de session initiale.
'VSb contient la 2e clef de session initiale.
'VRep contient zéro (0) au départ.
'VDat contient les données à crypter.
Dim VLenVSa As Long
VLenVSa = Len(VSa)
Dim VLenDat As Long
VLenDat = Len(VDat)
Dim VXor As Integer, VXor2 As Integer
Dim V1A As Integer, V3A As Integer, V4A As Integer, V5A As Integer,
V2A As String
Dim VRép1 As Long
'--Inversion de la chaîne de caractères. Chaque groupe doit être lu
à partir de la fin jusqu'au début du fichier en question.
Dim VDemiLenVDat As Long
VDemiLenVDat = VLenDat / 2
Dim VDatTemp As String
For VRép1 = 1 To VDemiLenVDat
VDatTemp = Mid(VDat, VRép1, 1)
Mid(VDat, VRép1, 1) = Mid(VDat, VLenDat - VRép1 + 1, 1)
Mid(VDat, VLenDat - VRép1 + 1, 1) = VDatTemp
Next VRép1
VSa = VSa & Space(VLenDat)
VSb = VSb & Space(VLenDat) 'Idem.
'--Brouillement des données et prolongement des 2 clefs de session.
For VRép1 = 1 To VLenDat
'--Brouillement.
V2A = Right(Str(Asc(Mid(VSb, VRép1 + 3, 1))), 1)
V1A = Val(Right(Str(Asc(Mid(VSa, VRép1 + 1, 1))), 1) & V2A)
V3A = Val(Asc(Mid(VSb, VRép1 + 6 + Val(V2A), 1)))
V4A = Val(Asc(Mid(VDat, VRép1, 1)))
V5A = (V1A + V3A + VRep + V4A) Mod 256
Mid(VDat, VRép1, 1) = Chr(V5A)
VRep = VRep + 1
'--Prolongement des 2 clefs de session.
'-sa> = ((sa_1 + sa_7) Xor (sa_13 + m_1)) Mod 256
Mid(VSa, VLenVSa + VRép1, 1) = Chr(((Val(Asc(Mid(VSa, VRép1,
1))) + Val(Asc(Mid(VSa, VRép1 + 6, 1)))) Xor (Val(Asc(Mid(VSa, VRép1 + 12,
1))) + V5A)) Mod 256)
'-sb> = ((sb1 + sb3) Xor (sb5 + m1)) Mod 256
Mid(VSb, VLenVSa + VRép1, 1) = Chr(((Val(Asc(Mid(VSb, VRép1,
1))) + Val(Asc(Mid(VSb, VRép1 + 2, 1)))) Xor (Val(Asc(Mid(VSb, VRép1 + 4,
1))) + V5A)) Mod 256)
'--Xorer..
'm4_1 = ((sa_10> || sb_2>) xor (sa_17 + sb_6) xor m3_1) mod
256' .
VXor2 = V5A Xor Val(Right(Str(Asc(Mid(VSa, VRép1 + 9, 1))),
1) & Right(Str(Asc(Mid(VSb, VRép1 + 1, 1))), 1))
VXor = Val(Asc(Mid(VSa, VRép1 + 16, 1))) + Val(Asc(Mid(VSb,
VRép1 + 5, 1)))
Mid(VDat, VRép1, 1) = Chr((Val(VXor2) Xor Val(VXor)) Mod
256)
Next VRép1
VRep = VRep Mod 256
VSa = Right(VSa, VLenVSa)
VSb = Right(VSb, VLenVSa)
End Sub
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
a+
Raymond H.
www.allcrypter.com
contact@allcrypter.com

Poser une question


Pourquoi developper un nouvel algo, en plus decrit uniquement en francais,
alors qu'il en existe deja plein qui fonctionnent correctement ?
Cet algo a-t-il ete soumis a quelque conference ? Est-ce que vous avez
demande a un cryptographe serieux d'essayer de le casser ?
La, tel quel, je n'aurais aucune raison d'avoir confiance dans votre algo,
bien au contraire...
lors de sa visite sur f.m.crypto (déc. 2004), Arnorld a pété son truc en
très peu de temps. tel l'artiste non reconnu, Raymond aura sûrement
ajouter 2 ou 3 vérus à son truc, évidemment, sans prendre l'avis de
spécialiste, évidemment sans revisiter l'intérêt même de son truc,
évidemment sans chercher à l'éprouver.
pour la précédente destruction en règle de son invention, Raymond répondit:
"Je n'ai pas dit que c'était le logiciel qui a la meilleure qualité
"au monde. Ce sont aux gens de juger des résulats."
en effet, hein, pourquoi se priver d'être malhonnête financièrement et
intellectuellement puisque de tote façon c'est aux gens de se rendre
compte - après les avoir enfumé - qu'on les a floués.
à noter que déjà à l'époque, Raymond avait étudié le C il y a 2 ans mais
cherchait un portage gratuit de son VB eb C "avec des pointeurs pour
aller plus vite".
Sylvain.
"Marc Espie" fk1hbe$18nu$
Peut-être pour les mêmes raisons que d'autres qui en on développés un
avant moi. Mais le sujet ici est le langage C.
L'exposé de mon algo (algo RH) est déjà disponible en public et
n'importe qui de sérieux qui en a les connaissances demandées peut en jugé.
Personne à ce jour n'a pût le casser. Tout y est expliqué très clairement
avec exemple.
http://logicipc.no-ip.com/allcrypter/algorh1a.html
http://logicipc.no-ip.com/allcrypter/algorh2a.html
http://logicipc.no-ip.com/allcrypter/algorh1b.html
http://logicipc.no-ip.com/allcrypter/algorh2b.html
http://logicipc.no-ip.com/allcrypter/algorh3a.html
http://logicipc.no-ip.com/allcrypter/algorh3b.html
Regardez par vous-même les URL ci-dessus pour en juger. Mon algo nommé
'algo RH' a déjà été soumis sur le groupe 'fr.misc.cryptologie', et j'offre
même une certaine somme d'argent (que je peux augmenter) au premier qui
pourrait y casser le simple exemple du cryptogramme que j'y ai placé. Mais
comme j'ai déjà écris plus haut, ici le sujet est le C et non sur le fait de
débattre si mon algo est ceci ou cela.
Bonne journée
Raymond H.
"Sylvain" 47645ef1$0$844$
Mon cher Sylvain vous êtes hors contexte, et vous démontrez devant tout
le monde que vous ne m'aimez tout simplement pas. Jalousie compulsive? De
plus vous êtes de très mauvaise foi pour tenter de glisser l'idée d'un doute
au gens sur l'ajout de virus dans mon propre logiciel? Franchement!
Qu'est-ce que ça vous donne de tenter de salir ma réputation en faisant
ainsi ? Les spécialistes peuvent analyser mon algo qui est déjà détaillé sur
Internet; donc, n'importe qui peut l'éprouver à son gré.
Concernant Arnold, il a une certaine compétence qui mérite d'être
salué; il a participé (en 2004...) aux critiques d'un algo (version 1 et 2
d'AllCrypter) qui précédait le 'Simple Algo' (2005 et plus) appelé plus tard
dans son évolution 'Algo RH' qui maintenant personne n'a pût casser.
Concernant le 'Simple Algo' Arnorld n'a jamais démontré qu'il l'ait déjà
cassé (même si c'était au début du 'Simple Algo'). L'algo des versions 1 et
2 d'AllCrypter est totalement différent de l'algo de la version 3
d'AllCrypter; ici je traite de l'algo RH pour la version 3.0 d'AllCrypter
concernant la conversion des 2 principales procédures (cryptage et
décryptage); c'est le sujet dont vous avez détourné.
<<<<<<<<<<<<<<<<<<<<<<<
From: AMcD
Subject: Re: Simple algo: 3e étage - attaque à clair ou chiffré connu
Date: Sat, 15 Jan 2005 15:49:16 +0100`
Que ce soit toi ou Mister Jack, je tiens à m'incliner devant autant
d'abnégation :-). Moi, il y a longtemps que j'ai lâché l'affaire...
Présentement, il est question de l'algo RH qui doit être intégré à
partir de la version 3.0 dans AllCrypter. Mais concernant le 'Simple algo'
du début en 2005 voici des discussions à son sujet pour ceux qui voudraient
s'y intéresser,
http://groups.google.com/group/fr.m...a28d1fdd46
bien que maintenant l'algo RH à son aboutissement dans son évolution est
différent, et est rendu public sur
http://logicipc.no-ip.com/allcrypter/algorh2a.html .
Il y a plusieurs personnes que je considère comme très compétente au
niveau de la cryptologie et qui ont contribuées à des critiques
constructives concernant les débuts de mon algo appelé 'simple algo' à
l'époque (maintenant l'algo a évolué au point où chacun peut l'analyser et
voir le niveau de sa qualité à
http://logicipc.no-ip.com/allcrypter/algorh2a.html . Parmi les personnes
compétentes en la matière, on peut lire ce qu'ils ont écris lorsqu'on
traitait du tout début du développement de mon algo qui aujourd'hui est
différent vue son évolution à un niveau très élevé:
Par exemple, ici Christophe Henry (avec des formules mathématiques assez
avancées dont il semble que la majorité des gens sur le groupe n'arrivait
pas à suivre pleinement) est l'un parmi ceux qui ont le plus participés aux
critiques positives au début du développement de mon algo ('Simple algo'
devenue par la suite 'Algo RH' dans son évolution); je le remercie pour sa
grande dévotion et son aide qu'il a contribuée à l'avancement de l'algo RH:
<<<<<<<<<<<<<<<<<<<<<<<
From: Christophe HENRY
Le Sun, 09 Jan 2005 01:39:54 -0500,...
...
Celui-là m'a donné du fil à retordre. Nous arrivons ici aux limites de
ma compétence. Cela ne veut pas dire que le simple algo est
"invulnérable". Simplement mes petites capacités ne suffisent plus à
trouver d'attaque mathématisable. Je manque de connaissance pour ce
faire.
...et encore ici (Mister Jack ayant une bonne compétence en la matière et
qui a contribué aussi à de bonnes critiques positives):
<<<<<<<<<<<<<<<<<<<<<<<
From:Mister Jack
Subject:Re: Simple algo: 3e étape_-_attaque_à_
Date:Sat, 15 Jan 2005 21:27:48 +0100
From: Mister Jack
3/ souffrance
Je souffre en lisant les calculs de Christophe Henry, ça me rappelle que
si je garde pas le niveau partout, ça m'arrivera d'autant plus souvent.
...
Concernant le 'Simple Algo' Arnorld n'a jamais démontré qu'il l'ait déjà
cassé, mais il a déclaré:
<<<<<<<<<<<<<<<<<<<<<<<
From: AMcD
Subject: Re: Simple algo: 3e étage - attaque à clair ou chiffré connu
Date: Sat, 15 Jan 2005 15:49:16 +0100`
Que ce soit toi ou Mister Jack, je tiens à m'incliner devant autant
d'abnégation :-). Moi, il y a longtemps que j'ai lâché l'affaire...
J'espère donc, que la suite de cette discussion restera strictement
dans le sujet (conversion de codes VB en C). Concernant mon 'Algo RH',
jugez-en vous-mêmes de sa qualité sur
http://logicipc.no-ip.com/allcrypter/algorh2a.html .
Bonne journée
Raymond H.
Si vous ne le publiez qu'en francais sur quelques newsgroups, c'est pas
trop etonnant.
Vous l'avez reellement soumis a une vraie conf en crypto ? je veux dire,
internationale et en anglais ?
J'emettrais quelques doutes quant a votre qualite a reconnaitre des
gens comme `tres competents en cryptologie'. C'est plutot a vous de
trouver des gens qui sont RECONNUS comme tres competents en cryptologie
au niveau international.
Evidemment, si vous posez ce genre de questions sur un newsgroup, vous allez
larguer la plupart des touristes. On parle de vrais cryptologues, hein,
pas d'amateurs du dimanche qui trainent sur un newsgroup.
Ca me parait clair. M. Henry vous dit tres clairement qu'il ne sait plus
analyser votre algo proprement. Notez qu'il rajoute qu'il n'a pas de grandes
capacites en la matiere.
C'est lui que vous prenez pour un expert en crypto ?
Dites, vous ne lisez que ce que vous avez envie de lire ! Il vous dit
explicitement qu'il n'est pas tres doue pour ce genre de choses.
Pour la suite, je persiste. Et en plus, vous etes en train de vous enfoncer.
Il est tres vraisemblable que votre algo ne vaut rien.
Tous les gens que je connais qui font de la crypto aujourd'hui ont un
solide bagage en maths. Vos petites formules mathematiques ne leur
feront pas peur, elles n'ont aucune raison de faire peur a quiconque
a un bagage mathematique raisonnable (on parle d'un niveau bac+2 dans
vos formules, et les gens en question sont plutot a bac+8... eh oui,
la crypto, c'est une these en maths discretes en general)...
Rendez-vous service, trouvez un vrai cryptologue, montrez-lui votre
algo.
S'il resiste, on en reparlera.