Programma di criptazione/decriptazione

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.
stai dimostrando di non capire niente e di sparare a vanvera le tue accuse
osservazioni, non accuse
se non sai reggere un confronto basato su fatti concreti è un tuo problema;
qui purtoppo l'unico che sta ampiamente dimostrando di non capire assolutamente nulla delle osservazioni che vengono fatte sei proprio tu
la radice quadrata non è un'opinine che cresce più o meno rapidamente a seconda del campo, è una radice quadrata punto e basta
tu calcoli la chiave con quella
una fattorizzazione ha un solo input, il numero da fattorizzare
il codice lo hai postato tu, ho usato quello, l'algoritmo (ammesso e non concesso che termini e dia risultati corretti) non funziona in tempi accettabili, infatti gli ho passato un semiprimo da 100 cifre stamattina e non l'ha fattorizzato, dopo mezz'ora ho fermato il programma
che strano eppure a tuo dire fattorizzi semiprimi da 500 cifre in meno di un secondo, peccato che siano solo quelli che decidi tu
 
Posto il programma test che generalmente uso per verificare il campo di risoluzione di una famiglia. Spiego brevemente:
Il test parte da una base (numero primo) che viene innalzata esponenzialmente in modo diverso. p viene innalzato alla 5, q viene innalzato alla 11 e la chiave viene innalzata all 8. Se avete letto un po' come funziona l'algoritmo utilizzando la stessa base capirete di cosa parlo. p e q vengono trasformati in numeri primi a partire da le basi assegnate in un campo di 10000000*2^500 il chè vuol dire che questi due numeri primi vengono presi in quel campo a partire dalle basi assegnate. Viene così creato il semiprimo n=primo1*primo2 che poi viene testato utilizzando la chiave impostata. Il ciclo comprende 10 passaggi e a ogni passaggio viene decrementato e incrementato l'algoritmo. L'output mi darà come risultato il semiprimo creato, il fattore primo, l'analisi sul fattore primo e i cicli impegnati per trovare la soluzione. Se compare zero il ciclo non ha implementato niente, al contrario potrà implementare fino a un massimo di 10 per trovare la soluzione. Il tempo che impiega il programma è dato dal trovare due numri primi molto grandi e potrebbe essere anche di qualche minuto. ogni volta che lancerete il programma il sistema random produrrà due primi sempre diversi e un semiprimo sempre diverso. Vorrei commenti o eventuali domande solo sul test.
Python:
* GC57 test
from math import gcd,isqrt
from sympy import nextprime, isprime
from random import randint, seed
import time

#**** imposto il seme di ricerca random
T=int(time.time())
seed(T)

#**** numeri di ricerca
ps = '45781226558405483659061848084517523520699343530928680581341722632979022195694540925115045343036422766517577151510311704787018021623802339596981670905605736891**5'
qs = '45781226558405483659061848084517523520699343530928680581341722632979022195694540925115045343036422766517577151510311704787018021623802339596981670905605736891**11'

#**** converto le stringhe ps e qs in numeri interi
p=eval(ps)
q=eval(qs)

#**** imposto chiave come base di ricerca
chiave = 45781226558405483659061848084517523520699343530928680581341722632979022195694540925115045343036422766517577151510311704787018021623802339596981670905605736891**8
print()

#**** discriminatore
trovato=0
campo=500
aumenta=1000000000
#**** cerco i numeri primi partendo dalla base e aggiungendo un numero casuale
primo1=nextprime(p+randint(1,aumenta*(2**campo)))
primo2=nextprime(q+randint(1,aumenta*(2**campo)))

#**** calcolo il semiprimo ed effettuo la ricerca
n=primo1*primo2
a=n%chiave
b=n-a
r=gcd(a,b)
for i in range(10):
    r=gcd(b,a)
    if r!=1:
        print('Semimprimo =',n)
        print()
        print('Divisore =',r)
        print()
        print('Test divisore. Numero primo=',isprime(r))
        print()
        print(i)
        trovato=1
        break
    a=a+chiave
    b=b-chiave
if trovato==0:
    print('nessun divisore trovato')

osservazioni, non accuse
se non sai reggere un confronto basato su fatti concreti è un tuo problema;
qui purtoppo l'unico che sta ampiamente dimostrando di non capire assolutamente nulla delle osservazioni che vengono fatte sei proprio tu
la radice quadrata non è un'opinine che cresce più o meno rapidamente a seconda del campo, è una radice quadrata punto e basta
tu calcoli la chiave con quella
una fattorizzazione ha un solo input, il numero da fattorizzare
il codice lo hai postato tu, ho usato quello, l'algoritmo (ammesso e non concesso che termini e dia risultati corretti) non funziona in tempi accettabili, infatti gli ho passato un semiprimo da 100 cifre stamattina e non l'ha fattorizzato, dopo mezz'ora ho fermato il programma
che strano eppure a tuo dire fattorizzi semiprimi da 500 cifre in meno di un secondo, peccato che siano solo quelli che decidi tu
Se il tuo intento è solo quello di distruggere mi dispiace non ci sto

