dtfi.fr
Le relazioni
I luoghi
Divertirsi
La casa
Il cibo
Il lavoro
La natura
Le misure
I testi
Le lezioni
DEUX LANGUES
DUE LINGUE
Scrivo per imparare l'italiano.
J'écris pour apprendre l'italien.
🇮🇹
🇫🇷
Il mio (ex) problema
Mon (ancien) problème
Per anni, ho venduto i miei programmi informatici per le scuole: per gli alunni, per le biblioteche scolastiche, per i “direttori di scuola” come si dice in Francia…
Pendant des années, j'ai vendu mes programmes pour l'école : pour les élèves, pour les bibliothèques scolaires, pour les directeurs…
Come autore ed editore, ho dovuto proteggere il mio lavoro contro la pirateria: non volevo ritrovare la copia di un solo programma venduto in tutte le scuole di una città o, peggio, in tutto un dipartimento. (Non sono stato paranoico, succedeva spesso.) A questo scopo, ho cercato una protezione abbastanza semplice da programmare e, tra diverse possibilità, ho scelto di registrare il nome e l’indirizzo delle scuole clienti in un file, e di inserire queste informazioni sugli schermi degli utenti e sui risultati stampati degli alunni. Tuttavia, la protezione non sarebbe stata totale perché qualcuno avrebbe potuto trovare il file e modificarlo. Di conseguenza, ho deciso di cifrarlo.
Ma come programmare qualcosa di abbastanza semplice per me e, allo stesso tempo, molto complicato per un altro, per un cliente disonesto o un hacker?
Comme auteur et comme éditeur, j'ai dû protéger mon travail contre le piratage : je ne voulais pas retrouver la copie d'un seul programme vendu dans toute une ville ou pire encore dans tout un département. (Je n'ai pas souffert de paranoïa, ça arrivait souvent.) Dans ce but, j'ai cherché une protection suffisamment simple à programmer pour moi et, entre diverses possibilités, j'ai choisi d'enregistrer le nom et l'adresse de l'école cliente dans un fichier et de faire apparaître ces informations sur les écrans des utilisateurs et sur les résultats imprimés. Toutefois, la protection n'aurait pas été complète puisque quelqu'un aurait pu trouver le fichier et le modifier. En conséquence, j'ai décidé de le chiffrer.
Mais comment programmer quelque chose de suffisamment simple pour moi et, en même temps, très compliqué pour un autre, pour un client malhonnête ou un hacker ?
La mia prima idea è stata di adottare un metodo semplice che permetterebbe di sostituire una lettera con un’altra. Purtroppo, sarebbe stato molto semplice di hackerare un programma perché si conoscono le lettere più frequenti in una lingua (La “E” per prima in francese, e dopo “A, I, S”…). Era necessario cercare qualcosa di un po’ più elaborato, come fare una sorta di miscelazione di informazioni per rendere la decifrazione più difficile, se non impossibile.
Ma première idée a été d'adopter une méthode simple qui permettrait de remplacer une lettre par une autre. Malheureusement, il aurait été très facile de hacker un programme parce qu'on connaît très bien les lettres les plus fréquentes dans une langue (Le « E » en premier en français, puis « A, I, S… ». Il fallait chercher quelque chose de plus élaboré, comme faire une sorte de mélange d'informations pour rendre le déchiffrage plus difficile, voire impossible.
Ho deciso di sostituire le lettere da cifrare con delle altre, prendendo in considerazione un’altro gruppo di lettere che, ovviamente, doveva rimanere segreto per tutti e per sempre.
J'ai décidé de remplacer la lettre à chiffrer par une autre, en prenant en considération un autre groupe de lettres qui, évidemment, devait rester secret pour tous et pour toujours.
Il mio programma per cifrare
Mon programme pour chiffrer
Avevo programmato un’applicazione che funzionava sul mio computer, nel mio studio a casa e di cui ero l’unico utente. Era un vero tesoro da proteggere.
J'avais programmé une application qui fonctionnait sur mon ordinateur, dans mon bureau à la maison et dont j'étais le seul utilisateur. C'était un vrai trésor à protéger.
Con questa applicazione, potevo digitare il nome della scuola, la sua via, il suo codice postale e la sua città e registrare un file cifrato, e venderlo, allegato al programma, per darle i suoi “diritti di uso”.
Avec cette application, je pouvais saisir le nom de l'école, sa rue, son code postal et sa ville et enregistrer un fichier chiffré, et le vendre, avec le programme, pour lui accorder ses « droits d'utilisation ».
Come funzionava questa applicazione? Prendiamo un esempio semplificato.
Comment fonctionnait cette application ? Prenons un exemple simplifié.
Per cifrare il nome della scuola “DANTE ALIGHIERI” il mio programma assegnava un numero a ogni lettera, ad esempio, A=1, B=2… Poi, esaminava una frase segreta, diversa per tutti i programmi venduti (una per il programma della lettura, un’altra per il programma delle biblioteche…)
Pour chiffrer le nom de l'école « DANTE ALIGHIERI » mon programme asségnait un nombre à chaque lettre, par exemple A=1, B=2… Ensuite, il examinait une phrase secrète, différente pour tous les programmes vendus (une pour le programme de la lecture, une pour le programme des bibliothèques…)
Questa frase poteva avere un senso, essere senza senso, essere in una lingua straniera o essere una successione di lettere per rendere il lavoro del pirata ancora più difficile.
Cette phrase pouvait avoir un sens, ne pas en avoir, être dans une langue étrangère ou être une succession de lettres pour rendre le travail du pirate encore plus difficile.
Esempio IL GATTO ROSSO LEGGE UN FORMAGIO SPAVENTATO
o anche SLKJH UAEXEWP JHBTRE CXWPOGHPQPS KFJDD BCD
Exemple IL GATTO ROSSO LEGGE UN FORMAGIO SPAVENTATO
ou encore SLKJH UAEXEWP JHBTRE CXWPOGHPQPS KFJDD BCD
Dopo, una lettera a volta, il mio programma di crittografia doveva fare la somma dei numeri che corrispondevano alle lettere en quando la somma superava 26, cioè il numero di lettere dell’alfabeto francese, doveva sottrarre 26. Con questa somma poteva determinare la lettera da prendere per cifrare i dati.
Ensuite, une lettre à la fois, mon programme de chiffrage devait faire la somme des nombres qui correspondaient aux lettres et, quand la somme dépassait 26, c'est à dire le nombre des lettres de l'alphabet français, il devait soustraire 26. Avec cette somme il pouvait déterminer la lettre à prendre pour chiffrer les données.
Ecco l’esempio completo per cifrare il nome della scuola “DANTE ALIGHIERI” con “IL GATTO ROSSO”.
Voici l'exemple complet pour chiffrer le nom de l'école « DANTE ALIGHIERI » avec « IL GATTO ROSSO ».
Quindi, con questo metodo e con la frase segreta “IL GATTO ROSSO”, “DANTE ALIGHIERI” è cifrato con “MMNAFTUAIYWBXGI” e la “A” di "DANTE" è codificata con una “M” mentre la “A” di "ALIGHIERI" è cifrata con una “U”! La frequenza delle lettere in francese non sarebbe d’aiuto per decifrare il codice.
Ainsi, avec cette méthode et avec la phrase secrète « IL GATTO ROSSO », « DANTE ALIGHIERI » est chiffré avec « MMNAFTUAIYWBXGI » et le «A» de « DANTE » est chiffré avec un « M » alors que le « A » de « ALIGHIERI » est chiffré avec un « U » ! La fréquence des lettres en français ne serait pas d'une grande utilité pour déchiffrer le code.
Il programma per decifrare
Le programme pour déchiffrer
Il nome è cifrato. È una bella cosa, ma come ritrovare le informazioni? Basta fare lo stesso lavoro, al contrario, e fare una sottrazione invece di fare un’addizione e, quando è necessario, fare un’addizione invece di fare una sottrazione. Questa seconda parte era in tutti i programmi venduti ed era inaccessibile ai clienti perché faceva parte del programma che era anche lui cifrato e compilato in un linguaggio molto difficile da capire: il linguaggio macchina.
Le nom est chiffré. C'est bien beau, mais comment retrouver les informations ? Il suffit de faire le même travail, à l'envers, et faire une soustraction au lieu d'une addition et, quand c'est nécessaire, faire une addition au lieu de faire une soustraction. Cette seconde partie était dans tous les programmes vendus et était inaccessible aux clients parce qu'elle faisait partie du programme qui était lui-même chiffré et compilé dans un langage difficile à comprendre : le langage machine.
Ecco l’esempio completo per decifrare il nome della scuola.
Voici l'exemple complet pour déchiffrer le nom de l'école.
I problemi, i rischi
Les problèmes, les risques
Con questa protezione, c’erano ancora dei rischi? Sì, certo. Ad esempio, qualcuno avrebbe potuto riunire tutti i programmi di una città e confrontare ogni indirizzo con ogni file cifrato per ritrovare la frase segreta (“IL GATTO ROSSO...”).
Avec cette protection, y avait-il encore des risques ? Oui, bien sûr. Par exemple, quelqu'un aurait pu regrouper tous les programmes d'une ville et comparer chaque adresse avec chaque fichier chiffré pour retrouver la phrase secrète « IL GATTO ROSSO… ».
Per questo avevo aggiunto diverse difficoltà:
C'est pour ça que j'avais ajouté des difficulés :
Cifrare i dati in disordine e inserire dei dati inutili (Per prima il codice postale, poi il giorno della crittografia, poi il nome della scuola, poi il mese, poi la città, poi la via, poi le ore, poi il numero della via…)
Registrare un numero calcolato con alcune lettere del nome e dell’indirizzo (Il numero nell’alfabeto della terza lettera del nome, moltiplicato per la quinta cifra del codice postale, diviso per la prima cifra della via… e così via.)
Chiffrer les données en désordre et insérer des données inutiles (En premier le code postal, ensuite le jour du chiffrage, puis le nom de l'école, puis le mois, puis la ville et la rue, puis le numéro de rue… .)
Enregistrer un numéro calculé avec quelques lettres du nom et de l'adresse (La place dans l'alphabet de la troisième lettre du nom, multipliée par le cinquième chiffre du code postal, divisée par le premier chiffre de la rue… et ainsi de suite.)
Senza un codice esatto, il programma non funzionava e così c’erano due cifrazioni da ritrovare.
Sans le code exact, le programme ne fonctionnait pas et ainsi il y avait deux chiffrages à retrouver.
Il risultato
Le résultat
Ha funzionato? Sì. Ha funzionato molto bene perché non ho mai avuto un problema di pirateria. Mai! Devo ammettere che dovevo lottare contro dei colleghi che potevano approfittare di una riunione di professori per copiare dei dischetti senza protezione o dei CDROM, eventualmente dovevo lottare contro un collega furbo che avrebbe potuto trascorrere le sue notti per ritrovare la frase segreta o il metodo per creare il codice, ma non dovevo lottare contro dei pirati professionisti.
Ça a fonctionné ? Oui. Ça a très bien fonctionné parce que je n'ai jamais eu un problème de piratage. Jamais ! Je dois admettre que je devais lutter contre des collègues qui pouvaient mettre à profit une réunion de professeurs pour copier des disquettes sans protection et des CDROM, éventuellement je devais lutter contre un collègue malin qui aurait pu passer ses nuits pour retrouver la phrase secrète ou le moyen de créer le code, mais je ne devais pas lutter contre des pirates professionnels.
Mio figlio ha voluto provare ad hackerare uno dei miei programmi, per sfidarmi. Anche se era già un professionista, ci ha rinunciato presto. C’era troppo lavoro per una cosa che non ne valeva la pena: era meglio e più semplice pagare.
Mon fils a voulu essayer de hacker un de mes programmes, par défi. Même s'il était déjà un professionnel, il y a renoncé rapidement. Il y a avait trop de travail pour une chose qui n'en valait pas la peine : il était préférable et plus simple de payer.
Ho rifatto un esempio in Python
J'ai refait un exemple en Python
Questa pagina è stata modificata il 01.02.25.
auguste@magli.fr .
Cette page a été modifiée le 01.02.25.
auguste@magli.fr .