From 4e5449bcda05dff7badc2e5781be0c323f743bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wo=C5=BAniak?= Date: Sat, 2 Jan 2021 17:34:59 +0100 Subject: [PATCH] Added docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcin Woźniak --- 8-lab/szyfrowanie-krzywe.rb | 13 ++++--------- module.rb | 26 +++++++++++++++----------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/8-lab/szyfrowanie-krzywe.rb b/8-lab/szyfrowanie-krzywe.rb index ffed6c7..a2fa795 100755 --- a/8-lab/szyfrowanie-krzywe.rb +++ b/8-lab/szyfrowanie-krzywe.rb @@ -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 diff --git a/module.rb b/module.rb index b284008..bad8dd3 100755 --- a/module.rb +++ b/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