Vorrei aggiungere un'altra cosa sul programma che io ho creato per la criptazione GC57eAL, anche se ampliamente spiegata sul sito. La cosa riguarda il tempo che viene mostrato nel programma test che ho postato. Questo problema della ricerca di numeri primi così grandi l'ho risolta creando dei file con dentro più numeri semiprimi della stessa famiglia per avere così la possibilità di eliminare un tempo non dipeso dal programma. Qualdo il programma carica il semiprimo dal file è una operazione super veloce dando inquesto modo all'algoritmo di fattorizzare direttamente il semiprimo a tempo zero, o meno di un secondo. Questa pratica si è resa necessaria soprattutto su semiprimi di 13000bit che richiedono due numeri primi molto complessi e grandi. E' solo una precisazione al fine di dimostrare che il programma di criptazione non segue l'iter del test che deve trovare i numeri primi da testare
 
Ultima modifica:
Posto il programma test che generalmente uso per verificare il campo di risoluzione di una famiglia
osservazioni:
  1. la presenza del ciclo for dove si invoca gcd (massimo comun divisore) mostra inequivocabilmente come lo sbandierato "tempo costante" sia una sparata clickbait; memorizzare direttamente (semi)primi non casuali non è un bel modo di programmare né di testare, tanto più che non sono casuali (vedi seguito)
  2. non esiste alcun motivo logico per cui un ciclo for che deve eseguire dei calcoli potenzialmente lunghi venga eseguito solo 10 volte
  3. è banalmente evidente che i primi non siano casuali ma generati ad hoc (di conseguenza è generato ad hoc anche il semiprimo su cui effettuare il test...)
  4. per fattorizzare un semiprimo l'unico input necessario è il numero stesso, i 2 primi che lo compongono non devono essere forniti né calcolati come fa comodo; come conseguenza l'uso di isprime() è inutile, la verifica di (pseudo)primalità non è richiesta né necessaria
  5. la chiave non vine calcolata ma fornita, è semplicemente ridicolo
quel codice non va bene per niente
 
Perdonami ma non ci siamo proprio, ancor di piu se stori altri numeri in un file per velocizzare i calcoli.
Il tuo algoritmo è "farlocco".
Ok, grazie

osservazioni:
  1. la presenza del ciclo for dove si invoca gcd (massimo comun divisore) mostra inequivocabilmente come lo sbandierato "tempo costante" sia una sparata clickbait; memorizzare direttamente (semi)primi non casuali non è un bel modo di programmare né di testare, tanto più che non sono casuali (vedi seguito)
  2. non esiste alcun motivo logico per cui un ciclo for che deve eseguire dei calcoli potenzialmente lunghi venga eseguito solo 10 volte
  3. è banalmente evidente che i primi non siano casuali ma generati ad hoc (di conseguenza è generato ad hoc anche il semiprimo su cui effettuare il test...)
  4. per fattorizzare un semiprimo l'unico input necessario è il numero stesso, i 2 primi che lo compongono non devono essere forniti né calcolati come fa comodo; come conseguenza l'uso di isprime() è inutile, la verifica di (pseudo)primalità non è richiesta né necessaria
  5. la chiave non vine calcolata ma fornita, è semplicemente ridicolo
quel codice non vale niente
Ok, grazie

Mi sta capitando una cosa veramente strana che riguarda questo post ma che viene commentato negativamente in un altro forum. Questa mattina ho ricevuto da questa persona il messaggio che ho riportato integralmente qui e che faceva riferimanto a Bat sostenendo che aveva ragione e che ero una sua vecchia conoscenza🤔 Ora mi ritrovo con questa persona che continua a mandare messaggi facendo riferimento a questo post e continuando a dire che Bat ha ragione. La cosa strana è che si è iscritto al forum il giorno 6 settembre 2024. vi mostro il post....
Screenshot 2024-09-06 144222.webp
Trovo la cosa abbastanza deprimente e orientata a ledere la mia immagine, e sinceramente non capisco perchè di tanta ostilità nei mie confronti
 
Non c'è niente di deprimente, tanto meno "presunte lesioni di nessuna immagine". Sono io che ti ho scritto sull'altro forum dopo avere visto le due discussioni. Sono d'accordo con tutto quello che ti ha scritto qui Bat e volevo che gli altri utenti lo sapessero. Non capisco che problemi hai.

