Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [?] Algoritmo crittografico e Big Integer

    Ciao a tutti, volevo fare una domanda: premesso che all'università mi hanno fatto studiare per bene solo il C, questo semestre ho frequentato il corso di crittografia e il prof per l'esame vuole che implementiamo uno degli algoritmi per test di primalità e/o fattorizzazione che lui ha spiegato a lezione, usando quello che ci pare basta che funzioni.
    Ora, avendo molta dimestichezza con il C, ho iniziato a scrivere qualcosa, ma mi sono subito reso conto che ho bisogno di rappresentare degli interi di tipo 100 cifre. Esiste in C qualche libreria comoda già pronta da usare per "trasformare" il mio programma che funziona al più con i long long in un programma che lavora con un numero arbitrario di cifre che non sia troppo complicato (bisogna fare solo una dimostrazione, non un programma "serissimo efficientissimo migliore del mondo", solo per fargli vedere che abbiamo capito come si fa, quindi basta qualcosa di semplice)??

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Librerie standard per i grandi numeri in C non esistono, però c'è la GMP

    http://en.wikipedia.org/wiki/GNU_Mul...cision_Library
    http://gmplib.org/

    anche se io non l'ho mai usata, ho letto solo alcuni sorgenti. Ho usato un po' la NTL ma in C++

    http://www.shoup.net/ntl/

    e non mi pare esista un binding per il C. Comunque se hai nozioni proprio basilari di C++ potresti scrivere il programma proprio con questo linguaggio, perché penso che quello che devi realizzare sia abbastanza "algorithm-oriented" quindi non dovrebbero servirti nozioni di OOP. Puoi ricorrere alla NTL in C++ scrivendo il tuo programma in C standard, anche se per evitare miscellanee poco carine forse ti conviene ricorrere alla GMP di cui sopra.

    Comunque ti riporto un esempio elementare di programma C++ con NTL

    http://sprunge.us/XjBV?cpp

    che realizzai un po' di tempo fa per il calcolo del fattoriale... uno dei risultati:

    codice:
    $ ./fattoriale 1000
    402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    every day above ground is a good one

  3. #3
    Ti ringrazio, ho guardato la GMP, ed è perfetta c'è tutto quello che mi serve.

    Grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.