Added docs

Signed-off-by: Marcin Woźniak <y0rune@aol.com>
This commit is contained in:
Marcin Woźniak 2021-01-02 17:34:59 +01:00
parent 8ef55b7542
commit 4e5449bcda
Signed by: y0rune
GPG Key ID: F204C385F57EB348
2 changed files with 19 additions and 20 deletions

View File

@ -24,18 +24,13 @@ def main
puts "Klucz priv: #{privKey.inspect}" puts "Klucz priv: #{privKey.inspect}"
puts "" puts ""
pm = szyfrowanieElGamala(m,n,u,a,b,p,px,py,qx,qy)
# BOB # BOB
y = SecureRandom.random_number(0..liczenieOrd(p)) c1, c2 = szyfrowanieElGamala(a,b,p,m,n,u,px,py,qx,qy)
c1 = wielokrotnoscPunktu(a,b,p,y,px,py)
yq = wielokrotnoscPunktu(a,b,p,y,qx,qy)
c2 = sumaPunktow(a,b,p,pm[0],pm[1],yq[0],yq[1])
puts "Ciphers: #{c1} + #{c2}"
# ALICE # ALICE
pmd = deSzyfrowanieElGamala(a,b,p,c1[0],c1[1],c2[0],c2[1],x) pmd = deKododwanieElGamala(a,b,p,c1[0],c1[1],c2[0],c2[1],x)
d = algorytmDeKodowania(a,b,p,pmd[0],pmd[1],n,u) d = algorytmDeSzyfrowania(pmd[0],pmd[1],u)
puts "Deszyfowany punkt #{pmd.inspect}"
puts "Dekodowana wiadomość #{d.inspect}" puts "Dekodowana wiadomość #{d.inspect}"
end end

View File

@ -516,37 +516,41 @@ def algorytmKodowania(a,b,p,m,n,u)
else else
puts "Nieprawidołowe dane" puts "Nieprawidołowe dane"
end end
puts "Punkt na krzywej to #{[x,y].inspect}"
return [x,y] return [x,y]
end end
################################################################################# #################################################################################
# Funkcja algorytmDeKodowania(a,b,p,x,y,n,u) # Funkcja algorytmDeSzyfrowania(x,y,u)
# #
# Zwraca odszyfrowaną wiadomość. # Zwraca odszyfrowaną wiadomość.
################################################################################# #################################################################################
def algorytmDeKodowania(a,b,p,x,y,n,u) def algorytmDeSzyfrowania(x,y,u)
m = (x - 1) / u m = (x - 1) / u
return m return m
end end
################################################################################# #################################################################################
# Funkcja szyfrowanieElGamala(m,n,u,a,b,p,px,py,qx,qy) # Funkcja szyfrowanieElGamala(a,b,p,m,n,u,px,py,qx,qy)
# #
# Koduje wiadomość na punkt na krzywej # Zwraca szyfrogramy.
# eliptycznej.
################################################################################# #################################################################################
def szyfrowanieElGamala(m,n,u,a,b,p,px,py,qx,qy) def szyfrowanieElGamala(a,b,p,m,n,u,px,py,qx,qy)
c = algorytmKodowania(a,b,p,m,n,u) pm = algorytmKodowania(a,b,p,m,n,u)
puts "Wiadomość na prostej jako punkt #{c.inspect}" y = SecureRandom.random_number(0..liczenieOrd(p))
return c c1 = wielokrotnoscPunktu(a,b,p,y,px,py)
yq = wielokrotnoscPunktu(a,b,p,y,qx,qy)
c2 = sumaPunktow(a,b,p,pm[0],pm[1],yq[0],yq[1])
puts "Ciphers: C1=#{c1}, C2=#{c2}"
return c1,c2
end end
################################################################################# #################################################################################
# Funkcja deSzyfrowanieElGamala(a,b,p,c1x,c1y,c2x,c2y,x) # Funkcja deKodowanieElGamala(a,b,p,c1x,c1y,c2x,c2y,x)
# #
# Zwraca odszyfrowany punkt początkowy na którym była wiadomość. # Zwraca odszyfrowany punkt początkowy na którym była wiadomość.
################################################################################# #################################################################################
def deSzyfrowanieElGamala(a,b,p,c1x,c1y,c2x,c2y,x) def deKododwanieElGamala(a,b,p,c1x,c1y,c2x,c2y,x)
xc1 = wielokrotnoscPunktu(a,b,p,x,c1x,c1y) xc1 = wielokrotnoscPunktu(a,b,p,x,c1x,c1y)
pmd = sumaPunktow(a,b,p,c2x,c2y,xc1[0],-xc1[1]) pmd = sumaPunktow(a,b,p,c2x,c2y,xc1[0],-xc1[1])
return pmd return pmd