Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RSA Hilfe (https://www.delphipraxis.net/92430-rsa-hilfe.html)

nitschchedu 19. Mai 2007 17:11


RSA Hilfe
 
Hallo Leute,
also ich will RSA benutzen am bessten ist es wenn ich das selber schreibe. Aber ich habe da ein verständnis problem.
Ich habe mir schon zahlreiche beiträge dazu angesehen aber konnte nix damit anfangen.
Habe mir auch das im Wiki angeschaut und habe das nicht so richtig verstanden.

Ich brauche das am ende so wie es in Python ist:

Code:
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA

main_key_sign = RSA.construct((
    # n
    0x86724794f8a0fcb0c129b979e7af2e1e309303a7042503d835708873b1df8a9e307c228b9c0862f8f5dbe6f81579233db8a4fe6ba14551679ad72c01973b5ee4ecf8ca2c21524b125bb06cfa0047e2d202c2a70b7f71ad7d1c3665e557a7387bbc43fe52244e58d91a14c660a84b6ae6fdc857b3f595376a8e484cb6b90cc992f5c57cccb1a1197ee90814186b046968f872b84297dad46ed4119ae0f402803108ad95777615c827de8372487a22902cb288bcbad7bc4a842e03a33bd26e052386cbc088c3932bdd1ec4fee1f734fe5eeec55d51c91e1d9e5eae46cf7aac15b2654af8e6c9443b41e92568cce79c08ab6fa61601e4eed791f0436fdc296bb373L,
    # e
    0x07e89acc87188755b1027452770a4e01c69f3c733c7aa5df8aac44430a768faef3cb11174569e7b44ab2951da6e90212b0822d1563d6e6abbdd06c0017f46efe684adeb74d4113798cec42a54b4f85d01e47af79259d4670c56c9c950527f443838b876e3e5ef62ae36aa241ebc83376ffde9bbf4aae6cabea407cfbb08848179e466bcb046b0a857d821c5888fcd95b2aae1b92aa64f3a6037295144aa45d0dbebce075023523bce4243ae194258026fc879656560c109ea9547a002db38b89caac90d75758e74c5616ed9816f3ed130ff6926a1597380b6fc98b5eeefc5104502d9bee9da296ca26b32d9094452ab1eb9cf970acabeecde6b1ffae57b56401L,
    # d
    0x11L,
))

def rsa_sign_message_1024(rsakey, message) :

    digest = SHA.new(message).digest()

    fulldigest = "\x00\x01" + ("\xff" * 218) + "\x00\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14" + digest

    signature = rsakey.encrypt(fulldigest, 0)[0]

    signature = signature.rjust(256, "\x00") # we aren't guaranteed that RSA.encrypt will return a certain length, so we pad it

    return signature


print rsa_sign_message_1024(main_key_sign, "HAllo")
Bitte um Hilfe.
ps: verlange keinen kompletten Code da ich das RSA selber schreiben will in einer Klasse ;-)

[edit=Luckie]Wir haben keine Python-Tags in der DP. :roll: Mfg, Luckie[/edit]

Apollonius 19. Mai 2007 17:15

Re: RSA Hilfe
 
Was erwartest du jetzt eigentlich von uns? Nur auf konkrete Fragen kann man auch konkrete Antworten geben...

nitschchedu 19. Mai 2007 17:20

Re: RSA Hilfe
 
Stimmt schon sorry. Aber habe irgendwie das Problem das zuverstehen wie das in Delphi schreiben soll. :cry:

Assertor 19. Mai 2007 17:28

Re: RSA Hilfe
 
Hallo nitschchedu,

schau die doch mal das DEC von Hagen an. Da findest Du m.e. auch ein RSA Sign in der Unit TestUnit.pas. Was Du hast ist ja auch nur ein RSA PublicKey mit einem SHA Hash...

Denke mal, daß Du damit eine Nachricht bzw. Text signieren willst - und da solltest Du alles notwendige in der DEC finden.

Gruß winkel79

