FIRMA DIGITALE
SCHEMI, METODI E CIFRARI


Algoritmo               Tipo                             Determinismo                 Anno
RSA                     Recupero                         Deterministico               1978
Rabin                   Recupero                                                      1979
ElGamal                 Appendice                        Probabilistico               1984
DSA                     Appendice                        Probabilistico               1991
Schnorr                 Appendice                                                     1991
Nyberg-Rueppel          Recupero                                                      1993




                   RSA
                   Lโ€™algoritmo di RSA รจ reversibile, ovvero funziona anche invertendo le chiavi. Perciรฒ RSA a
                   chiavi invertite รจ un algoritmo di firma con recupero.

                   Usare RSA per una firma di un documento รจ perรฒ inefficiente a causa della idispensabile
                   suddivisione in blocchi. Di dimensione inferiore a n. Qundi รจ possibile firmale solo lโ€™hash del
                   documento.

                   A L GO R I T MO S
                       1.   ๐‘ = (๐ป ๐‘š ) ๐‘ƒ๐‘ˆ ๐‘š๐‘œ๐‘‘ ๐‘›
                       2.   Trasmette ๐‘š โˆฅ ๐‘

                   A L GO R I T MO V
                       1.   Estrae ๐‘šโ€ฒ
                       2.   Calcola ๐ป(๐‘šโ€ฒ )
                       3.   Accetta ๐‘šโ€ฒ se e solo se ๐ป ๐‘šโ€ฒ = ๐‘ ๐‘’ ๐‘š๐‘œ๐‘‘ ๐‘› = ๐ป(๐‘š)

                   FIRMA CIECA
                   Dato un messaggio ๐‘š = ๐‘š1 ร— ๐‘š2 si ha
                                       ๐‘ = ๐‘š ๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘› =     ๐‘š1 ๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘› ร—     ๐‘š2 ๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘›    ๐‘š๐‘œ๐‘‘ ๐‘›

                   Quindi possiamo firmare indipendentemente parti di messagio.

                   Sia, ora X un ente certificatore che deve firmare il messaggio ๐‘š senza conoscerne il
                   contenuto. Lโ€™utente U puรฒ inviare
                                                        ๐‘1 = ๐‘š ร— ๐‘Ÿ ๐‘’๐‘‹ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹

                   Ora X puรฒ firmare applicanto la prorpia chiave privata e inviare
                                        ๐‘2 = ๐‘š ๐‘‘๐‘‹ ร— ๐‘Ÿ ๐‘‘๐‘‹ ๐‘’๐‘‹ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ = ๐‘š ๐‘‘๐‘‹ ร— ๐‘Ÿ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹

                   Quindi U avrร 
                                          ๐‘3 =   ๐‘š ๐‘‘๐‘‹ ร— ๐‘Ÿ ร— ๐‘Ÿ โˆ’1   ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ = ๐‘š ๐‘‘๐‘‹ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹

                   Messaggio firmato senza che lโ€™utente certificatore abbia letto il contenuto.
E L G AMAL
    ๏‚ท    Lโ€™input รจ lโ€™impornta โ„Ž = ๐ป(๐‘š)
    ๏‚ท    Lโ€™output sono due etichette ๐‘…, ๐‘†
    ๏‚ท    Si basa sul problema P1

A L GO R I MO G
    1.   Scelta di un numero primo ๐‘ di un suo generatore ๐‘” un numero a caso 1 โ‰ค ๐‘ข โ‰ค
          ๐‘โˆ’2
    2.   Chiave pubblica : ๐‘, ๐‘”, ๐‘” ๐‘ข ๐‘š๐‘œ๐‘‘ ๐‘
    3.   Chiave privata: ๐‘ข

