Potrzebuje uzyc szyfru RSA w mojej aplikacji, jednak nie moge znalezc nigdzie jakiegos wspanialego unitu, ktory pozwolil by mi operowac na dosc duzych liczbach. Co prawda stwoezylem pewien 'system' pozwalajacy liczyc na naprawde duzych liczbach, polegajacy na dzialaniach 'pisemnych', jednak jest on daleko za wolny :( I tu mam pytanko: czy ktos z Was ma moze jakis unit/biblioteke umozliwiajaca obliczenia na duzych liczbach (a najlepiej implementacje RSA w delphi/Dll :))?

- Rejestracja:ponad 22 lata
- Ostatnio:22 minuty
0
dwie liczby są względnie pierwsze, m.in. jeśli są pierwsze. do sprawdzania czy liczba jest pierwsza służą dwa algorytmy probabilistyczne, jeden sprawdza z p-wem 50%, drugi z 75%, poczytaj sobie o nich w jakiejś książce.
[dopisane]
a zresztą - tu masz implementację sprawdzania, czy liczba jest pierwsza z prawdopodobieństwem 50%
function check(const n : verylongint) : boolean;
var
K,v,X,u : verylongint;
j : integer;
begin
for j := bits-1 downto 1 do if bitset(n,j) then break;
repeat
vrand(j,K); {K < N}
until vcomp(n,k) = 1; {K losowe takie, ľe K < n}
vshr(n,1,v); {v = n/2}
vmodexp(K,v,N,X); {x = K^v mod n}
longtovlong(1,v); {v=1}
vsub(n,v,u); {u = n-1}
check := (vcomp(x,v) = 0) or (vcomp(x,u) = 0); {x=v lub x=u - pierwsza}
end;

- Rejestracja:około 21 lat
- Ostatnio:około 14 lat
0
Dodam jeszcze: http://4programmers.net/article.php?id=199#test_rabina
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.