Hi.....

 I'm currently working on my own implementation
 of the IDEA block cypher and had a pretty hard
 time of understanding (Ok,Ok I know there's a 
 bunch of publicly available implementations, but
 I wanted to do it myself)

 Anyway. After consulting a bunch of crypto books
 I've stumbled about the idea_mul macro in 
 idea_lcl.h (openssl-0.9.6c) which is supposed
 to do the modified multiplication mod 2^16+1
 which looks like.

 ----------------------------------------------

 #define idea_mul(r,a,b,ul)     \
 ul=(unsigned long)a*b;         \
 if (ul != 0)                   \
        {                       \
        r=(ul&0xffff)-(ul>>16); \
        r-=((r)>>16);           \
        }                       \
 else                           \
        r=(-(int)a-b+1);

 ---------------------------------------------

 All other reference implementations of the
 multiplication I could find look like:

 ---------------------------------------------
 mul( a, b) {
  int32_t p;

  if (a)
    {
      if (b)
        {
          p = a * b;
          b = p & 0xFFFF;
          a = p >> 16;
          return b - a + (b < a);
        }
      else
        return (1 - a);
    }
  return (1 - b);
 }
 --------------------------------------------

 And they definitely produce different results.
 Is there any compensation within the crypto
 code which I've missed (e.g. in the quite
 complicated E_IDEA macro) or do we deal with
 a modified IDEA implementation here ?

 Since I'm afraid that Eric Young may not be 
 reachable via his e-mail at cryptsoft I ask 
 here.

 Cheers

 Sebastian Kloska 
-- 
**********************************
Dr. Sebastian Kloska
Head of Bioinformatics
Scienion AG
Volmerstr. 7a
12489 Berlin
phone: +49-(30)-6392-1708
fax:   +49-(30)-6392-1701
http://www.scienion.de
**********************************
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to