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 "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
|
||||||
|
|
||||||
|
26
module.rb
26
module.rb
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user