Curiosità algoritmo RSA

di il
58 risposte

Curiosità algoritmo RSA

Mi stavo chiedendo , dato un numero N formato dalla moltiplicazione di due numeri Primi P1 e P2 , come RSA per esempio , è possibile calcolarne i fattori primi in un altra maniera ? Quindi N = P1 * P2 , conoscendo N c'è un solo modo per calcolarne i fattori che è molto lungo o ne esiste un altro che voi sappiate anche se lungo uguale? Se si quale ?
Grazie a tutti.

58 Risposte

  • Re: Curiosità algoritmo RSA

    Ce ne sono parecchi, di metodi.
    Alcuni perfino teorici.
    Ad ogni modo allo stato non ci sono algoritmi efficienti di fattorizzazione, anche se ci potrebbero essere novità "derivate" dalle idee del test deterministico di primalità polinomiale.
    Forse.
  • Re: Curiosità algoritmo RSA

    https://it.wikipedia.org/wiki/Fattorizzazion

    L'algoritmo piu' efficiente per fattorizzare un numero primo di grandi/grandissime dimensioni e' l'algoritmo di Shor: ha complessita' cubica.

    Praticamente straefficiente: con questo algoritmo puoi craccare in secondi qualunque sistema crittografico. Anche quelli militari!

    Ha un piccolissimo diffetto, praticamente trascurabile: serve un computer quatistico per implementarlo

    https://it.wikipedia.org/wiki/Algoritmo_di_fattorizzazione_di_Shor
  • Re: Curiosità algoritmo RSA

    Avevo pensato questo algoritmo:

    EDIT:
    vi mostro la strada giusta del 1891
    X00-1891=(X-19)09
    1891-(X-19)09=(-X+37)82
    (X-19)09-(-X+37)82=(2X-57)27
    (-X+37)82-(2X-57)27=(-3X+94)55
    (2X-57)27-(-3X+94)55=(5X-152)72
    (5X-152)72-(-3X+94)55=(8X-246)17
    (8X-246)17-(-3X+94)55=(11X-341)62



    X00-1891=(X-19)09
    1891-(X-19)09=(-X+37)82
    X>19 e X<37

    Siccome devono essere tutti numeri positivi si ha:
    (X-19)09-(-X+37)82=(2X-57)27
    X>19 - X<37 = X>28,.... (che è possibile)
    invece l'altra strada era
    (-X+37)82-(X-19)09=(-2X+57)27
    X<37 - X>19 = X<28,.... (che è impossibile)
    perchè per ora se il massimo della X è 37 e il minmo è 19 -> 37 - 19 =18 che è minore di 19

    (-X+37)82-(2X-57)27=(-3X+94)55
    X<37 - X >28,.... = X<31,........ (che è possibile)
    invece l'altra strada era
    (2X-57)27-(-X+37)82=(3X-94)55
    X>28,... - X<37 = X>31,,,,,,, (che è impossibile)
    perchè per ora se il massimo della X è 37 e il minmo è 28 -> 37 - 28 =9 che è minore di 31

    ecc. ecc.

    Quindi ci rimane da stabilire solo
    1891-(X-19)09=(-X+37)82
    oppure
    (X-19)09-1891=(X-37)82

    per avere la strada giusta e cioè un Euclide(3100,1891)

    Qualcuno vorrebbe scrivere il sorgente per numeri grandi?
    vi darò tutte le informazioni
  • Re: Curiosità algoritmo RSA

    P_1_6 ... ricominciamo??

    https://www.iprogrammatori.it/forum-programmazione/cplusplus/pseudo-codice-per-decodificare-rsa-t25366.html#p8542674
  • Re: Curiosità algoritmo RSA

    Si. Finchè non ci riesco.
    Potresti gentilmente dirmi dov'è l'errore?
    Se errore c'è.
  • Re: Curiosità algoritmo RSA

    La tua è una fissazione. Comunque in questo thread sei OT e ti ho segnalato.
  • Re: Curiosità algoritmo RSA

    P_1_6: perchè usi il thread di un altro utente per discutere di un problema tuo?
    Ti invito a leggere il regolamento e a rispettare gli spazi altrui, grazie
  • Re: Curiosità algoritmo RSA

    aleasia ha scritto:


    Se si quale ?
    .
    ed io ho risposto
    comunque se lo ritenete OT spostatelo pure
  • Re: Curiosità algoritmo RSA

    ... se ne esiste un altro "ufficiale" e che "funzioni".

    Di tutta la tua questione teorica non dimostrata (vedi altri thread su altri forum) NON si può discutere in questo thread perché cadiamo nel ridicolo.
  • Re: Curiosità algoritmo RSA

    Mi dici dove sbaglio per piacere
  • Re: Curiosità algoritmo RSA

    No, non te lo può dire perchè in questo thread sei OT e imbucato.
  • Re: Curiosità algoritmo RSA

    Grazie delle vostre risposte intanto , vedete io ho sviluppato un algoritmo che però è da migliorare , nel senso , la formula è universale ed è già una buona cosa , il problema appunto è che c'è da fare , la cosa bella e che sono quattro operazioni di base , e la cosa ancora più bella è che credo almeno di essere il primo ad averla scoperta , non saprei se postarla qui sul forum , ditemi voi , in pratica vi anticipo che dato un numero N formato da N =Primo*Primo es . 15 = 3*5, quello che ho scoperto a mio parere ripeto sensazionale è che da N riesco a ricavare la somma e sottolineo somma , quindi di N = Primo+Primo 8 = 3+5 , il problema che dicevo prima sta nel fatto che bisogna conoscere i due numeri Primi , quindi non è efficiente per il momento , ma c'è un unico modo che mi rimanda al Crivello di Eratostane e quindi ciccia.
  • Re: Curiosità algoritmo RSA

    Non ho capito un granchè, prova a spiegare più chiaramente.
    Prendiamo ad esempio
    1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139
    Cosa mi sai dire?
  • Re: Curiosità algoritmo RSA

    +m+ forse è giusto così , condividere intendo anche se non sono una persona a cui piace condividere in particolar modo , comunque ecco quello che ho scritto .

    Algoritmo decriptazione RSA
    In queste pagine descrivo come decriptare una chiave RSA . Prendiamo due numeri Primi ad esempio 3 e 5 e li moltiplichiamo : 3 * 5 = 15 .
    NOTA BENE : Nell'esempio conosciamo i due numeri che formano la chiave RSA , più avanti spiegherò come fare senza conoscerli ma conoscendo solo il prodotto o la chiave RSA.
    Adesso il numero Magico 2178 e il numero magico 22 . Quindi :
    ( 2178 * 15 ) / 22 = 1485
    adesso dividiamo per 15 il numero 1485 quindi :
    1485 / 15 = 99
    adesso 99 diviso 15 , quindi :
    99 / 15 = 6,6 è un numero sempre con la virgola arrivare almeno a tre cifre decimali in questo caso è una.
    adesso :
    1485 / 6,6 = 225 eq. (1)
    adesso 225 diviso 3 che è uno dei numeri primi che forma il 15 :
    225 / 3 = 75
    adesso 225 diviso 5 che è il secondo numero primo che forma il 15 :
    225 / 5 = 45
    adesso sommiamo i due risultati :
    75 + 45 = 120 N.B. Importante dopo spiegherò perchè intanto la chiamo eq.(2) . Adesso divido il risultato 120 per 15 :
    120 / 15 = 8 eq. (3)
    ??????
    Finito 8 è uguale a 5 + 3 quindi è la somma di due numeri primi , e proprio i numeri Primi che abbiamo usato all'inizio per formare il 15 esattamente ( 5 * 3 ).
    Questa è una formula universale e vale per qualsiasi algoritmo RSA . Ovviamente noi conoscevamo i due numeri Primi che formavano il numero 15 e adesso viene la cosa più importante.
    Prendiamo eq. (3)
    notate che per ottenere 8 ho bisogno di un numero come 120 eq. (2), la soluzione che non è difficile da trovare ed è quella di trovare appunto , con vari tentativi partendo dal numero 5 e in sequenze di 5 quindi 5 , 5 + 5 = 10 , 10 + 5 = 15 , 15 + 5 = 20 eccetera , quindi questi numeri 5 , 10 15 , 20 eccetera , ogni numero deve essere verificato dividendolo appunto per la chiave RSA . Quindi nel caso di RSA = 15 dell'esempio , il numero corretto sarà appunto 120 / 15 = 8, ( quindi 5 ventiquattro volte = 120 che diviso 15 farà 8 che sarà la somma di due numeri Primi 5 + 3 ) . È infallibile e allo stesso tempo si possono calcolare numeri molto grandi in tempi relativamente brevi , intendo
    giorni , settimane forse ma non ere glaciali interminabili. Quindi queste serie di 5 + 5 + 5........ diviso per la chiave RSA producono solo e solamente un numero pari prima o poi e tutti gli altri numeri saranno dispari e ovviamente avranno la virgola sia il numero pari che il numero dispari ma quello che conta è che c'è solo un numero pari e una volta trovato il numero , bisogna calcolare quali due numeri primi sommati tra loro , formano la chiave RSA.
    Un altro esempio molto importante è questo :
    prendiamo due numeri Primi 997 e 43 e li moltiplichiamo , quindi :
    997 * 43 = 42871
    adesso facciamo l'operazione :
    ( 2178 * 42871) / 22 = 4244229
    adesso dividiamo 4244229 per 42871 , quindi :
    4244229 / 42871 = 99
    adesso :
    99 / 42871 = 0.002309..... prendiamo sei cifre decimali perchè ci sono due zeri dopo la virgola adesso :
    4244229 / 0.002309 = 1838124296,23
    quindi :
    1838124296,23 / 997 = 1843655,26...
    poi :
    1838124296,23 / 43 = 42747076,65...
    ????
    quindi sommiamo i due risultati :
    1843655 + 42747076 = 44590731 N.B. Ricordate che il numero finale deve sempre terminare
    con zero o cinque perchè il numero è la serie di 5 + 5 + 5 .......eccetera
    Quindi sarà 44590730 poi lo dividiamo per 42871 :
    44590730 / 42871 = 1040,.......... che è proprio 997 + 43 la somma di due numeri primi .

    Autore
    Alessandro Boatto
Devi accedere o registrarti per scrivere nel forum
58 risposte