Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

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?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

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.

share|improve this answer
1  
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. –  user3100783 May 3 at 1:14
2  
@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… –  e-sushi May 3 at 1:16
2  
@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. –  e-sushi May 3 at 1:23
    
Rather than "secure" I would list this cipher's status as "unknown" due to the lack of third-party cryptanalysis compared to say RC4. –  Dmitry Khovratovich May 3 at 9:24
1  
@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. –  e-sushi May 3 at 10:03

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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