Autor Beitrag
minnime
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 171

Win 7
Delphi Prism 2011, C# (VS 2010)
BeitragVerfasst: Mi 25.08.10 18:50 
Frage an die Herren mit den grauen Mänteln.
Ich möchte einen symetrischen Verschlüsselungsalgorithmus gemäß dem .Net Standard implementieren, also so dass der wie vorgesehen für den CryptoStram eingesetzt werden kann. Ich verstehe aber nicht ganz wie das funktionieren soll. Diese Klasse macht ja eigentlich gar nichts, die enthält nur die Methode GetEncryptor welche dann, nachdem die Ableitung von SymmetricAlgorithm gefühlte 5000 Parameter übergeben bekommen hat, ein Objekt zurückliefert welches die Schnittstelle ICryptoTransform implementiert. Dieses Objekt enthält den eigentlichen Algorithmus, SymmetricAlgorithm bzw. dessen Ableitung kommt nie mit den Daten in Berührung. Das heißt die Zusatzfunktionen wie Padding und die Block Chaining Modi müssten dann auch in dem zurückgegebenen Objekt enthalten sein. Das hieße weiterhin dass ich das alles komplett selber machen muss, zumal durch die CipherMode-Enumeration schon vorgegeben ist welche Modi eingebaut werden müssen. Allerdings wiederspricht das doch dem Ansatz der Objektorientierung, wo es doch Wiederverwendbarkeit geht. Außerdem wüsste ich nicht wie ich das machen sollte. So wie ich das sehe müsste ich für jede Padding-Chaining-Kombination eine eigene Klasse erstellen, so kann das doch nicht sein.
Ich hätte mir das so vorgestellt dass es eine Basisklasse gibt die das alles schon enthält und den Datenstrom nach aussen kapselt und man nur noch den Kernalgorithmus reinimplementiert. So eine Infrastruktur könnte man sich natürlich selbst bauen bzw. gibt es das schon, nur würde ich gerne den Standard bedienen.
Hat einer eine kreative Idee wie man das richtig macht oder sehe ich da grundsätzlich was falsch?
IsNull
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 97
Erhaltene Danke: 11


VS 2010, C#, AHK
BeitragVerfasst: Di 07.09.10 13:29 
Hier ist der Ablauf mit eineigen Hintergrund beschrieben, evtl hilft dir das weiter.
www.simple-talk.com/...ymmetric-encryption/

Warum man nicht allzuschnell eine Anleitung zum erstellen einer eigenen Implementation eins Cryptoalgorythmus findet liegt IMHO auf der Hand - Eigenkreationen von solchen Algos sind kaum sicher, und daher ist davon abzuraten selber Hand anzulegen. Anders sieht es aus, wenn man bestimmte Blockmodes für bestehende Algos hinzufügen möchte, aber das scheint mir nciht so eifnach möglich zu sein.

Worum geht es bei dir konkret?
minnime Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 171

Win 7
Delphi Prism 2011, C# (VS 2010)
BeitragVerfasst: Fr 10.09.10 19:41 
Das muss ich mir mal genauer ansehen. Auf den ersten Blick nur die üblichen Erklärungen wie man es verwendet aber in der Tat etwas genauer als sonst. Es soll natürlich keine Eigenkreation werden. Ich möchte den RC6 implementieren weil der so schön einfach und flexibel ist und sich sehr leicht auf 64 Bit umstellen lässt und daraus sogar noch Geschwindigkeitsvorteile ziehen kann. Auch gibt es in der Tat noch einige interessante Blockmodes die man einbauen könnte.