Sono anni che scrivi sui forum su questo "presunto algoritmo" e io (e tanti altri) ti abbiamo già detto che è una bufala. Adesso pubblichi qui e su pierotofy, liberissimo (anche di pubblicare libretti su Amazon) ma sono libero anche io di confermare che è una bufala. Come pensano altri in questo forum.

P.S. Personalmente sono contrario al crossposting contemporaneo tra forum diversi ma, se si fa, si abbia almeno la decenza di segnalarlo a tutti.
 
Chiedo a tutti di moderare i toni, l'argomento è comunque interessante e penso valga la pena discutere in modo costruttivo.
@piergiac-1 non postare a catena ma edita l'ultimo messaggio, inolte ti invito ad ascoltare le critiche per creare un prodotto migliore, al controllo del tono delle discussioni ci pensa lo Staff.
Grazie e buon proseguimento!
 
Non c'è niente di deprimente, tanto meno "presunte lesioni di nessuna immagine". Sono io che ti ho scritto sull'altro forum dopo avere visto le due discussioni. Sono d'accordo con tutto quello che ti ha scritto qui Bat e volevo che gli altri utenti lo sapessero. Non capisco che problemi hai.

Sono anni che scrivi sui forum su questo "presunto algoritmo" e io (e tanti altri) ti abbiamo già detto che è una bufala. Adesso pubblichi qui e su pierotofy, liberissimo (anche di pubblicare libretti su Amazon) ma sono libero anche io di confermare che è una bufala. Come pensano altri in questo forum.

P.S. Personalmente sono contrario al crossposting contemporaneo tra forum diversi ma, se si fa, si abbia almeno la decenza di segnalarlo a tutti.
Perfetto, almeno ti sei rivelato. La tuo opinione non mi interessa e se trovi disgustose i miei post puoi sempre guardare da un'altra parte. Non credo di venire a mangiare a casa tua. Inoltre trovo la cosa non solo deprimente ma anche grottesca che una persona si accanisca tanto così brutalmente a un'altra persona solo perchè non ne condivide le idee. La gente è adulta e può benissimo giudicare da sola. Puoi dire che per te è una grande cavolata ma non puoi inseguirmi in altri forum per cercare di mettermi in cattiva luce. Lo trovo eticamente scorretto

Chiedo a tutti di moderare i toni, l'argomento è comunque interessante e penso valga la pena discutere in modo costruttivo.
@piergiac-1 non postare a catena ma edita l'ultimo messaggio, inolte ti invito ad ascoltare le critiche per creare un prodotto migliore, al controllo del tono delle discussioni ci pensa lo Staff.
Grazie e buon proseguimento!
sono daccordo ed è quello che sto cercando di fare, in modo costruttivo. Se ad alcuni non piace o trova il mio sistema inutile trovo che sia indecente ribadire ogni volta che "L'algoritmo non vale niente fattene una ragione". Se per quella persona non vale niente lasci il posto a chi invece ci vede qualcosa di interessante, o dobbiamo stare tutti a quella valutazione?
 
Rivelato? Ma cosa dici?

Disgustose? Quando lo avrei scritto?

Accanire brutalmente? Ma dici sul serio?

Mangiare a casa mia? Stai vaneggiando?

Ho solo commentato, su tutti i forum a cui partecipo o voglio partecipare, quello che hai scritto tu sul tuo "presunto algoritmo".

E ho ribadito che sono d'accordo con quanto scritto da @BAT e non solo da lui.
Mi sembra non ci sia altro da dire sulla questione OT. Sul lato tecnico, attendiamo tutti le tue dimostrazioni matematiche.
 
  • Mi piace
Reazioni: BAT
Rivelato? Ma cosa dici?

Disgustose? Quando lo avrei scritto?

Accanire brutalmente? Ma dici sul serio?

Mangiare a casa mia? Stai vaneggiando?

Ho solo commentato, su tutti i forum a cui partecipo o voglio partecipare, quello che hai scritto tu sul tuo "presunto algoritmo".

E ho ribadito che sono d'accordo con quanto scritto da @BAT e non solo da lui.
ti sei iscritto questa mattina. Ok, la chiudo qui
 
sono daccordo ed è quello che sto cercando di fare, in modo costruttivo. Se ad alcuni non piace o trova il mio sistema inutile trovo che sia indecente ribadire ogni volta che "L'algoritmo non vale niente fattene una ragione". Se per quella persona non vale niente lasci il posto a chi invece ci vede qualcosa di interessante, o dobbiamo stare tutti a quella valutazione?
Secondo te, è possibile e sei in grado di modificare l'algoritmo tenendo conto delle critiche di @BAT e renderlo generico e veloce per la fattorizzazione di qualsiasi numero semiprimo?
Alla fine le critiche sono state fatte in modo ben preciso, per cui credo che puoi tenerne conto e lavorarci su no? Adeguarlo a ciò che è stato specificato e criticato.
Magari poi posti la nuova versione così da farla valutare per vedere se è migliorato, se è più generico (deve consentire la fattorizzazione di qualunque semiprimo, chiaramente senza avere i primi che lo compongono)
Un'altra problematica che ti è stata fatta notare è che non funziona con semiprimi composti da p^2, come mai?
 
