comp.lang.ada
 help / color / mirror / Atom feed
From: Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>
Subject: Bignum modular types in Ada95
Date: 1998/01/27
Date: 1998-01-27T00:00:00+00:00	[thread overview]
Message-ID: <34CE568C.55D7E23D@cl.cam.ac.uk> (raw)


One of the especially nice things about Ada seem to be the modular
types. Many of the calculations in asymmetric cryptography are done
over the integers modulo N, where N is a huge number (typically
1024 bits long or more).

I wonder how many Ada compilers support bignum arithmetic directly
without any special library calls, as in

  type Unsigned1024 is range 0..2**1024-1;
  Modulus, Public_Key: Unsigned1024;
  type Message is mod Modulus;
  Clear_Text, Cipher_Text: Message;

  Cipher_Text := Clear_Text ** Public_Key;

Considering that the next generation of server processors
will feature 1024-bit registers and hardware for fast modular
exponentiation, it is nice to know that Ada95 has already the
language constructs available today to use these forthcoming
capabilities comfortably. Neither C nor Java has. I wonder
however, whether existing Ada95 compilers for existing processors
do already support bignum modular arithmetic in a (certainly
slower) software emulation. If not, bignum arithmetic would not be
a portable feature and would therefore be of limited use once
the crypto-coprocessor with suitable hardware registers and
ALUs become available.

Which Ada95 compilers do support 1024-bit integers today and can
do an efficient modular exponentiation over them?

Markus

-- 
Markus G. Kuhn, Security Group, Computer Lab, Cambridge University, UK
email: mkuhn at acm.org,  home page: <http://www.cl.cam.ac.uk/~mgk25/>




             reply	other threads:[~1998-01-27  0:00 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-01-27  0:00 Markus Kuhn [this message]
1998-01-28  0:00 ` Bignum modular types in Ada95 Markus Kuhn
1998-01-28  0:00   ` Brian Rogoff
1998-01-29  0:00     ` Markus Kuhn
1998-01-30  0:00       ` Brian Rogoff
1998-02-01  0:00   ` Robert Dewar
1998-02-02  0:00     ` Tarjei T. Jensen
1998-02-02  0:00       ` Robert Dewar
1998-02-03  0:00         ` Tarjei T. Jensen
1998-02-04  0:00           ` Keith Thompson
     [not found]   ` <EnIIvn.3zr@world.std.com>
1998-01-29  0:00     ` Markus Kuhn
1998-01-31  0:00       ` Nick Roberts
1998-01-29  0:00     ` Mats Weber
     [not found]       ` <EnKEtu.KGp@world.std.com>
1998-01-30  0:00         ` Mats Weber
1998-02-01  0:00           ` Robert Dewar
1998-02-01  0:00           ` Robert Dewar
1998-01-30  0:00         ` Markus Kuhn
1998-01-30  0:00           ` Mats Weber
1998-01-30  0:00             ` Markus Kuhn
1998-01-31  0:00               ` Nick Roberts
1998-02-01  0:00           ` Robert Dewar
1998-01-31  0:00         ` Nick Roberts
1998-02-01  0:00         ` Robert Dewar
1998-02-01  0:00     ` Robert Dewar
1998-01-28  0:00 ` Nick Roberts
1998-01-28  0:00   ` Nick Roberts
1998-02-01  0:00     ` Robert Dewar
1998-02-07  0:00       ` Nick Roberts
1998-02-09  0:00         ` Robert Dewar
1998-01-28  0:00   ` Larry Kilgallen
1998-01-28  0:00 ` Dmitriy Anisimkov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox