The ISAAC cipher: Difference between revisions

m (→‎{{header|Perl 6}}: change to standard markup)
(→‎{{header|Modula-2}}: Variable names)
Line 2,556:
Msg: TString = 'a Top Secret secret';
Key: TString = 'this is my secret key';
XCTxtXorCipherText: TString = ''; (* XOR ciphertext *)
MCTxtModCipherText: TString = ''; (* MOD ciphertext *)
XPTxtXorPlainText: TString = ''; (* XOR decryption (plaintext) *)
MPTxtModPlainText: TString = ''; (* MOD decryption (plaintext) *)
Mode: TMode = iEncrypt;
HexTxtHexText: TString;
 
(* ISAAC globals *)
Line 2,765:
Mode := iEncrypt;
(* (a) XOR (Vernam) *)
Vernam(Msg, XCTxtXorCipherText);
(* (b) MOD (Vigenere) *)
Vigenere(Msg, Mode, MCTxtModCipherText);
(* (3) Decryption *)
Mode := iDecrypt;
SeedIsaac(Key, TRUE);
(* (a) XOR (Vernam) *)
Vernam(XCTxtXorCipherText, XPTxtXorPlainText);
(* (b) MOD (Vigenere) *)
Vigenere(MCTxtModCipherText, Mode, MPTxtModPlainText);
(* program output *)
WriteString('Message: '); WriteString(Msg); WriteLn;
WriteString('Key : '); WriteString(Key); WriteLn;
ASCII2Hex(XCTxtXorCipherText, HexTxtHexText);
WriteString('XOR : '); WriteString(HexTxtHexText); WriteLn;
ASCII2Hex(MCTxtModCipherText, HexTxtHexText);
WriteString('MOD : '); WriteString(HexTxtHexText); WriteLn;
WriteString('XOR dcr: '); WriteString(XPTxtXorPlainText); WriteLn;
WriteString('MOD dcr: '); WriteString(MPTxtModPlainText); WriteLn;
END RosettaIsaac.
</lang>
Anonymous user