Creazione delle Chiavi


La chiave fornisce l'accesso alla fattorizzazione del Semiprimo e come tale va tenuta segreta. La loro creazione è molto semplice e veloce ma non è altrettanto semplice il contrario. La crittografia si basa proprio su questo, sulla difficoltà
nell'eseguire una operazione inversa di un determinato calcolo. Questo sistema complica ulteriormente questa operazione in quanto la base può assumere qualsiasi combinazione numerica, anche se non un numero primo, che pone una complessità  analoga alla fattorizzazione di grandi numeri Semiprimi.

In questo esempio vi mostrerò come viene creata la chiave, che verrà poi depositata su una pennetta USB, e il file contenente i Semiprimi.

Il file con i Semiprimi verrà depositato su una cartella del computer, che comunque potrete cambiare a vostro piacimento, che sarà c:\semiprimi. Questo file non pregiudica assolutamente la sicurezza della criptazione in quanto il Semiprimo non mostra la soluzione e non viene utilizzato per criptare i messaggi. L'unico scopo del Semiprimo è quello di nascondere i due fattori primi.     
Questo file può essere sostituito, o aggiornato con nuovi Semiprimi, in qualsiasi momento che non pregiudicherà le codifiche già fatte o quelle che verranno. Naturalmente non credo ci sia bisogno di dirlo che questa operazione deve essere fatta con i medesimi parametri.
   

Mobirise Website Builder

Come inserire i parametri

Questi dati sono stati presi da un altro programma che si chiama Test di Campo, che inserirò sotto, ma che non è essenziale per impostare questa interfaccia. Lo scopo del Test di Campo è quello di testare in quale campo il GC57 riesce a fattorizzare sempre tempo zero. Naturalmente questo mi eviterebbe di impostare questa interfaccio in modo errato ed evitare qualche errore inaspettato.

Partendo dalla figura in alto inseriamo la Base con la quale intendiamo creare la chiave
EC=esponente della chiave
EP=esponente del fattore primo p
EQ=esponente del fattore primo q
Bit= peso in bit del nostro Semiprimo
Num=quanti Semiprimi vogliamo inserire nel file. NB: se inseriamo più di 20 il programma ci avviserà che potrebbe impiegarci qualche ora, se parliamo di Semiprimi molto grandi.
Aggiungi e Campo, sono il campo in cui verranno pescati questi fattori primi in modo del tutto casuale utilizzando randint e nextprime
p=nextprime(base^ep+randint(1,aggiungi*2^campo))
q=nextprime(base^eq+randint(1,aggiungi*2^campo))

Premendo su Esegui il programma comincerà a cercare i due fattori primi per creare il Semiprimo, poi eseguirà un breve test di fattorizzazione a tempo zero, dopodiché memorizzarà il semiprimo nel file chiamato in questo caso 11007b

Terminata la ricerca di tutti i 10 Semiprimi, salverà un file nella USB che si chiamerà chiave_11007b con dentro tre parametri.
Base
EC
Bit

Mobirise Website Builder

Test Di Campo

Vi darò solo qualche accenno di questo programma ma è un programma sicuramente utile per creare chiavi e testare i vari campi. Lo troverete comunque su GitHub sotto il mio profilo e anche questo è un programma pubblico e scaricabile. 

Nella parte in alto a sinistra, come scritto, andiamo a inserire un numero casuale da tastiera e un numero di cui conosciamo gli attributi, tipo RSA, e se non è un numero primo possiamo trasformarlo. A destra inseriamo i bit con cui intendiamo creare il nostro Semiprimo, e sotto la distanza che devono tenere i due esponenti ricordandosi che: un numero molto grande può ottenere una distanza maggiore di un numero più piccolo e di conseguenza anche un campo maggiore.

Premiamo su Crea Codice e aspettiamo che finisca il suo lavoro. 
Il tempo di lavoro può essere piuttosto alto, anche un paio d'ore se i bit richiesti sono molto alti ma alla fine, nella parte sotto, ci dirà tutto quello che ci interessa sulla chiave ottenuta.

In questo programma ci sono alcune opzioni che riguardano un altro programma e cioè, CassaCriptata. Questo programma, anch'esso su GitHub, fa parte di un progetto per gestire una cassaforte per documenti. Le opzioni riportate su questo programma creano delle chiavi per questo progetto

AI Website Creator