P.S.: Frage mich nicht, wo Du die DEC findest. Das weiß ich nicht mehr. Suche sonst mal in Google nach DEC (Delphi Encryption Compendium) in Version 5.1

nitschchedu 19. Mai 2007 17:30

Re: RSA Hilfe
 
Ok schau mir das mal an, hoffe ich verstehe es.

nitschchedu 19. Mai 2007 18:33

Re: RSA Hilfe
 
So toll ist das Beispiel auch nicht was da mit drin ist, das ganze mit RSA ist nicht mal in einer Klasse gekapselt :( .
Aber erstmal ne frage was genau macht das da oben, das Bsp ?
Edit: Was ich weiß ist das
n = Public Modulus
e = Public Exponent
d = Private Exponent

Assertor 19. Mai 2007 23:18

Re: RSA Hilfe
 
Ich weiß nicht, ob Du einen freien Quelltext für die RSA Schlüsselerzeugung finden wirst, wegen der möglichen Patente von RSA.

Quelle: Informationen der TU-Berlin zur möglichen patentfreien RSA Nutzung

Ich kenne mich mit der Implementierung von RSA nicht aus, verwende selbst stets AES Verfahren wie z.B. Rijndael oder Serpent mit entsprechender Hash-Erzeugung. Wichtig ist natürlich auch noch der Block-Mode und die Hasherzeugung.

Es kommt darauf an, was Du machen willst.

Willst Du eine Signierung die kompatibel zu einer bestehen Software ist programmieren? Also den Python-Teil eines anderen Projektes in Delphi implementieren?

Es scheint ja so, als sei bei Dir der RSA-Key schon hinterlegt, also vermute ich Du brauchst nur die Signierung.

Da sage ich mal ganz laut: Hagen, Hilfe! ;)

Gruß winkel79

negaH 20. Mai 2007 00:12

Re: RSA Hilfe
 
Zitat:

So toll ist das Beispiel auch nicht was da mit drin ist, das ganze mit RSA ist nicht mal in einer Klasse gekapselt
sorry, du erlaubst dir ein Urteil und verstehst noch nichtmal wie RSA funktioniert. Und gerade um solchen Anfängern wie dir näher zu bringen was hinter RSA steht, und wie man es minimalistich und doch mathematisdch richtig umsetzt, ist der Grund warum ich den RSA Demo Source auf das Wesentlichste beschränkt habe.

Gruß Hagen

Assertor 20. Mai 2007 10:40

Re: RSA Hilfe
 
Hallo Hagen!

Danke, daß Du Dich hier einschaltest. Das übersteigt dann doch meinen Horizont ;)

@nitschchedu: Ich habe mir gerade mal den RSA Source angesehen und den kann man wirklich großzügig kommentiert nennen. Eine andere, korrekte Implementation zu finden, wird gerade wegen etwaiger Patente nicht so einfach. Warum brauchst Du eine Klasse, muß doch nicht alles in Delphi in Klassen sein. Und zur Not schreibst Du Dir selber eine mit den Funktionen. Das geht ja einfach.

@negaH: Ich möchte Dir einmal für die ganze Arbeit die Du Dir mit der DEC gemacht hast danken. Die hat mir sehr viel Arbeit erspart. Die DEC I nutze ich selbst und in meinem Programm findest Du Dich in der Aboutbox wieder ;)

Gruß winkel79

nitschchedu 20. Mai 2007 10:52

Re: RSA Hilfe
 
Hallo Leute, erstmal Danke das ihr mir soweit geholfen habt ;-)
So hatte mir gestern mir das oben nochmal ganz genau angesehen und dann hat es klick gemacht. :roteyes:
Das Beispiel ist ja auch gut Komentiert aber konnte damit nix anfangen :cry: .
Aber nun mal ne frage was ich wieder da nicht weiß.

Also wenn ich das Bsp vom Wiki machen will http://de.wikipedia.org/wiki/RSA-Kryptosystem Das Verschlüsseln wie Stelle ich das in Delphi da ?
Und wie würde das dann mit Text gehen ? Da ja in den Bsp zahlen genohmmen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz