SlideShare a Scribd company logo
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.

More Related Content

More from Marco Montanari

OpenStreetMap_LinuxDay2023.pptx
OpenStreetMap_LinuxDay2023.pptxOpenStreetMap_LinuxDay2023.pptx
OpenStreetMap_LinuxDay2023.pptx
Marco Montanari
 
Ohm wikimania 2021
Ohm wikimania 2021Ohm wikimania 2021
Ohm wikimania 2021
Marco Montanari
 
Ohm itwikicon tech - english
Ohm itwikicon tech - englishOhm itwikicon tech - english
Ohm itwikicon tech - english
Marco Montanari
 
ITWikiCon 2020 - OpenHistoryMap
ITWikiCon 2020 - OpenHistoryMapITWikiCon 2020 - OpenHistoryMap
ITWikiCon 2020 - OpenHistoryMap
Marco Montanari
 
ITWikiCon - Edutainment e Wikipedia
ITWikiCon - Edutainment e WikipediaITWikiCon - Edutainment e Wikipedia
ITWikiCon - Edutainment e Wikipedia
Marco Montanari
 
Storia dell'informatica
Storia dell'informaticaStoria dell'informatica
Storia dell'informatica
Marco Montanari
 
Bononia 1115
Bononia 1115Bononia 1115
Bononia 1115
Marco Montanari
 
ChContext
ChContextChContext
ChContext
Marco Montanari
 
MN-MAP Poster for Foss4G2018
MN-MAP Poster for Foss4G2018MN-MAP Poster for Foss4G2018
MN-MAP Poster for Foss4G2018
Marco Montanari
 
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGEGEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
Marco Montanari
 
OHM at FOSS4G17
OHM at FOSS4G17OHM at FOSS4G17
OHM at FOSS4G17
Marco Montanari
 
Mn map poster
Mn map posterMn map poster
Mn map poster
Marco Montanari
 
Saas rad with django, django rest framework
Saas rad with django, django rest frameworkSaas rad with django, django rest framework
Saas rad with django, django rest framework
Marco Montanari
 
poster mn-auth
poster mn-authposter mn-auth
poster mn-auth
Marco Montanari
 
poster holodocker
poster holodockerposter holodocker
poster holodocker
Marco Montanari
 
Big data, big tourism
Big data, big tourismBig data, big tourism
Big data, big tourism
Marco Montanari
 
Intro datajournalism - 14-15/06/2017
Intro datajournalism - 14-15/06/2017Intro datajournalism - 14-15/06/2017
Intro datajournalism - 14-15/06/2017
Marco Montanari
 
OHM at Kainua17
OHM at Kainua17OHM at Kainua17
OHM at Kainua17
Marco Montanari
 
OHM Workshop
OHM WorkshopOHM Workshop
OHM Workshop
Marco Montanari
 
Open Data e Trasparenza come punto di contatto fra cittadinanza e politica
Open Data e Trasparenza come punto di contatto fra cittadinanza e politicaOpen Data e Trasparenza come punto di contatto fra cittadinanza e politica
Open Data e Trasparenza come punto di contatto fra cittadinanza e politica
Marco Montanari
 

More from Marco Montanari (20)

OpenStreetMap_LinuxDay2023.pptx
OpenStreetMap_LinuxDay2023.pptxOpenStreetMap_LinuxDay2023.pptx
OpenStreetMap_LinuxDay2023.pptx
 
Ohm wikimania 2021
Ohm wikimania 2021Ohm wikimania 2021
Ohm wikimania 2021
 
Ohm itwikicon tech - english
Ohm itwikicon tech - englishOhm itwikicon tech - english
Ohm itwikicon tech - english
 
ITWikiCon 2020 - OpenHistoryMap
ITWikiCon 2020 - OpenHistoryMapITWikiCon 2020 - OpenHistoryMap
ITWikiCon 2020 - OpenHistoryMap
 
ITWikiCon - Edutainment e Wikipedia
ITWikiCon - Edutainment e WikipediaITWikiCon - Edutainment e Wikipedia
ITWikiCon - Edutainment e Wikipedia
 
Storia dell'informatica
Storia dell'informaticaStoria dell'informatica
Storia dell'informatica
 
Bononia 1115
Bononia 1115Bononia 1115
Bononia 1115
 
ChContext
ChContextChContext
ChContext
 
MN-MAP Poster for Foss4G2018
MN-MAP Poster for Foss4G2018MN-MAP Poster for Foss4G2018
MN-MAP Poster for Foss4G2018
 
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGEGEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
 
OHM at FOSS4G17
OHM at FOSS4G17OHM at FOSS4G17
OHM at FOSS4G17
 
Mn map poster
Mn map posterMn map poster
Mn map poster
 
Saas rad with django, django rest framework
Saas rad with django, django rest frameworkSaas rad with django, django rest framework
Saas rad with django, django rest framework
 
poster mn-auth
poster mn-authposter mn-auth
poster mn-auth
 
poster holodocker
poster holodockerposter holodocker
poster holodocker
 
Big data, big tourism
Big data, big tourismBig data, big tourism
Big data, big tourism
 
Intro datajournalism - 14-15/06/2017
Intro datajournalism - 14-15/06/2017Intro datajournalism - 14-15/06/2017
Intro datajournalism - 14-15/06/2017
 
OHM at Kainua17
OHM at Kainua17OHM at Kainua17
OHM at Kainua17
 
OHM Workshop
OHM WorkshopOHM Workshop
OHM Workshop
 
Open Data e Trasparenza come punto di contatto fra cittadinanza e politica
Open Data e Trasparenza come punto di contatto fra cittadinanza e politicaOpen Data e Trasparenza come punto di contatto fra cittadinanza e politica
Open Data e Trasparenza come punto di contatto fra cittadinanza e politica
 

Firma digitale

  • 1. 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.
  • 2. 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.
  • 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.