Verschlüsselungsprogramm

Guten Nachmittag

Da die Verschlüsselungstechnik mich sehr viel intressiert, hatte ich mir neulich gedacht Mal ein Programm zu schreiben, dass auf der "PGP"-Verschlüsselung basiert. (Ich hoffe dass dies möglich ist) Jedoch stellt sich mir da jetzt ein kleines Problem in den Weg, und dieses ist, dass ich nicht richtig weiss in welcher Sprache ich das programmieren soll?

Ok C++ wäre die Lösung, aber könnte man dies nicht in Delphi bzw. C# programmieren?

Ich würde mich sehr über euere Meinungen und Antworten freuen

Until-Death

P.S.: Die Verschlüsselung muss jetzt nicht direkt auf PGP basierend sein, eine 256-Bit Verschlüsselung würde auch schon reichen für den Anfang. Von dem Verschlüsselungsprogramm "Challenger" gibt es eine Freeware-Version und eine Shareware-Version. Dies ist eines meiner Hauptgründe wieso ich ein solches Programm entwicklen will, es sollte nämlich alle Funktionen enthalten und komplett Freeware sein.
 
Evtl. informierst du dich erstmal was PGP ist, bevor du es als "Verschlüsselung" bezeichnest: http://de.wikipedia.org/wiki/PGP

PGP ist ein Programm, daß bestimmte Verschlüsselungsalgorithmen nutzt um Nachrichten/Texte zu verschlüsseln und zu signieren (also die Identifikation des Senders eindeutig zu machen). Wäre dir vielleicht auch aufgefallen, wenn du es mal benutzt hättest, da es ja beim Erstellen eines Keys fragt, welche Verschlüsselung genutzt werden soll.

Prinzipiell spricht nichts dagegen die von PGP verwendeten Algorithmen in anderen Sprachen umzusetzen. Die Algorithmen findest du unter

http://de.wikipedia.org/wiki/Elgamal-Kryptosystem und
http://de.wikipedia.org/wiki/RSA-Kryptosystem

Sollte ich dich falsch verstanden haben und du willst ein Tool ähnlich wie PGP schreiben (was total größenwahnsinnig wäre), so findest du unter http://tools.ietf.org/html/rfc2440 das RFC dazu.
 
@bitmuncher:
ich glaube, er will ein verschlüsselungsprogramm programmieren, das evtl. auf dem pgp-prinzip basiert, oder halt auf einer anderen verschlüsselungsmethode.
das halte ich nicht für größenwahnsinnig, denn er hat ja nicht gesagt, dass er es vollständig implementieren will.

@ Until-Death:
verwenden kannst du dafür jede Programmiersprache, die du willst
 
Hallo Until Death!

Ich hoffe du weißt genau, was PGP ist, und was Asymmetrische Verschlüsselung ist.
Das sind einmal absolute Grundvoraussetzungen um deine dir gestellte Aufgabe meistern zu können.
Es kommt darauf an, wie sehr du in den genannten Sprachen vertraut bist, aber ich würde einmal mir einem kleinen Programm beginnen, dass zB RSA oder Blowfish (wenn es symmetrisch sein darf) verwendet.Mach zB mal ein programm, wo man einen Text eingibt, mit einem Schlüssel verschlüsseln kann und anschließend die verschlüsselte Version des Textes erhält.Später kannst du ja zB auch dateien verschlüsseln lassen (was PGP glaube ich nicht kann).Wenn du damit mal fertig bist, dann lade dein Programm doch bitte mal hoch-ich interessiere mich nämlich auch sehr für Kryptografie und wäre erfreut über den Sourcecode.

Als Programmiersprache würde ich dir zu C++ (wegen der Geschwindigkeit) raten.

Schöne Grüße

pi()
 
@bitmuncher

Ich weiß was PGP ist und ich benutze es auch regelmäßig.;)

@Heinzelotto & @pi()

@bitmuncher:
ich glaube, er will ein verschlüsselungsprogramm programmieren, das evtl. auf dem pgp-prinzip basiert, oder halt auf einer anderen verschlüsselungsmethode.
das halte ich nicht für größenwahnsinnig, denn er hat ja nicht gesagt, dass er es vollständig implementieren will.

Ich hatte mir das ganze auc so vorgestellt, dass ich als erstes was kleines Programmier mit einer "normalen" Verschlüsselungstechnik das dann z.b. eine Datei verschlüselt. Später wenn ich in der Sache tiefer drin bin, dann würde ich die PGP bzw. eine ähnliche Verschlüsselungstechnik mit einbauen.

Ich programmiere das auch nicht ganz alleine, es sollte nämlich ein ganzes Projekt werden. Bis jetzt sind wir zu 2 ^^. Also jeder der noch Lust, Zeit und das Wissen hat kann sich gerne per ICQ (426-242-859) melden.=)

Until-Death
 
Ich schaue mir gerade aus verschiedenen Gründen selbst den OpenPGP-Standard an. Würde mich unter Umständen ja schon interessieren, vor allem, weil es gpg immer grösser wird...

Ich hatte mir das ganze auc so vorgestellt, dass ich als erstes was kleines Programmier mit einer "normalen" Verschlüsselungstechnik das dann z.b. eine Datei verschlüselt. Später wenn ich in der Sache tiefer drin bin, dann würde ich die PGP bzw. eine ähnliche Verschlüsselungstechnik mit einbauen.
Wenn du damit symmetrische Verschlüsselung meinst, das wird so einfach nicht klappen. Das ganze Programmdesign muß schon darauf ausgelegt werden, daß du das Zeug gescheit einbindest.

Ausserdem besteht die Frage, ob du die Algorithmen selbst implementieren willst, und die Zahlenbibliothek für RSA/ElGammel selbst baust. Ersteres ist eine frickelige relativ langweilige Arbeit, zweiteres braucht massives Verständnis für Zahlentheorie und Implementierung selbiger (wenn du keine vorgefertigte Programmbibliothek verwendest).
Und nicht zuletzt, wie Bitmuncher schon anmerkte, mußt du dann auch den OpenPGP-Standard reincodieren, wenn du interoperabel zu PGP und GnuPG sein willst.
Das ganze ist wirklich ein ziemlicher Aufwand, wobei man aber auch eine Menge lernen kann, allerdings bezweifle ich gerade, daß du wirklich überblickst, was für ein Aufwand das ist, nichts für ungut (meine Worte sollen beileibe nicht entmutigen, höchstens vor Augen führen, was alles gemacht werden müsste).

Wenn du wirklich erstmal einen symmetrischen Algorithmus als Tool implementieren willst, machs wie bei ncrypt. Such dir 1-2 Verfahren aus, programmiere sie, teste sie mit den Testvektoren, baue Betriebsmodi mit ein, und wenn das fertig ist, kannst du dir nochmal überlegen, ob du das mit dem pgp-klon wirklich willst. (wie schon angedeutet, imo wärs mal wieder Zeit für ein neues gpg/pgp...)

Die Programmiersprache ist dabei erstmal egal, sie muss halt relativ effizient sein, und vor allem schnelle Rechenoperationen bereitstellen, damit die Zahlentheorie-lib schnell genug ist, das ist nämlich verflixt schwierig.
 
Zurück
Oben