Ultima modifica:
Perfetto, almeno ti sei rivelato. La tuo opinione non mi interessa e se trovi disgustose i miei post puoi sempre guardare da un'altra parte. Non credo di venire a mangiare a casa tua. Inoltre trovo la cosa non solo deprimente ma anche grottesca che una persona si accanisca tanto così brutalmente a un'altra persona solo perchè non ne condivide le idee. La gente è adulta e può benissimo giudicare da sola. Puoi dire che per te è una grande cavolata ma non puoi inseguirmi in altri forum per cercare di mettermi in cattiva luce. Lo trovo eticamente scorretto
Premettendo che non conosco assolutamente l'argomento trattato, vorrei però consigliarti che se esponi le tue idee in un contesto pubblico, soprattutto in un forum, lo fai per confrontarti e per cercare spunti e ragionare sulle critiche costruttive.

Mi sembra che fin dal primo post, molte persone e mooooolto preparate ti abbiano posto domande o esposto le loro perplessità.

Dal momento che tu rispondi "io vi assicuro questo e questo, se non lo capite non è un problema mio, dovete fidarvi di me, vi assicuro che funziona" (ho estremizzato per sintetizzare), è chiaro che la discussione non è più costruttiva e da parte di chi ha dei dubbi le risposte saranno semplicemente "se non mi rispondi mi stai trollando".
 
Alla fine le critiche sono state fatte in modo ben preciso, per cui credo che puoi tenerne conto e lavorarci su no? Adeguarlo a ciò che è stato specificato e criticato.
Accetto ogni critica costruttiva ma non posso cambiare ilo sistema. Prendiamo per esempio gli RSA sono numeri primi estratti con determinati parametri che non possono essere modificati per non compromettere la sicurezza. Se chiedi a loro di utilizzare qualsiasi numero primo anche casuale ti risponderebbero no. Questo tipo di fattorizzazione agisce solo su dei campi che ogni famiglia può produrre e l'algoritmo riesce a fattorizzare solo all'interno di questi campi. A livello di studio sulla teoria dei numeri l'unica cosa che potrebbe essere interessante sarebbe la domanda perchè una sola chiave riesce a rintracciare miliardi di miliardi di numeri primo. Per quanto riguarda la sicurezza invece è un'altra cosa. Posso gestire miliardi di miliardi di semiprimi tenendo una chiave riservata e nascosta, Si. Possono gli altri arrivare a trovare uno di questi numeri primi senza la chiave, No. Allora ho un dispositivo che mi permette di accedere a dei codici che solo io posso accedere velocemente. Questo è il concetto primario. Se parliamo di sicurezza dei codici naturalmente parliamo anche delle sue vulnerabilità. Cosa rende molto sicuro e non certo al 100% che non esiste in sicurezza informatica, questo codice? La grandezza del numero
 
Allora ci tengo a precisare due cose, dato che scrivo codice da praticamente 13 anni e sono un SENIOR come Developer, e ho avuto anche esperienze di coordinamento team di sviluppo.

Un algoritmo quasiasi sia, che possa essere pure una semplice somma ad esempio:

Java:
public Integer somma(int a , int b) {
    int a = 1;
    int c = b;
    
    return a + c;
}

Non deve mai contenere Variabili HARDCODED o HARDCODATE (se vogliamo dirla in italiano).
Un algoritmo deve appoggiarsi sempre a variabili create dinamicamente, e a strutture dati dinamiche.
Nel caso di questa somma il risultato sarà sempre influenzato da A = 1 perchè Hardcoded.

Se definiamo un array int[10] in automatico stiamo Hardcodando l'array ad un massimo di 10 input.

Se l'utente sopra, scrive :
-- che usa dei numeri da lui definiti,
-- che usa un file di testo contenente altri numeri da lui definiti

sta usando roba hardcoded che permette all'algoritmo di funzionare e probabilmente di farlo anche bene.
Ma non appena smontiamo una delle due opzioni il castello crolla.

Quello che si chiede è per l'appunto mostrare che l'algoritmo funzioni in qualsiasi modo possibile, e che tipo di computazioni matematiche abbia.

Come poi detto dal collega @BAT anche un semplice ciclo FOR non rende piu l'operazione O(1), ma diventa logaritmica o esponenziale in base alle casistiche dell'algoritmo.

Detto questo, chiudo rimango solo in lettura del thread.
Buon weekend a tutti
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top