6
$\begingroup$

http://en.wikipedia.org/wiki/ISAAC_(cipher)

This question was asked before but the answers seem vague, and I want to know about ISAAC specifically, not ISAAC+.

It seems some cryptanalysis was performed on it and the only seemingly major drawback to security is that some initial rounds may be biased (although on the official website, looking at the implementations the author of ISAAC purposefully skips the first round).

Also, is there anything unique to seeding this cipher? Can I not just pass it any securely generate random seed?

$\endgroup$

1 Answer 1

4
$\begingroup$

It somewhat depends how you define “secure“, but as far as I know, it has not been broken yet.

Potential attacks and/or weaknesses:

  • Brute force to find 256-bit key.
    ~ Obvious.
  • Paul and Preneel (2006) published an alleged distinguishing attack using $2^{17}$ bytes of output
    ~ Turned out to be an attack on a cipher different from ISAAC.
  • Aumasson (2006) labelled various states of ISAAC as "weak."
    ~ Pointing to weaknesses, but no statements of any attack.

Therefore, I would categorize it to be cryptographically secure indeed. Yet, we have to remember that ISAAC didn’t get as much attention as (for example) AES did. So there may well be weaknesses that have not yet been found and/or published. But looking at what is known, it should be safe. (ISAAC+ would be more recommendable though, as it fixes some weaknesses pointed out by Aumasson).

As to seeding: a securely generated random seed should indeed suffice, as long as it is generated cryptographically secure.

$\endgroup$
7
  • 1
    $\begingroup$ It seems it can have seeds as large as 8192 bits. And I just wish I could find some implementation of ISAAC+ or at least a full specification. $\endgroup$ Commented May 3, 2014 at 1:14
  • 2
    $\begingroup$ @user3100783 The author himself pointed to the fact he used the output of a cryptographically secure cipher for seeding. Which might be a good hint at how to get those bits filled up quickly, but secure. Quote: Seeding a random number generator is essentially the same problem as encrypting the seed with a block cipher. ISAAC should be initialized with the encryption of the seed by some secure cipher… $\endgroup$
    – e-sushi
    Commented May 3, 2014 at 1:16
  • 2
    $\begingroup$ @user3100783 For the ISAAC+ specs, simply check the Aumasson paper, section 3… called “ISAAC+”. ;) On page 5 you’ll find the description and on page 6 you’ll find the ISAAC+’s algorithm for an arbitrary round. $\endgroup$
    – e-sushi
    Commented May 3, 2014 at 1:23
  • 2
    $\begingroup$ Rather than "secure" I would list this cipher's status as "unknown" due to the lack of third-party cryptanalysis compared to say RC4. $\endgroup$ Commented May 3, 2014 at 9:24
  • 2
    $\begingroup$ @DmitryKhovratovich I guess Aumasson would disagree about a “lack of third-party cryptanalysis”. Nevertheless, I wrote … Yet, we have to remember that ISAAC didn’t get as much attention as (for example) AES did. So there may well be weaknesses that have not yet been found and/or published. … for a good reason, as cryptanalysis was indeed minimal. A status of “unknown” would be wrong though, as there was related security research. $\endgroup$
    – e-sushi
    Commented May 3, 2014 at 10:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.