Programma di criptazione/decriptazione

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.
Scusa ho confuso il tuo post con quello di r3di.... che mi diceva di aver cambiato i numeri del test di fattorizzazione. Ho usato quei numeri

Adesso fai ancora tentativi con vari m o vai a colpo sicuro, nel senso che già sei in possesso di un m che è multiplo di uno dei due divisori primi? E in ogni caso puoi scrivere/riportare/esplicitare la formula di m per esteso senza utilizzare variabili intermedie che non si sa bene cosa significano?
Ti spiego velocemente. Io utilizzo vari test sui numeri e per rispondere a una tua domanda precisa sui tentativi, rispondo che dall'esperienza ottenuta in questi anni vado molto sul sicuro. Ho comunque bisogno di passare da un test che io ho trasformato in programma che mi dà con esattezza la dimesione del semiprimo che voglio creare, la distanza che devo tenere per gli esponenti e il campo su cui può operare l'algoritmo.
Il test che ti ho mostrato è stato uno dei primi che ho usato per cercare di capire la dinamica di questi risultati.
Non saprei come scrivere questa formula in formato matematico. Ti posso solo dire che il test va a cercare il numero primo p dentro la variabile b togliendo prima a questa variabile b tutti i valori della chiave. Capisco che possa sembrare complicato per voi seguire i miei ragionamenti ma nella mia testa è veramente tutto chiaro, solo non riesco ad esprimerlo in una formula



Ma nel mio precedente post ho affrontato la questione della fattorizzazione, qui tu adesso mi sembra di capire che stai trattando la generazione dei primi, infatti non vedo nessun utilizzo di gcd()...

in questo test non si affronta la fattorizzazione ma con questo metodo riesco a identificare l'esatta posizione del divisore rispetto al semiprimo. Io ti ho detto che se c1 o c2 risultano a zero, allora il campo di risoluzione è veramente ampio, o abbastanza ampio. Se c1 che nel caso specifico è zero fosse più di zero, tipo 1 o 2 o più. Il campo di risoluzione risulterebbe molto piccolo e bisognerebbe cambiare posizione alle potenze, aumentandone il distacco, oppore innalzarle in modo da tenere sempre gli esponenti alla stessa distanza

Infatti alla luce anche di quello che ho detto all'inizio di questo post, secondo me c'è un equivoco di fondo, ossia che l'algoritmo dell'OP ha più a che fare con la generazione di numeri primi che con la fattorizzazione e la crittografia...

Per quanto riguarda la fattorizzazione è sicuramente molto meno rilevante. A mio modesto parere la cosa più rilevante nell'ambito della teoria dei numeri è il fatto che una chiave unica riesce a fattorizzare miliardi di semiprimi. Questo è un concetto che pone qualche domanda. Per quanto riguarda la crittografia invece la trovo una incredibile macchina di codici che possono essere gestiti in esclusiva di chi possiede la chiave.
 
Vedo che Comunque alla mia domanda sul perché ci siano sempre robe hardcodate non ha risposto. Cioe poi uno non si deve sentire preso in giro che stiano cercando di fargli capire concetti di informatica e soprattutto di algoritmi.
 
Sto seguendo il thread dal primo giorno ma non avevo tempo di rispondere.

Capisco che hai lavorato molto su questo algoritmo, ed è evidente che hai investito del tempo per cercare di farlo funzionare.Così però non ci siamo.

Un algoritmo deve essere

  • finito: è costituito da un numero finito di istruzioni e deve sempre terminare;
  • deterministico: partendo dagli stessi dati in ingresso, si devono ottenere i medesimi risultati;
  • non ambiguo: le operazioni non devono poter essere interpretate in modi differenti;
  • generale: deve essere applicabile a tutti i problemi della classe a cui si riferisce, o ai casi dell'espressione matematica.

In genere, un buon algoritmo dovrebbe funzionare correttamente in modo autonomo, senza richiedere modifiche manuali per gestire particolari casi o scenari. Questo permette di avere una soluzione più scalabile e meno dipendente dall’intervento umano.

In questo caso L’algoritmo non funziona, non è applicabile neanche a dei privati. Il concetto alla base è che dovrebbe semplificare la vita. Le persone non dovrebbero studiare quando fallisce per porvi rimedio.

Hai analizzato quali sono esattamente i casi in cui è necessario applicare le modifiche manuali? Potrebbe esserci un pattern?

