Added docs
Signed-off-by: Marcin Woźniak <y0rune@aol.com>
This commit is contained in:
parent
8ef55b7542
commit
4e5449bcda
@ -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
|
||||
|
||||
|
26
module.rb
26
module.rb
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user