A L GO R I T MO S
Per ogni messaggio da inviare si ha

    1.   Scegliere ๐‘˜ tale che 2 < ๐‘˜ < ๐‘ โˆ’ 2 e ๐‘€๐ถ๐ท ๐‘˜, ๐‘ โˆ’ 1 = 1
    2.   Generare lโ€™etichetta ๐‘… = ๐‘” ๐‘˜ ๐‘š๐‘œ๐‘‘ ๐‘
         Questo รจ vero perchรจ
                                    ๐‘”โ„Ž ๐‘š๐‘œ๐‘‘ ๐‘ = ๐‘ฆ ๐‘… ๐‘… ๐‘† ๐‘š๐‘œ๐‘‘ ๐‘
                                    ๐‘”โ„Ž ๐‘š๐‘œ๐‘‘ ๐‘ = ๐‘” ๐‘Ž๐‘… ๐‘” ๐‘˜๐‘† ๐‘š๐‘œ๐‘‘ ๐‘
                                    ๐‘”โ„Ž โˆ’๐‘Ž๐‘… โˆ’๐‘˜๐‘† โ‰ก 1(๐‘š๐‘œ๐‘‘ ๐‘)
                                   โ„Ž โˆ’ ๐‘Ž๐‘… โˆ’ ๐‘˜๐‘† โ‰ก ๐‘ โˆ’ 1(๐‘š๐‘œ๐‘‘ ๐‘)
                                   โ„Ž โˆ’ ๐‘Ž๐‘… โˆ’ ๐‘˜๐‘† โ‰ก 0(๐‘š๐‘œ๐‘‘ ๐‘ โˆ’ 1)
                                    ๐‘† = ๐‘˜ โˆ’1 โ„Ž โˆ’ ๐‘Ž๐‘… ๐‘š๐‘œ๐‘‘ (๐‘ โˆ’ 1)
         S รจ espressione congruenziale di firma.

A L GO R I T MO V
    1.   Controllare che sia 1 โ‰ค ๐‘… โ‰ค ๐‘ โˆ’ 1 e ๐‘† โ‰  ๐‘ โˆ’ 1
    2.   Calcolare
                                         ๐‘ฃ1 = ๐‘ฆ ๐‘… ๐‘… ๐‘† ๐‘š๐‘œ๐‘‘ ๐‘
                                         ๐‘ฃ2 = ๐‘”โ„Ž ๐‘š๐‘œ๐‘‘ ๐‘
    3.   Se ๐‘ฃ1 = ๐‘ฃ2 il messaggio รจ integro.
DSS
    ๏‚ท    Basato su ElGamal
    ๏‚ท    Si basa sul problema P1
    ๏‚ท    La dimensione di p รจ definita dallo standard: 2512 < ๐‘ < 21024
    ๏‚ท    I calcoli di R e S sono fatti ๐‘š๐‘œ๐‘‘ ๐‘ž ove ๐‘ž รจ il piรน grande fattore primo di ๐‘ โˆ’ 1 tale
         che 2159 < ๐‘ž < 2160
    ๏‚ท    ๐ป(๐‘š) deve essere di 160 bit e calcolata con SHA-1

A L GO R I T MO G
Come ElGamal

A L GO R I T MO S
Per ogni messaggio da firmarelโ€™utente deve scegliere un numero a caso 1 โ‰ค ๐‘˜ โ‰ค ๐‘ž โˆ’ 1 e
calcola due etichette di 160 bit ciascuma:
                               ๐‘… = ๐‘” ๐‘˜ ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘š๐‘œ๐‘‘ ๐‘ž
                               ๐‘† = ๐‘˜ โˆ’1 ๐ป ๐‘š + ๐‘Ž ร— ๐‘… ๐‘š๐‘œ๐‘‘ ๐‘ž

A L GO R I T MO V
    1.   Verificare che sia 0 < ๐‘… < ๐‘ž e 0 < ๐‘† < ๐‘ž
    2.   Calcolare:
                                     ๐‘ค = ๐‘† โˆ’1 ๐‘š๐‘œ๐‘‘ ๐‘ž
                                    ๐‘ข1 = ๐ป ๐‘š ร— ๐‘ค ๐‘š๐‘œ๐‘‘ ๐‘ž
                                    ๐‘ข2 = ๐‘… ร— ๐‘ค ๐‘š๐‘œ๐‘‘ ๐‘ž
                                    ๐‘ฃ = ๐‘” ๐‘ข1 ร— ๐‘ฆ ๐‘ข2 ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘š๐‘œ๐‘‘ ๐‘ž
    3.   Se ๐‘ฃ = ๐‘… la firma รจ valida.

