Upgrade to Pro — share decks privately, control downloads, hide ads and more …

勉強会 #6

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for titech.crypto titech.crypto
May 27, 2018
360

勉強会 #6

デジタル署名について

Avatar for titech.crypto

titech.crypto

May 27, 2018
Tweet

Transcript

  1. Lamportॺ໊͸ϒϩοΫνΣʔϯ ʹ࢖ΘΕΔ͔ ɾLamportॺ໊ͷྔࢠ଱ੑ͸ັྗతɻ͔͠͠໰୊͸ॺ໊ͷσʔλαΠζɻ ɾECDSAॺ໊ʢBitcoin, EthereumͰݱࡏ࢖༻ʣͱൺֱͯ͠Lamportॺ໊ͷαΠ ζ͸େ͖͍ɻ ɾECDSAॺ໊ɿެ։伴ʢ33 bytesʣɺॺ໊ʢ73 bytesʣ ɾLamportॺ໊ɿެ։伴ʢ16

    KBʣɺॺ໊ʢ8 KBʣ Lamportॺ໊ͷެ։伴ͱॺ໊͸ɺECDSAॺ໊ΑΓ213ഒʢ106 bytes vs 24 KBʣ େ͖͍ɻެ։伴ͱॺ໊ͱ͸ϒϩοΫνΣʔϯͷτϥϯβΫγϣϯʹऔΓࠐ·ΕΔ ͷͰɺϒϩοΫαΠζͷංେԽΛੜͤ͡͞Δɻ →εέʔϥϏϦςΟ໰୊ʹٯߦ͢ΔྲྀΕɻ 15
  2. RSAॺ໊ੜ੒ΞϧΰϦζϜ ॺ໊ = ϝοηʔδd mod N ެ։伴 e,Nɺൿີ伴 d, ϝοηʔδ

    m, ॺ໊ σ ͱ͢Δͱ ɾॺ໊͸ϝοηʔδmΛd৐ͯ͠mod NΛͱͬͨ΋ͷɻγϯϓϧʂ ɾϙΠϯτ͸ɺൿີ伴dΛ஌Βͳ͍ਓ͸σΛੜ੒Ͱ͖ͳ͍ɻ mɿॺ໊Λߦ͍͍ͨϝοηʔδɺdɿൿີ伴 e, Nɿެ։伴ɹσɿిࢠॺ໊σʔλ ※ N͸ೋͭͷେ͖ͳૉ਺ p,q Λ͔͚ͨ΋ͷ N = p×q 17
  3. RSAॺ໊ݕূΞϧΰϦζϜ ॺ໊͔Βಘͨϝοηʔδ = ॺ໊e mod N ެ։伴 e,Nɺൿີ伴 d, ϝοηʔδ

    m, ॺ໊ σ ͱ͢Δͱ ɾݕূऀ͸ɺެ։伴 e, N ͱॺ໊ σͷ৘ใ͔ΒɺϝοηʔδmΛ෮ݩͰ͖Δ ɾॺ໊ͱҰॹʹఴ෇͞Ε͍ͯΔϝοηʔδmͱൺֱ͢Δ͜ͱͰɺॺ໊ͷਖ਼౰ੑΛ֬ೝ 18
  4. Schnorrॺ໊ɿه߸ͷఆٛ ه߸ͷఆٛ H(x), H(x//y) …… ϋογϡؔ਺ pɿૉ਺ɻҎ߱ɺ͢΂ͯͷࣜ͸࠷ޙʹ p Ͱׂͬͨ༨ΓΛܭࢉ͍ͯ͠Δͱղऍ͢Δ qɿq|p-1Λຬͨ͢ɺૉ਺qΛબ୒͍ͯ͠Δ

    gɿ੔਺ɻgq = 1 mod p Λຬͨ͢ xɿൿີ伴 yɿެ։伴ʢy = gx mod pʣ mɿॺ໊Λߦ͍͍ͨϝοηʔδ tɿॺ໊ʹඞཁͳཚ਺ s, hɿిࢠॺ໊σʔλ σʢs,hʣ 20
  5. ม਺ϖΞ(s,h)ͷબͼํ ࣮͸ɺൿີ伴xΛ஌͍ͬͯΔͱɺ͜ͷม਺ϖΞʢs,hʣΛٻΊΔ͜ͱ͕Ͱ͖Δɻ ϙΠϯτ͸ެ։伴y͕ɺൿີ伴 xͱ੔਺gΛ༻͍ͯɹy = gx ͱදͤΔ͜ͱɻ ᶃॺ໊ʹඞཁͳཚ਺t (= s

    - xh) ΛઌʹܾΊΔɻ ᶄ h = H(m//gt) ΑΓɺh͕ٻ·Δɻ ᶅ ॺ໊ऀʹͱͬͯط஌ͷt, h,x ΑΓ s ͕ٻ·Δɻ ᶆॺ໊σʔλσ = (s,h)ͷม਺ϖΞΛಘΔɻ ม਺ϖΞ(s,h)ΛܭࢉͰ͖Δͷ͸ɺൿີ伴xΛ͍࣋ͬͯΔਓ͚ͩʂ ॺ໊ͱͯ͠੒Γཱͭɻ 22
  6. ॺ໊ੜ੒ΞϧΰϦζϜ 1. ద౰ͳཚ਺ t Λੜ੒͢Δ 2. h = H(m//r) =

    H(m//gt) Λܭࢉ͢Δ(r = gt mod p) 3. 2ͰٻΊͨhΛར༻ͯ͠ɺs = t + xh mod pΛܭࢉ͢Δ 4. ٻΊͨ(h,s)Λσδλϧॺ໊ͷग़ྗͱ͢Δ pΛ͋Δڊେͳૉ਺ͱ͠ɺgΛpͱޓ͍ʹૉͳ੔਺ͱ͢Δɻ m͸ॺ໊ϝοηʔδͱ͠ɺxΛൿີ伴ɺyΛެ։伴ͱ͢Δɻ H( )͸ϋογϡؔ਺Ͱ͋Γɺͦͷग़ྗ͕hͰ͋Δɻ 25
  7. ॺ໊ݕূΞϧΰϦζϜ 1. r’ = gsy-h mod p Λܭࢉ͢Δ 2. h’

    = H(m//r’) Λܭࢉ ͢Δ 3. h’ = h Λ֬ೝɻ੒Γཱͭ৔߹͸1Λग़ྗ͠ɺ੒Γཱͨͳ͍৔߹͸0Λग़ྗ ༩͑ΒΕͨॺ໊Λݕূ͢Δʹ͸ Λܭࢉ͠ɺh’ͱh͕Ұக͢Δ͔Λ֬ೝ͢Ε͹Α͍ɻͳ͓ɺg, ॺ໊σʔλ(s,h), ެ։伴y ͸ݕূऀʹͱͬͯط஌Ͱ͋Δɻ 26