Re: Proposal: New Bignum

From: Robert Feldt <feldt@...>
Date: 2004-04-06 13:39:46 UTC
List: ruby-core #2752
Evan Webb wrote:

>During some experiments with ruby cryptography, I found some problems with
>the existing Bignum classes. These problems were primarily focused around
>certain lacking features required to do more complex operations as well as
>some number theory ones. After examining the existing Bignum code, I found
>it would be simpler and yield larger results to work on an alternative. I
>had at the time been working with libtommath, a public domain math library
>with all the functions I required and more. In addition, it's API made it
>extremely easy to create a simple, thin, easy layer between ruby and the
>library. And thus MBignum was born.
>
>Early uses found it extremely easy to integrate as an alternative to Bignum.
>My Crypt::RSA, Crypt::DSS, and Crypt::ElGamal implementations become simple,
>elegant, and importantly, fast.
>
>And thus I propose that we integrate MBignum into the ruby core as Bignum,
>replacing the current implementation. This will give ruby more builtin
>mathematical power and allow other core developers the ability to
>concentrate on other issues. Licensing wise, there is no problem. Tom St.
>Denis, the author of libtommath, has released libtommath as public domain. I
>believe that we should of course give him credit if and when we integrate
>his work.
>
>  
>
I agree with this proposal. Python has fast bignum exponentiation in the 
core and Ruby should also have that. I also wrapped libtommath to do 
crypto and find it very good to work with. Clean, simple and fast.

Evan: Am I correct in that exponentiation is the main problem? That's 
what I found even though libtommath is generally faster than what we 
have now.

Evan: One way to convince matz might be to actually do it, ie produce 
patches to the Ruby interpreter. If it's integrated, the right license 
and works that would make his decision easier. If I remember correctly 
the conversions Fixnum <=> Bignum are fairly concentrated in the source 
so it should be doable.

Matz: If this is not possible in the 1.9 series please consider using 
libtommath for Rite.

My 2 cents,

Robert



In This Thread