Se si trova il modo di renderlo generale, può essere proposto come soluzione al problema in oggetto, altrimenti no e questa cosa è oggettiva.
Questo tipo di algoritmi deve funzionare a runtime, senza necessità di essere riadattato e tantomeno senza l’ausilio di un file per leggere i numeri. Inoltre proprietà necessaria è la garanzia di bidirezionalità. Devo garantire con FATTI che esso la garantisca tale proprietà . I test per quanti grandi possano essere non lo fanno. C’è necessità di una dimostrazione matematica e questo è inoppugnabile.
Dopo alcune pagine è palese che il tuo algoritmo non rispetti alcune proprietà, pertanto non può essere promosso come tale.
Se hai delle carenze matematiche, che si riflettono sicuramente anche nella qualità della soluzione, un consiglio che posso darti è rivolgiti ad un matematico che per una cifra X possa formulare il problema e magari mostrare alcune problematiche e pro. È evidente che la convergenza verso una soluzione generale in questo modo sarà molto complessa, e per quanto nella tua testa lo sia, senza un formalizzazione non si avanza e nessuno al di fuori della tua testa riuscirà mai a comprendere le sue peculiarità.
 
robe hardcodate

In realtà sono tutti valori che devono essere "trovati" dall'algoritmo o passati come parametri. Quindi il presunto algoritmo di fattorizzazione ha tanti parametri in ingresso, non solo il semiprimo. Per capirci, nell'esempio fatto in cui il (non meglio specificato) valore denominato "campo", il numero 500 non era adeguato e ci voleva un valore 200 vuol dire che "campo", di fatto, è un parametro da passare con il semiprimo (e non solo questo) e soprattutto da determinare (si arriva a 200 con delle prove? Fatte come?).

Direi di provare l'algoritmo passando unicamente un semiprimo, ad esempio

25195908475657893494027183240048398571429282126204032027777137836043662020
70759555626401852588078440691829064124951508218929855914917618450280848912
00728449926873928072877767359714183472702618963750149718246911650776133798
59095700097330459748808428401797429100642458691817195118746121515172654632
28221686998754918242243363725908514186546204357679842338718477444792073993
42365848238242811981638150106748104516603773060562016196762561338441436038
33904414952634432190114657544454178424020924616515723350778707749817125772
46796292638635637328991215483143816789988504044536402352738195137863656439
1212010397122822120720357

SENZA ALTRI PARAMETRI CONOSCIUTI e SENZA MODIFICARE valori costanti nel codice dell'algoritmo (altrimenti sono parametri e non costanti), per ottenere i due primi p e q.

Il numero è "solo" di circa 2000 bit quindi sotto quei valori che dici di poter trattare in un secondo.

Lo puoi fare? Risposte ammesse sì no
 
Ultima modifica:
Vedo che Comunque alla mia domanda sul perché ci siano sempre robe hardcodate non ha risposto. Cioe poi uno non si deve sentire preso in giro che stiano cercando di fargli capire concetti di informatica e soprattutto di algoritmi.
Mi dispiace, non è perchè ho voluto ignorarti è perchè non so proprio come rispondere alla tua domanda
 
Cioè perdonami hai creato tu l’ algoritmo e non sai come mai ci metti dentro parametri e valori hardcoded.
per me possiamo chiudere la discussione
 
  • Haha
Reazioni: BAT
Mi dispiace, non è perchè ho voluto ignorarti è perchè non so proprio come rispondere alla tua domanda
Quello che viene chiesto è perché nei tuoi script spesso ci sono valori che te metti dentro nello script, i valori di chiave, i valori campo nello script di test, ecc, da dove derivano, perché servono, c'è modo di rendere generico il tutto?
 
  • Mi piace
Reazioni: BAT
Mancata osservanza delle regole del Forum
Quello che viene chiesto è perché nei tuoi script spesso ci sono valori che te metti dentro nello script, i valori di chiave, i valori campo nello script di test, ecc, da dove derivano, perché servono, c'è modo di rendere generico il tutto?
Grazie per aver chiarito la domanda di Skill.... Voi avete osservato degli script di test che non sono programmi veri e propri ma banchi di prova.. Utilizzare le variabili per osservare come l'algoritmo si comporta in determinate situazione credo sia legittimo. Potrei usare degli input ma questo mi porterebbe a riscrivere ogni volta il dato o i dati che voglio inserire.

