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 ""
pm = szyfrowanieElGamala(m,n,u,a,b,p,px,py,qx,qy)
# BOB
y = SecureRandom.random_number(0..liczenieOrd(p))
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}"
c1, c2 = szyfrowanieElGamala(a,b,p,m,n,u,px,py,qx,qy)
# ALICE
pmd = deSzyfrowanieElGamala(a,b,p,c1[0],c1[1],c2[0],c2[1],x)
d = algorytmDeKodowania(a,b,p,pmd[0],pmd[1],n,u)
pmd = deKododwanieElGamala(a,b,p,c1[0],c1[1],c2[0],c2[1],x)
d = algorytmDeSzyfrowania(pmd[0],pmd[1],u)
puts "Deszyfowany punkt #{pmd.inspect}"
puts "Dekodowana wiadomość #{d.inspect}"
end

View File

@ -516,37 +516,41 @@ def algorytmKodowania(a,b,p,m,n,u)
else
puts "Nieprawidołowe dane"
end
puts "Punkt na krzywej to #{[x,y].inspect}"
return [x,y]
end
#################################################################################
# Funkcja algorytmDeKodowania(a,b,p,x,y,n,u)
# Funkcja algorytmDeSzyfrowania(x,y,u)
#
# Zwraca odszyfrowaną wiadomość.
#################################################################################
def algorytmDeKodowania(a,b,p,x,y,n,u)
def algorytmDeSzyfrowania(x,y,u)
m = (x - 1) / u
return m
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
# eliptycznej.
# Zwraca szyfrogramy.
#################################################################################
def szyfrowanieElGamala(m,n,u,a,b,p,px,py,qx,qy)
c = algorytmKodowania(a,b,p,m,n,u)
puts "Wiadomość na prostej jako punkt #{c.inspect}"
return c
def szyfrowanieElGamala(a,b,p,m,n,u,px,py,qx,qy)
pm = algorytmKodowania(a,b,p,m,n,u)
y = SecureRandom.random_number(0..liczenieOrd(p))
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
#################################################################################
# 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ść.
#################################################################################
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)
pmd = sumaPunktow(a,b,p,c2x,c2y,xc1[0],-xc1[1])
return pmd