ich will mir ein Verschlüsselungs-Tool auf Basis von "CAST-256" mit C# (SharpDevelop 4.1) bauen. Bruce Schneier bietet auf seiner Seite (Bruce Schneier) "CAST-256" kostenlos an, allerdings ist der in C geschrieben. Da ich mich mit C überhaupt nicht auskenne, kann ich den Algo. nicht umbauen. Und mit C# beschäftige ich mich erst seit einem halben Jahr.
Ich würde mich über Hilfe zum Umbau sehr freuen. Oder hat jemand ev. CAST-256 in C#? Trotz intensiver Suche habe ich bei Google immer nur "CAST-128" gefunden, den ich aber nicht verwenden will. Vielleicht hat jemand einen Link-Vorschlag?
Ich habe die C++ Version nach C# portiert: Link zum Projekt. Das ist mehr "proof of concept" als eine wasserdichte Implementierung, vermutlich sind noch ein paar Bugs und andere Unschönheiten drin. Aber als Grundlage sicherlich brauchbar.
CAST-256 ist wie CAST-128 eine Feistelchiffre und verwendet die gleiche Rundenfunktion, bei der unter anderem vier S-Boxen eingesetzt werden. Es weist aber eine andere Blockgröße von vier Wörtern zu je 32 Bit und eine Rundenanzahl von 48 auf.
Sicher könnte ich das tun, aber dann habe ich nicht das Original und andere, die mit CAST256 dann ver- oder entschlüsselt haben dann unterschiedliche Ergebnisse, weil nichts mehr kompatibel ist.
CAST-256 ist CAST-256. Ob das nun die Original RFC-Implementierung ist oder nicht ist egal solange der Algorithmus korrekt umgesetzt ist. Und der Algorithmus ist mit CAST-128 identisch nur das die Schlüssellänge variiert.
Es reicht aber nicht led. einen grösseren Schlüssel zu übegeben. Es muss dann auch eine erweiterte interne Verarbeitung geschrieben werden. Sonst ist es kein echter CAST-256 - meiner Meinung nach. Ich glaube, das CAST-256-Programme von anderen Entwicklern ev. mit meinem kollidieen, weil diese es anders umgesetzt haben könnten. Woher stammt diese Info denn? Kann ich das nachlesen?
Dank für die Erweiterung. Ich hatte soeben den Code-Translater: http://code2code.net/ gefunden und werde wohl den Code v. Bruce Schneier versuchen zu konvertieren. Mal sehen wie schwierig die Korrektur dann wird.
So wirklich geholfen wurde mir hier nicht - auf einer anderen Seite wurde mir innerhalb 20 Minuten richtig geholfen. Keine Ahnung was ich damit sagen will - vielleicht wird es jeder selbst für sich erahnen können!?
Wenn nicht mal Du weißt, was Du damit sagen willst - wie sollen wir es dann erahnen können? Ich fände es übrigens nett, wenn Du einen Link zu der "anderen Seite" posten würdest. Du hilfst damit anderen, die das gleich Problem haben und hierher kommen (immerhin ist diese Seite derzeit der #1-Treffer bei google.de für "CAST-256 C#"), verschaffst Deinen Helfern dort noch etwas Reputation (die sie sich verdient haben), und wir hier können vielleicht sogar dazulernen, was wir beim nächsten Mal besser machen könnten.
Hallo Arndt, jede Seite ist nur so gut wie das Engagement ihrer Betreiber und Teilnehmer. Ich möchte dir nicht zu nahe treten, aber deine Frage ist eine typische Fleißaufgabe. Ich hatte mir den C-Code runtergeladen und angeschaut - würde mich ca. eine Stunde kosten zu portieren und dann nochmal mindestens eine Stunde zum testen. Die Zeit hatte ich heute aber nicht. Ein bisschen googlen liefert übrigens noch eine C++ Implementierung: http://www.koders.com/cpp/fid75E946E453ACDBF06CD8ECD89480D423FEF649B7.aspx