venerdì 21 luglio 2017

Riequilibrare un investimento finanziario in perdita


Ecco le due equazioni fondamentali

Vx+Vx * Vy = V0
Vx = Va + Vaq

V0 = valore iniziale dell'investimento
Vx = valore complessivo delle azioni
Va = valore complessivo delle azioni già acquistate
Vaq = valore complessivo delle azioni da acquistare = Vx-Va

Vy = incremento percentuale (supposto) che le azioni avranno in un determinato periodo (basta stimarlo anche tra min e max)

Si stima prima Vy poi si calcola Vx quindi si calcola Vaq = nNaz*Paz

Naz = numero di azioni da acquistare
Paz = prezzo unitario delle azioni da acquistare



lunedì 19 giugno 2017

Fattorizzare RSA con Matlab/Octave

CODICE MATLAB /OCTAVE

n = 247;
s = 2*floor(sqrt(n));
d = sqrt(abs(s^2-4*n));
while (  (d < floor(d) ) | (d > floor(d))  )
       s = s+2;
       d = sqrt(abs(s^2-4*n));
end
a = (s+sqrt(abs(s^2-4*n)))/2
b = n/a
potete anche usare disp(a), disp(b)

in php il listato è simile solo che le variabili 
vanno precedute dal $, esempio $n, $s, $d ecc

uso dei numeri casuali in Matltab
floor(rand(10,5)*90)+1

mercoledì 7 giugno 2017

Fattorizzazione RSA con note proprietà

n = pq

è noto che se s= p+q, d = p-q

allora

n*s*d=24k, con k intero molto grande (vera quando p, q dispari ma lo sono perché p, q sono dispari e primi)

n*(p-q)*(p+q)=n*(p^2-q^2)=24*k

ovvero:

n*p^4-24*k*p^2-n^3=0

p^2 = (24 +/- radq((24k)^2+4n^4))/(2n)

che è un'equazione quadratica in p^2

k è un valore enorme ed è molto difficile trovarlo.

Non risultano note stime efficienti
sicuramente k > n*radq(n)/6

ma nel calcolo del discriminante non possiamo usare le tecniche dell'equazione pitagorica
(24k)^2+(2n^2)^2=M^2 perché ciò implicherebbe aver già fattorizzato n che è invece il nostro obiettivo.

Attenzione:
n*s*d=24*k implica che sd = 24/k

s+d = p+q+p-q=2p con p>q, q < sqrt(n)


Z^2-(2p)*Z+24k/n = 0