CAST (Algorithmus)
| CAST | |
|---|---|
}} | |
| Entwickler | Carlisle Adams, Stafford Tavares
}} |
| Veröffentlicht | 1996
}} |
| Abgeleitet von | {{{abgeleitet}}}
}} |
| Zertifizierung | {{{zertifizierung}}}
}} |
| Schlüssellänge | 40 bis 128 Bit
}} |
| Blockgröße | 64 Bit
}} |
| Struktur | Feistelchiffre
}} |
| Runden | 12 bei Schlüssel bis 80 Bit, darüber 16
}} |
| Beste bekannte Kryptoanalyse | |
| Mit Stand vom Jahr 2014 ist keine effiziente Kryptoanalyse öffentlich bekannt
}} | |
CAST ist eine symmetrische Blockchiffre mit 64 Bit Blocklänge und einer Schlüssellänge von 40 bis 128 Bit. Alternative Bezeichnungen sind CAST-128 oder CAST5. Der CAST-Algorithmus wurde nach seinen Entwicklern Carlisle Adams und Stafford Tavares benannt und 1996 zum Patent angemeldet. CAST darf weltweit lizenzfrei sowohl in kommerziellen als auch nicht-kommerziellen Anwendungen eingesetzt werden. Wegen seiner höheren Geschwindigkeit gegenüber DES ist CAST auch für Echtzeitanwendungen geeignet.
Der Nachfolger CAST-256 war ein Kandidat in der AES-Challenge.
Bis heute ist CAST noch nicht gebrochen worden, deshalb ist es auch in vielen Anwendungen wie etwa PGP (Pretty Good Privacy) oder GPG (GNU Privacy Guard) enthalten.
CAST ist eine Feistelchiffre. In jeder Runde wird ein Datenwort mit einem Schlüsselwort verknüpft (je nach Runde durch Addition, XOR oder Subtraktion) und schlüsselabhängig rotiert. Dann wird es in vier Abschnitte von je 8 Bit geteilt, die in jeweils einer 8x32 Bit-S-Box substituiert werden. Deren Ausgaben werden miteinander durch die Operationen Addition, Subtraktion und XOR verknüpft. Deren Reihenfolge wird von Runde zu Runde rotiert. Mit dem Ergebnis wird schließlich das andere Datenwort (die zweite Blockhälfte) durch XOR modifiziert.
Literatur
- C.M. Adams: Constructing Symmetric Ciphers Using the CAST Design Procedure. In: Designs, Codes, and Cryptography. 12, Nr. 3, 1997, S. 283–316. <templatestyles src="Webarchiv/styles.css" />{{#if:20110701141658
| {{#ifeq: 20110701141658 | *
| {{#if: jya.com | {{#invoke:WLink|getEscapedTitle|jya.com}} | {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20110701141658}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: jya.com | {{#invoke:WLink|getEscapedTitle|jya.com}} | {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20110701141658}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: jya.com | {{#invoke:WLink|getEscapedTitle|jya.com}} | {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: jya.com | {{#invoke:WLink|getEscapedTitle|jya.com}} | {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: jya.com | {{#invoke:WLink|getEscapedTitle|jya.com}} | {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: jya.com | {{#invoke:WLink|getEscapedTitle|jya.com}} | {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20110701141658|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1}}
|| {{#if: || }}
}}{{#if: jya.com
| {{#if: {{#invoke:WLink|isBracketedLink|jya.com}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.empa.ch/plugin/template/empa/*/80279/---/l=1 }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}, (englisch).
Weblinks
- Erläuterung und Schaubild zum Verfahren auf regenechsen.de