Logaritmi discreti

Il logaritmo discreto è una versione del logaritmo classico che si calcola quando si lavora con numeri interi in un campo finito o un gruppo finito.

Più formalmente, se \( G \) è un gruppo ciclico di ordine \( n \) e \( g \) è un generatore di \( G \), allora per ogni elemento \( a \) in \( G \), il logaritmo discreto \( x \) è un numero intero tale che:

\[ g^x \equiv a \mod n \]

dove \( x \) si trova nell'intervallo da \( 0 \) a \( n-1 \).

Ogni elemento di \( G \) può essere scritto come \( g^k \) per qualche intero \( k \).

Il logaritmo discreto di un elemento \( a \) in base \( g \) denotato come logg(a) è il valore \( x \) tale che \( g^x = a \) è all'interno del gruppo.

A cosa serve? E' particolarmente utilizzato nella teoria dei numeri e crittografia. Il calcolo dei logaritmi discreti è noto per essere computazionalmente difficile, il che lo rende una funzione "a senso unico" adatta per la crittografia, perché mentre è computazionalmente facile calcolare gx nel modulo n, il processo inverso di trovare x in un'equazione del tipo gx=y mod n ovvero il logaritmo discreto x=logg(y) mod n è molto difficile. Questa asimmetria è alla base di molti schemi crittografici.

    Un esempio pratico

    Considero un gruppo ciclico su un campo finito di 11 elementi, dove l'aritmetica è definita modulo 11.

    $$ G = (1,2,3,4,5,6,7,8,9,10,11) $$

    Il che significa che 10+1 (mod 11) è uguale a 11 ma 11+1 (mod 11) è uguale a 1, perché il calcolo riparte dalla prima posizione.

    Anche in questo gruppo posso calcolare la potenza degli elementi:

    $$ 2^1 \mod 11 = 2 $$

    $$ 2^2 \mod 11 = 4 $$

    $$ 2^3 \mod 11 = 8 $$

    $$ 2^4 \mod 11 = 5 $$

    Nota. La potenza 24 = 16 nell'insieme dei numeri interi ma 16 non è compreso nel gruppo modulo 11. Quindi, per dirla in modo semplice 16-11=5.

    Diciamo che ora voglio cercare il logaritmo discreto di 9 in base 2 modulo 11, che è l'ora corrispondente \( x \) tale che

    $$ 2^x \equiv 9 \mod 11 $$

    Per risolvere questo, devo trovare x tale che \( 2^x \) dia 9 quando considerato modulo 11.

    Procedo per tentativi perché sto usando numeri molto piccoli e questo è fattibile:

    $$  2^1 \mod 11 = 2 $$

    $$ 2^2 \mod 11 = 4 $$

    $$  2^3 \mod 11 = 8 $$

    $$  2^4 \mod 11 = 5  $$

    $$  2^5 \mod 11 = 10 $$

    $$  2^6 \mod 11 = 9 $$

    Quindi, il logaritmo discreto di 9 in base 2 modulo 11 è 6.

    Verifica. In effetti 26=64 nei numeri reali. Nell'aritmetica modulo 11 il numero 64 equivale a 9. Per verificarlo basta costruire la tabella moltiplicativa del gruppo ciclico. La moltiplicazione 8x8 modulo 11 dà come risultato il numero 9. Quindi, il risultato è corretto.
    la tabella moltiplicativa modulo 11

    Questo esempio mostra come funziona il logaritmo discreto-

    Inoltre,  dimostra come, anche se è relativamente semplice verificare che \( 2^6 = 9 \mod 11 \), trovare il valore \( x \) può diventare un compito arduo, soprattutto con numeri molto più grandi, come quelli utilizzati nella crittografia.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Tool