Firma digitale

  • 1.
    FIRMA DIGITALE SCHEMI, METODIE CIFRARI Algoritmo Tipo Determinismo Anno RSA Recupero Deterministico 1978 Rabin Recupero 1979 ElGamal Appendice Probabilistico 1984 DSA Appendice Probabilistico 1991 Schnorr Appendice 1991 Nyberg-Rueppel Recupero 1993 RSA Lโ€™algoritmo di RSA รจ reversibile, ovvero funziona anche invertendo le chiavi. Perciรฒ RSA a chiavi invertite รจ un algoritmo di firma con recupero. Usare RSA per una firma di un documento รจ perรฒ inefficiente a causa della idispensabile suddivisione in blocchi. Di dimensione inferiore a n. Qundi รจ possibile firmale solo lโ€™hash del documento. A L GO R I T MO S 1. ๐‘ = (๐ป ๐‘š ) ๐‘ƒ๐‘ˆ ๐‘š๐‘œ๐‘‘ ๐‘› 2. Trasmette ๐‘š โˆฅ ๐‘ A L GO R I T MO V 1. Estrae ๐‘šโ€ฒ 2. Calcola ๐ป(๐‘šโ€ฒ ) 3. Accetta ๐‘šโ€ฒ se e solo se ๐ป ๐‘šโ€ฒ = ๐‘ ๐‘’ ๐‘š๐‘œ๐‘‘ ๐‘› = ๐ป(๐‘š) FIRMA CIECA Dato un messaggio ๐‘š = ๐‘š1 ร— ๐‘š2 si ha ๐‘ = ๐‘š ๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘› = ๐‘š1 ๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘› ร— ๐‘š2 ๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘› ๐‘š๐‘œ๐‘‘ ๐‘› Quindi possiamo firmare indipendentemente parti di messagio. Sia, ora X un ente certificatore che deve firmare il messaggio ๐‘š senza conoscerne il contenuto. Lโ€™utente U puรฒ inviare ๐‘1 = ๐‘š ร— ๐‘Ÿ ๐‘’๐‘‹ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ Ora X puรฒ firmare applicanto la prorpia chiave privata e inviare ๐‘2 = ๐‘š ๐‘‘๐‘‹ ร— ๐‘Ÿ ๐‘‘๐‘‹ ๐‘’๐‘‹ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ = ๐‘š ๐‘‘๐‘‹ ร— ๐‘Ÿ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ Quindi U avrร  ๐‘3 = ๐‘š ๐‘‘๐‘‹ ร— ๐‘Ÿ ร— ๐‘Ÿ โˆ’1 ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ = ๐‘š ๐‘‘๐‘‹ ๐‘š๐‘œ๐‘‘ ๐‘›๐‘‹ Messaggio firmato senza che lโ€™utente certificatore abbia letto il contenuto.
  • 2.
    E L GAMAL ๏‚ท Lโ€™input รจ lโ€™impornta โ„Ž = ๐ป(๐‘š) ๏‚ท Lโ€™output sono due etichette ๐‘…, ๐‘† ๏‚ท Si basa sul problema P1 A L GO R I MO G 1. Scelta di un numero primo ๐‘ di un suo generatore ๐‘” un numero a caso 1 โ‰ค ๐‘ข โ‰ค ๐‘โˆ’2 2. Chiave pubblica : ๐‘, ๐‘”, ๐‘” ๐‘ข ๐‘š๐‘œ๐‘‘ ๐‘ 3. Chiave privata: ๐‘ข A L GO R I T MO S Per ogni messaggio da inviare si ha 1. Scegliere ๐‘˜ tale che 2 < ๐‘˜ < ๐‘ โˆ’ 2 e ๐‘€๐ถ๐ท ๐‘˜, ๐‘ โˆ’ 1 = 1 2. Generare lโ€™etichetta ๐‘… = ๐‘” ๐‘˜ ๐‘š๐‘œ๐‘‘ ๐‘ Questo รจ vero perchรจ ๐‘”โ„Ž ๐‘š๐‘œ๐‘‘ ๐‘ = ๐‘ฆ ๐‘… ๐‘… ๐‘† ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘”โ„Ž ๐‘š๐‘œ๐‘‘ ๐‘ = ๐‘” ๐‘Ž๐‘… ๐‘” ๐‘˜๐‘† ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘”โ„Ž โˆ’๐‘Ž๐‘… โˆ’๐‘˜๐‘† โ‰ก 1(๐‘š๐‘œ๐‘‘ ๐‘) โ„Ž โˆ’ ๐‘Ž๐‘… โˆ’ ๐‘˜๐‘† โ‰ก ๐‘ โˆ’ 1(๐‘š๐‘œ๐‘‘ ๐‘) โ„Ž โˆ’ ๐‘Ž๐‘… โˆ’ ๐‘˜๐‘† โ‰ก 0(๐‘š๐‘œ๐‘‘ ๐‘ โˆ’ 1) ๐‘† = ๐‘˜ โˆ’1 โ„Ž โˆ’ ๐‘Ž๐‘… ๐‘š๐‘œ๐‘‘ (๐‘ โˆ’ 1) S รจ espressione congruenziale di firma. A L GO R I T MO V 1. Controllare che sia 1 โ‰ค ๐‘… โ‰ค ๐‘ โˆ’ 1 e ๐‘† โ‰  ๐‘ โˆ’ 1 2. Calcolare ๐‘ฃ1 = ๐‘ฆ ๐‘… ๐‘… ๐‘† ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘ฃ2 = ๐‘”โ„Ž ๐‘š๐‘œ๐‘‘ ๐‘ 3. Se ๐‘ฃ1 = ๐‘ฃ2 il messaggio รจ integro.
  • 3.
    DSS ๏‚ท Basato su ElGamal ๏‚ท Si basa sul problema P1 ๏‚ท La dimensione di p รจ definita dallo standard: 2512 < ๐‘ < 21024 ๏‚ท I calcoli di R e S sono fatti ๐‘š๐‘œ๐‘‘ ๐‘ž ove ๐‘ž รจ il piรน grande fattore primo di ๐‘ โˆ’ 1 tale che 2159 < ๐‘ž < 2160 ๏‚ท ๐ป(๐‘š) deve essere di 160 bit e calcolata con SHA-1 A L GO R I T MO G Come ElGamal A L GO R I T MO S Per ogni messaggio da firmarelโ€™utente deve scegliere un numero a caso 1 โ‰ค ๐‘˜ โ‰ค ๐‘ž โˆ’ 1 e calcola due etichette di 160 bit ciascuma: ๐‘… = ๐‘” ๐‘˜ ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘š๐‘œ๐‘‘ ๐‘ž ๐‘† = ๐‘˜ โˆ’1 ๐ป ๐‘š + ๐‘Ž ร— ๐‘… ๐‘š๐‘œ๐‘‘ ๐‘ž A L GO R I T MO V 1. Verificare che sia 0 < ๐‘… < ๐‘ž e 0 < ๐‘† < ๐‘ž 2. Calcolare: ๐‘ค = ๐‘† โˆ’1 ๐‘š๐‘œ๐‘‘ ๐‘ž ๐‘ข1 = ๐ป ๐‘š ร— ๐‘ค ๐‘š๐‘œ๐‘‘ ๐‘ž ๐‘ข2 = ๐‘… ร— ๐‘ค ๐‘š๐‘œ๐‘‘ ๐‘ž ๐‘ฃ = ๐‘” ๐‘ข1 ร— ๐‘ฆ ๐‘ข2 ๐‘š๐‘œ๐‘‘ ๐‘ ๐‘š๐‘œ๐‘‘ ๐‘ž 3. Se ๐‘ฃ = ๐‘… la firma รจ valida.