ciphersaber-2 human memorable test vectors

Arnold G. Reinhold reinhold at world.std.com
Sun Mar 31 12:46:18 EST 2002


Human memorable test vectors are a great idea and very much in the 
spirit of Ciphersaber, which is to enable oral transmission of strong 
cryptography.  Test vectors are vital, particularly for a string 
cipher, because even an erroneous implementation will decrypt the 
ciphertext it produces.

The good news is that Ciphersaber/RC4 implementations are so 
sensitive to signed vs unsigned chars errors that they should be 
detected even by a test vector with all high order bits zeroed. The 
S-array will be totally screwed up. It's a very common problem.

A more subtle problem is detecting attempts to use C strings to store 
keys.  That will work fine unless there is a zero byte in the IV. I 
got tripped up by that indirectly because I was using Chipmunk Basic, 
which implements Basic strings as C strings. I only found out when I 
got complaints that one of the test vectors I published was bad.

I think screwing around with compression is more trouble than it's 
worth. Another approach might be to look for human memorable hex as 
the ciphertext or maybe just the IV, e.g. "00112233445566778899"  or 
"badbad00badbad00" But that would be for extra credit.  Adam's 
vectors accomplish most of what is needed.

Arnold Reinhold

Test vector trivia: anyone remember what "RYRYRYRYRY" was for and why?



At 11:02 PM +0000 3/29/02, Adam Back wrote:
>On Fri, Mar 29, 2002 at 01:49:30PM -0800, Bill Frantz wrote:
>> At 10:15 AM -0800 3/26/02, Adam Back wrote:
>> >In general purely human readable test vectors are not ideal as they
>> >are 7 bit, and there have been cases where implementation errors or
>> >related to the 7th bit (for example one blowfish implementation had
> > >problems with signd / unsigned chars), but it is kind of an
>> >interesting though experiment.
>>
>> If this issue seems to be a problem for a particular cypher, there are a
>> couple of ways to try to solve it:
>>
>> * Compress out the eighth bit (requiring 10 characters for a 64 bit block
>> cypher instead of 8).
>
>That would work.
>
>> * Remember a pattern of high order bits.  Something like 11110000 would be
>> relatively easy to remember, and would help mitigate signed vs. unsigned
>> number problems on 32 bit machines.
>
>No guarantees about what the rest of the test vector would look like
>if you choose an easily rememberable high order bit set as the key
>(which was where the blowfish problem arose if I recall).  Or perhaps
>you were suggesting ORing them into the otherwise 7 bit test vector
>and having the additional constraint that the other outputs had the
>same or equally memorable high bit pattern.  That would be plausible.
>
>Any takers on ciphersaber-2 test vectors which are also topical and
>amusing english phrases?
>
>Adam
>
>---------------------------------------------------------------------
>The Cryptography Mailing List
>Unsubscribe by sending "unsubscribe cryptography" to 
>majordomo at wasabisystems.com


---------------------------------------------------------------------
The Cryptography Mailing List
Unsubscribe by sending "unsubscribe cryptography" to majordomo at wasabisystems.com



More information about the cryptography mailing list