Cioè perdonami hai creato tu l’ algoritmo e non sai come mai ci metti dentro parametri e valori hardcoded.
per me possiamo chiudere la discussione
Il fatto che alle tue domande Bat ti sostenga in modo sarcastico mi fa un po' pensare male. Ho già capito che c'è un tentativo da parte di alcuni del forum, compreso quello che ha cercato di delegittimare rendendo la cosa ridicola sull'altro forum, capitanata probabilmente da Bat, di farmi apparire ridicolo stroncando senza motivo l'algoritmo. Spero che tu non abbia niente a che fare con questo. Allo stesso modo risponderò a life98 che ho visto ha l'appoggio completo di Bat e che in poche parole mi sta dicendo che il mio algoristmo non vale niente.
 
Sto seguendo il thread dal primo giorno ma non avevo tempo di rispondere.
ti rispondo punto per punto anche se questa domanda sta seguendo un filone ormai purtroppo noto

  • finito: è costituito da un numero finito di istruzioni e deve sempre terminare; L'algoritmo non viene cambiato in alcun modo tant'è vero che il programma di criptazione/decriptazione è compilato in .exe
  • deterministico: partendo dagli stessi dati in ingresso, si devono ottenere i medesimi risultati. I dati in ingresso sono i medesimi in uscita tant'è vero che l'lagoritmo lavora in O(1) meno di un secondo per qualsiasi dato in entrata
  • non ambiguo: le operazioni non devono poter essere interpretate in modi differenti; L'algoritmo lavora sempre su numeri interi e non avviene nessuna interpretazione di nessun tipo
  • generale: deve essere applicabile a tutti i problemi della classe a cui si riferisce, o ai casi dell'espressione matematica. A questo sinceramente non saprei cosa risponderti perchè mi sembra una affermazione un po' ambigua ma ci proverò lo stesso: E' applicabile a tutti i problemi della classe a cui si riferisce in quanto è in grado di fattorizzare tutti i numeri che rientrano in quella classe, piccoli, medi, grandi, molto grandi, moltissimo grandi.
In questo caso L’algoritmo non funziona, non è applicabile neanche a dei privati. Il concetto alla base è che dovrebbe semplificare la vita. Le persone non dovrebbero studiare quando fallisce per porvi rimedio.
Mi sembri molto prevenuto e poco obiettivo. Parlare di algoritmo e di programma di criptazione sono due cose ben distinte. Immagino che tu stia parlando del programma in quanto l'algoritmo interesserebbe molto poco i privati. Il programma non richiede l'intervento dell'utente finale, lo deve solo usare e basta.

Hai analizzato quali sono esattamente i casi in cui è necessario applicare le modifiche manuali? Potrebbe esserci un pattern?
Non c'è bisogno di fare nessuna modifica è tutto automatico e indipendente

Se si trova il modo di renderlo generale, può essere proposto come soluzione al problema in oggetto, altrimenti no e questa cosa è oggettiva.
Questo tipo di algoritmi deve funzionare a runtime, senza necessità di essere riadattato e tantomeno senza l’ausilio di un file per leggere i numeri. Inoltre proprietà necessaria è la garanzia di bidirezionalità. Devo garantire con FATTI che esso la garantisca tale proprietà . I test per quanti grandi possano essere non lo fanno. C’è necessità di una dimostrazione matematica e questo è inoppugnabile.
Dopo alcune pagine è palese che il tuo algoritmo non rispetti alcune proprietà, pertanto non può essere promosso come tale.
Se hai delle carenze matematiche, che si riflettono sicuramente anche nella qualità della soluzione, un consiglio che posso darti è rivolgiti ad un matematico che per una cifra X possa formulare il problema e magari mostrare alcune problematiche e pro. È evidente che la convergenza verso una soluzione generale in questo modo sarà molto complessa, e per quanto nella tua testa lo sia, senza un formalizzazione non si avanza e nessuno al di fuori della tua testa riuscirà mai a comprendere le sue peculiarità
Questa è la parte che avete scritto insieme? Io accetto ogni domanda e cerco di rispondere a tutte quelle che mi vengono poste, accetto anche le critiche che valuto in modo serio, ma di fronte ad atteggiamenti, quasi infantili, come questi grotteschi tentativi di stroncatura mi scappa proprio da ridere 😂
 
Premesso che hai preso una sanzione perchè continui a postare a catena,

Il problema è che non fornisci prove concrete a confermare che il tuo algoritmo sia valido.
Per cortesia rispondi a questa domanda https://forum.tomshw.it/threads/programma-di-criptazione-decriptazione.932244/post-8698921
se non sei in grado possiamo chiudere, di occasioni ne hai avute.
Ti chiedo scusa ma non ho capito a cosa ti riferisci ma ok. puoi chiudere qui. Grazie a tutti
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top