comp.lang.ada
 help / color / mirror / Atom feed
* Bignum modular types in Ada95
@ 1998-01-27  0:00 Markus Kuhn
  1998-01-28  0:00 ` Dmitriy Anisimkov
                   ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Markus Kuhn @ 1998-01-27  0:00 UTC (permalink / 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/>




^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~1998-02-09  0:00 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-01-27  0:00 Bignum modular types in Ada95 Markus Kuhn
1998-01-28  0:00 ` Dmitriy Anisimkov
1998-01-28  0:00 ` Nick Roberts
1998-01-28  0:00   ` Larry Kilgallen
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 ` 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         ` 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-30  0:00         ` Mats Weber
1998-02-01  0:00           ` Robert Dewar
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

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