Update
This commit is contained in:
parent
fe2078f566
commit
c0789a3bbf
@ -275,8 +275,8 @@ class Session
|
|||||||
$pq_bytes = $ResPQ['pq'];
|
$pq_bytes = $ResPQ['pq'];
|
||||||
$pq = bytes_to_long($pq_bytes);
|
$pq = bytes_to_long($pq_bytes);
|
||||||
var_dump($this->PrimeModule->pollard_brent(2118588165281151121));
|
var_dump($this->PrimeModule->pollard_brent(2118588165281151121));
|
||||||
|
//$this->PrimeModule->primefactors(1724114033281923457)
|
||||||
var_dump($this->PrimeModule->primefactors(2118588165281151121));die;
|
var_dump($this->PrimeModule->primefactors(378221), $this->PrimeModule->primefactors(15));die;
|
||||||
list($p, $q) = $this->PrimeModule->primefactors($pq);
|
list($p, $q) = $this->PrimeModule->primefactors($pq);
|
||||||
if ($p > $q) {
|
if ($p > $q) {
|
||||||
list($p, $q) = [$q, $p];
|
list($p, $q) = [$q, $p];
|
||||||
|
74
prime.php
74
prime.php
@ -174,5 +174,79 @@ class PrimeModule {
|
|||||||
{
|
{
|
||||||
return floor(abs(($a * $b)) / $this->gcd($a, $b));
|
return floor(abs(($a * $b)) / $this->gcd($a, $b));
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
function pqPrimeLeemon ($what) {
|
||||||
|
$minBits = 64;
|
||||||
|
$minLen = ceil($minBits / $bpe) + 1;
|
||||||
|
$it = 0
|
||||||
|
$a = new Array(minLen)
|
||||||
|
$b = new Array(minLen)
|
||||||
|
$c = new Array(minLen)
|
||||||
|
$g = new Array(minLen)
|
||||||
|
$z = new Array(minLen)
|
||||||
|
$x = new Array(minLen)
|
||||||
|
$y = new Array(minLen)
|
||||||
|
|
||||||
|
for ($i = 0; $i < 3; $i++) {
|
||||||
|
$q = (nextRandomInt(128) & 15) + 17
|
||||||
|
copyInt_(x, nextRandomInt(1000000000) + 1)
|
||||||
|
copy_(y, x)
|
||||||
|
lim = 1 << (i + 18)
|
||||||
|
|
||||||
|
for (j = 1; j < lim; j++) {
|
||||||
|
++it
|
||||||
|
copy_(a, x)
|
||||||
|
copy_(b, x)
|
||||||
|
copyInt_(c, q)
|
||||||
|
|
||||||
|
while (!isZero(b)) {
|
||||||
|
if (b[0] & 1) {
|
||||||
|
add_(c, a)
|
||||||
|
if (greater(c, what)) {
|
||||||
|
sub_(c, what)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add_(a, a)
|
||||||
|
if (greater(a, what)) {
|
||||||
|
sub_(a, what)
|
||||||
|
}
|
||||||
|
rightShift_(b, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_(x, c)
|
||||||
|
if (greater(x, y)) {
|
||||||
|
copy_(z, x)
|
||||||
|
sub_(z, y)
|
||||||
|
} else {
|
||||||
|
copy_(z, y)
|
||||||
|
sub_(z, x)
|
||||||
|
}
|
||||||
|
eGCD_(z, what, g, a, b)
|
||||||
|
if (!equalsInt(g, 1)) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if ((j & (j - 1)) == 0) {
|
||||||
|
copy_(y, x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (greater(g, one)) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
divide_(what, g, x, y)
|
||||||
|
|
||||||
|
if (greater(g, x)) {
|
||||||
|
P = x
|
||||||
|
Q = g
|
||||||
|
} else {
|
||||||
|
P = g
|
||||||
|
Q = x
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log(dT(), 'done', bigInt2str(what, 10), bigInt2str(P, 10), bigInt2str(Q, 10))
|
||||||
|
|
||||||
|
return [bytesFromLeemonBigInt(P), bytesFromLeemonBigInt(Q), it]
|
||||||
|
}*/
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user