ISAC File Crypter documentation by EddyHawk
---

What
---
ISAC is a file encrypter coded by EddyHawk (me).
It is part of PROTAGON File Crypter (PFC) series done by me.
ISAC uses ISAAC CPRNG as 8192bit key stream cipher, with
 MD4 & SHA-512 hash functions, and HMAC & PbKDF2 constructions,
 all taken/adapted from WE Pascal sources.

What is ISAAC
---
ISAAC (Indirection, Shift, Accumulate, Add, & Count) is a CPRNG designed by
 Robert J. Jenkins Jr. [1996]
It is the successor of IBAA (Indirection, Barrelshift, Accumulate, & Add),
 itself the successor of IA (Indirection, Addition) by the same author.
 They share similarities with Ronald Rivest's RC4 stream cipher.

Best known attack:
 known plaintext attack requiring 4.67x 10^1240 (2^4121) time instead of
  10^2466 [Pudovkina, 2001]

IP status: public domain
Unbroken status: as 2015, 19 years.

Requirements: 2kb +20b mem

---
What is WE Pascal source
---
Wolfgang Ehrhardt (WE) creates an excellent collection of crypt Pascal sources
 which is freely available in Internet, supporting Borland Pascal 7,
 all flavors of Borland Delphi, Free Pascal Compiler, & Virtual Pascal,
 in single source.

ISAAC CPRNG for ISAC is taken by me from that collection
 [PRNG 07 Jan 2013], then compiled under Virtual Pascal v2.1b279.

MD4 & SHA-512 hash functions and HMAC & PbKDF2 constructions for ISAC are
 also taken from that collection [CRC_Hash 25 Aug 2014], also compiled under
 Virtual Pascal v2.1b279.

ISAC specific features
---
Optimized double PbKDF2-HMAC-SHA512 9000/1 iterations
 with 512/8192bit output

From that 8192bit output, 1024bit of it (SHA512 block length)
 is also used as HMAC key for ciphertext, and then that HMAC
 is pre-updated with the rest (960bit).

8192bit key

WE's ISAAC selftest is included & automatically activated during ISAC run.

---
FAQ
---
ISAAC is a CPRNG. It should be used instead of Fenris for PFCs.
 ISAAC has been around for a long time and got an public cryptanalysis as KSG
 or stream cipher (unlike Fenris).
 It's thus kind of waste to use it just as CPRNG.
 It also doesn't seem to support (partial) reseeding (unlike Fenris),
 though PFCs haven't used this Fenris feature yet.

End.