Article View: chile.comp.misc
Article #719Re: Libreria C++ para manejo de Enteros Grandes
From: Pablo Bleyer Kocik
Date: Tue, 23 May 2000 00:00
Date: Tue, 23 May 2000 00:00
40 lines
3306 bytes
3306 bytes
"Carlos Tondreau C." wrote:
> Nicolas Riesco (nriescoNO_SPAM@directo.cl) wrote:
> > Alguien sabe de donde puedo sacar una libreria para C++ para manejo de
> > Enteros Grandes, vale decir enteros de 200+ digitos para claves RSA y
> > demases... Ojala que contenga raiz y exponenciacion (sobre todo raiz) Se que
> > existe, y que es super eficiente pero no la encuentro.
>
> Hola:
> Ni idea c�mo manejar enteros tan grandes, pero te puedo dar
> una peque�a sugerencia. Generalmente, cuando necesitas muuuuuchos d�gitos
> lo normal ser�a tratarlos como char* o sea, como string de caracteres.
> Si despu�s necesitas hacer operaciones matem�ticas sobre ellos me d�
> la impresi�n que tendr�as que aplicar algunas propiedades de los n�meros
> naturales para trabajar el string por partes m�s peque�as. Me imagino que
> si pudieras analizar los integers como suma de potencias de 10
> tendr�as una gran ayuda para manipular integers por partes.
>
> En realidad, es s�lo una idea, plop!
Los n�meros se tratan como un array y la alocaci�n depende de la arquitectura
de la m�quina (tama�o de la palabra) por razones de eficiencia --y esto no es
siempre un char. Por lo tanto, se alinean "pedazos" de un n�mero grande de tal
forma que el assembler de la m�quina lo aproveche de la mejor manera posible al
momento de escribir las operaciones sobre los n�meros. Esto no es tan trivial como
suena ya que a veces la forma de almacenar un n�mero depende del tipo de
operaciones que se va a aplicar de manera m�s frecuente a �stos. Cuando uno va a
procesar millones de operaciones por segundo (e.g. crackear RC4/RC5) generalmente
uno provee subrutinas para realinear los n�meros cada vez que se cambia el tipo de
operaci�n y trata de poner las operaciones en un "pipeline" eficiente porque los
ciclos que se ahorran por cada operaci�n se traducen en una reducci�n del tiempo
de ejecuci�n. Esta reducci�n, aunque generalmente lineal, es considerable para
fines pr�cticos.
Saludos!
--
Pablo Bleyer Kocik |
pbleyer |"Rintrah roars & shakes his fires in the burdend air;
@embedded.cl | Hungry clouds swag on the deep" � William Blake
Technical Details
Message-ID:
<392A2504.72D50B86@embedded.cl>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<B54DB6F4.A48E%nriescoNO_SPAM@directo.cl> <8gc3ks$4hm$1@news.firstcom.cl>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f9ea8,2c6e2a53cf0f0d51 X-Google-Attributes: gidf9ea8,public X-Google-Thread: 10ec3c,2c6e2a53cf0f0d51 X-Google-Attributes: gid10ec3c,public X-Google-Thread: 1054ea,2c6e2a53cf0f0d51 X-Google-Attributes: gid1054ea,public X-Google-Thread: 107d6b,2c6e2a53cf0f0d51 X-Google-Attributes: gid107d6b,public From: Pablo Bleyer Kocik <pbleyer@embedded.cl> Subject: Re: Libreria C++ para manejo de Enteros Grandes Date: 2000/05/23 Message-ID: <392A2504.72D50B86@embedded.cl> X-Deja-AN: 626160221 Content-Transfer-Encoding: 8bit References: <B54DB6F4.A48E%nriescoNO_SPAM@directo.cl> <8gc3ks$4hm$1@news.firstcom.cl> X-Accept-Language: en Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: usenet@chilesat.net X-Trace: chiloe.chilepac.com 959066659 2884 200.31.58.94 (23 May 2000 07:24:19 GMT) Organization: embedded^cl - http://www.embedded.cl Mime-Version: 1.0 NNTP-Posting-Date: 23 May 2000 07:24:19 GMT Newsgroups: chile.comp.misc,chile.comp.mac,chile.comp.unix,chile.comp.pc