From 24ff03a1d7ac1fe7566acc85f7a1b344cf54ff1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Wo=C5=BAniak?= Date: Wed, 30 Dec 2020 21:03:50 +0100 Subject: [PATCH] Zmiana liczenia ord w module3 jak i w szyfrowaniu 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 | 2 +- module.rb | 46 +++++-------------------------------- 2 files changed, 7 insertions(+), 41 deletions(-) diff --git a/8-lab/szyfrowanie-krzywe.rb b/8-lab/szyfrowanie-krzywe.rb index 3dcd160..6758f78 100755 --- a/8-lab/szyfrowanie-krzywe.rb +++ b/8-lab/szyfrowanie-krzywe.rb @@ -23,7 +23,7 @@ def main pm = szyfrowanieElGamala(m,n,u,a,b,p,px,py,qx,qy) # BOB - y = SecureRandom.random_number(0..liczenieOrd(a,b,p)) + 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]) diff --git a/module.rb b/module.rb index 0fb24e5..bfc3e10 100755 --- a/module.rb +++ b/module.rb @@ -440,47 +440,13 @@ def wielokrotnoscPunktu(a,b,p,n,x,y) end #################################### -# Funkcja liczenieOrd(a,b,p) +# Funkcja liczenieOrd(p) # -# Oblicza wartość ord dla podanych -# a,b,p. +# Oblicza wartość ord dla podanych p. #################################### -def liczenieOrd(a,b,p) - threads = [] - punktyNaKrzywej = Array.new - unikalnePunktyNaKrzywej = Array.new - - threads << Thread.new { - counter = 10 - while counter > 0 - punktyNaKrzywej << punktNaKrzywej(a,b,p)[0] - counter = counter -1 - end - } - - threads << Thread.new { - counter = 10 - while counter > 0 - punktyNaKrzywej << punktNaKrzywej(a,b,p)[0] - counter = counter -1 - end - } - - threads << Thread.new { - counter = 10 - while counter > 0 - punktyNaKrzywej << punktNaKrzywej(a,b,p)[0] - counter = counter -1 - end - } - - ThreadsWait.all_waits(*threads) - - punktyNaKrzywej.sort.each { |e| - unikalnePunktyNaKrzywej.push(e) if e != unikalnePunktyNaKrzywej[-1] - } - - return unikalnePunktyNaKrzywej.count +def liczenieOrd(p) + ord = p + 1 - 2 * squareRootFp(p,p).to_i + return ord end #################################### @@ -500,7 +466,7 @@ def generowanieKluczyElGamalKrzywaEliptyczna(k) punktyNaKrzywej = Array.new punktP = punktNaKrzywej(a,b,p) - ord = liczenieOrd(a,b,p) + ord = liczenieOrd(p) while true x = SecureRandom.random_number(1..ord)