Algoritmi e crittografia - Prima di tutto, prima di procedere e iniziare a vantarmi di me stesso e convertire questo blog in una noiosa conversazione di lato, facciamo prima capire cosa sono gli algoritmi e come sono correlati alla crittografia.

Algoritmi e crittografia

algoritmi

Per quelli di voi che pensano che l'algoritmo sia collegato solo all'informatica, si sbaglia. L'algoritmo è un metodo o una formula per risolvere un problema. E quando dico problema, può essere qualsiasi tipo di problema, che si tratti di formule matematiche, scientifiche o persino basate su computer. Lascia che ti dia un semplice

Esempio:

(A + b) 2 = a 2 + 2ab + b 2

Oppure può essere come:

Importo maturato = Principale (1 + ROI * 100 * tempo)

Sì! Tutto ciò che è una formula può essere preso come un algoritmo. Un algoritmo è un insieme di regole per la risoluzione di un problema che, se eseguito correttamente, fornirà una risposta corretta ogni volta. Gli algoritmi generalmente comportano la ripetizione di una serie di passaggi ripetuti, come negli algoritmi di prestito e trasporto e nei lunghi algoritmi di moltiplicazione e divisione. Gli algoritmi includono una varietà di addizioni, sottrazioni, moltiplicazioni e divisioni.

Ma prima di iniziare a pensare che sto prendendo una specie di lezione di matematica qui, lascia che ti dica che non lo sono. Sono qui per parlare di algoritmi e crittografia relativi all'informatica. Ma prima di procedere, lascia che ti dia alcuni esempi di semplici algoritmi per iniziare.

Questi esempi sono per uguali puri che non hanno mai fatto alcun tipo di roba algoritmica in tutta la loro vita. Quindi, se pensi di essere abbastanza intelligente, puoi passare alla sezione successiva della crittografia in cui vorrei introdurre nuovamente alcune nozioni di base prima di passare al livello successivo.

Quindi, ecco alcuni esempi di algoritmi di addizione, che ti faranno iniziare per ora e ti daranno un'idea di come sono gli algoritmi. Cominciamo con la matematica di base:

Algoritmi di aggiunta da sinistra a destra:

A partire da sinistra, aggiungi colonna per colonna e regola il risultato.

Per alcune persone questo processo diventa così automatico che iniziano a sinistra e scrivono la risposta colonna per colonna, adattandosi mentre procedono senza scrivere passaggi intermedi. Se viene chiesto di spiegare, dicono qualcosa del genere:

200 più 400 è 600, ma (guardando la colonna successiva) ho bisogno di aggiustarlo, quindi scrivi 7. Quindi, 60 e 80 sono 140, ma questo deve essere modificato, quindi scrivi 5. Ora, 8 e 3 sono 11, non c'è più niente da fare, scrivere 1. Questa tecnica si sviluppa facilmente da esperienze con manipolatori, come blocchi e denaro di base 10, e scambi o scambi di giochi, ed è coerente con i modelli da sinistra a destra appresi per leggere e scrivere.

Ora alcune persone possono andare pazzi per leggere questo. Quindi, potresti aver bisogno di Google queste cose per avere un'idea precisa di cosa sta succedendo esattamente qui.

Crittografia

La crittografia è un'arte di scrivere codici in un modo non umano leggibile. È un metodo per archiviare e trasmettere i dati in una forma particolare in modo che solo quelli a cui sono destinati possano leggerli ed elaborarli. Puoi dire che la crittografia è una cugina stretta delle discipline della crittografia e della crittoanalisi.

La crittografia include tecniche come microdot, fusione di parole con immagini e altri modi per nascondere le informazioni in archivio o in transito. Tuttavia, nel mondo odierno incentrato sui computer, la crittografia è spesso associata alla confusione del testo in chiaro (testo normale, a volte indicato come testo in chiaro) in testo cifrato (un processo chiamato crittografia), quindi di nuovo (noto come decrittazione). Gli individui che praticano questo campo sono noti come crittografi.

La crittografia è stata utilizzata per molte migliaia di anni. I seguenti codici e cifre possono essere appresi e utilizzati per crittografare e decrittografare i messaggi manualmente:

A) Cipher monoalfabetici:

La cifra monoalfabetica utilizza la stessa sostituzione nell'intero messaggio. Ad esempio, se sai che la lettera A è codificata come lettera K, ciò sarà valido per l'intero messaggio. Questi tipi di messaggi possono essere decifrati utilizzando l'analisi della frequenza, ipotesi istruite o prove ed errori.

1. Ceaser Cipher

Un codice Caesar è uno dei metodi di crittografia più semplici (e più facili da decifrare). È un cifrario sostitutivo che prevede la sostituzione di ogni lettera del messaggio segreto con una diversa lettera dell'alfabeto, che è un numero fisso di posizioni più avanti nell'alfabeto.

Poiché ogni lettera nel messaggio ha una traduzione diretta in un'altra lettera, l'analisi della frequenza può essere utilizzata per decifrare il messaggio. Ad esempio, la lettera E è la lettera più comunemente usata in lingua inglese.

Pertanto, se la lettera più comune in un messaggio segreto è K, è probabile che K rappresenti E. Inoltre, anche le desinenze di parole comuni come ING, LY ed ES forniscono indizi. Un approccio a forza bruta nel provare tutte e 25 le possibili combinazioni funzionerebbe anche per decifrare il messaggio.

In questo esempio, ogni lettera nel messaggio in chiaro è stata spostata di 3 lettere in basso nell'alfabeto.

Testo normale : questo è un messaggio segreto

Testo cifrato : wklv lv d vhfuhw phvvdjh

2. Cifra Atbash

La cifra di Atbash è un caso molto specifico di una cifra di sostituzione in cui le lettere dell'alfabeto sono invertite. In altre parole, tutti vengono sostituiti con Z, tutti i Bs vengono sostituiti con Y e così via.

Poiché invertendo due volte l'alfabeto otterrai effettivamente l'alfabeto, puoi crittografare e decifrare un messaggio utilizzando lo stesso algoritmo.

Esempio:

Testo normale : questo è un messaggio segreto

Testo cifrato : Gsrh rh z hvxivg nvhhztv

La cifra delle parole chiave è identica alla cifra di Cesare con l'eccezione che l'alfabeto di sostituzione utilizzato può essere rappresentato con una parola chiave.

Per creare un alfabeto di sostituzione da una parola chiave, devi prima scrivere l'alfabeto. Sotto questo si annota la parola chiave (omettendo le lettere duplicate) seguita dalle rimanenti lettere non utilizzate dell'alfabeto.

ABCDEFGHIJKLMNOPQRSTUVWXYZ

KEYWORDABCFGHIJLMNPQSTUVXZ

Per crittografare un messaggio in chiaro, converti tutte le lettere dalla riga superiore alla lettera corrispondente nella riga inferiore (da A a K, da B a E, ecc.).

L'uso dell'analisi della frequenza e alcune ipotesi ponderate possono facilmente decifrare questi tipi di semplici cifre di sostituzione.

4. Pigpen / Masonic Cipher

La cifra pigpen (a volte chiamata cifra massonica o cifra di Massone) è una semplice cifra di sostituzione che scambia lettere con simboli basati su una griglia. Lo schema fu sviluppato e utilizzato dai massoni all'inizio del 1700 per la tenuta dei registri e la corrispondenza. Il tasto di esempio mostra un modo in cui le lettere possono essere assegnate alla griglia.

B) Cipher polialfabetici:

In un codice polialfabetico, la sostituzione può cambiare durante il messaggio. In altre parole, la lettera A può essere codificata come lettera K per parte del messaggio, ma in seguito potrebbe essere codificata come lettera W.

Corsi consigliati

  • Formazione su XML
  • Corso di formazione per esami CCNA
  • Formazione completa su SO UNIX e Linux
  • Pacchetto di formazione HTML 5

1. Vigenere Cipher

In un Caesar Cipher, ogni lettera dell'alfabeto viene spostata lungo un certo numero di posti; per esempio, in una cifra di Cesare del turno 3, A diventerebbe D, B diventerà E e così via. Il codice Vigenere consiste nell'utilizzare diversi numeri di Cesare in sequenza con diversi valori di spostamento.

Per codificare, è possibile utilizzare una tabella di alfabeti, definita tabula recta, piazza Vigenere o tabella Vigenere. È costituito dall'alfabeto scritto 26 volte in file diverse, ogni alfabeto spostato ciclicamente a sinistra rispetto all'alfabeto precedente, corrispondente alle 26 possibili cifre di Cesare. In diversi punti del processo di crittografia, la cifra utilizza un alfabeto diverso da una delle righe. L'alfabeto utilizzato in ciascun punto dipende da una parola chiave ripetuta.

Ad esempio, supponiamo che il testo in chiaro da crittografare sia:

ATTACKATDAWN

La persona che invia il messaggio sceglie una parola chiave e la ripete finché non corrisponde alla lunghezza del testo in chiaro, ad esempio la parola chiave "LEMON":

LEMONLEMONLE

Ogni lettera viene codificata trovando l'intersezione nella griglia tra la lettera in chiaro e la lettera della parola chiave. Ad esempio, la prima lettera del testo in chiaro, A, viene codificata usando l'alfabeto nella riga L, che è la prima lettera della chiave. Questo viene fatto osservando la lettera nella riga L e la colonna A del quadrato di Vigenere, vale a dire L. Analogamente, per la seconda lettera del testo in chiaro, viene utilizzata la seconda lettera della chiave; la lettera nella riga E e nella colonna T è X. Il resto del testo in chiaro è codificato in modo simile:

Testo normale : ATTACKATDAWN

Chiave : LEMONLEMONLE

Testo cifrato : LXFOPVEFRNHR

Trovare la posizione della lettera in testo cifrato in una riga della tabella e quindi prendere l'etichetta della colonna in cui appare come testo in chiaro eseguire la decrittazione. Ad esempio, nella riga L, il testo cifrato L appare nella colonna A, che ha assunto la prima lettera in chiaro. Cercare X nella riga E della tabella decodifica la seconda lettera; appare nella colonna T, che è presa come lettera in chiaro.

Un codice Gronsfeld è identico al codice Vigenere con l'eccezione che vengono utilizzate solo 10 righe, che consente alla parola chiave di essere un numero anziché una parola.

steganografia

La steganografia è in realtà la scienza di nascondere le informazioni alle persone che vorrebbero curiosare con te. La differenza tra questo e la crittografia è che gli aspiranti ficcanaso potrebbero non essere in grado di dire che ci sono informazioni nascoste in primo luogo.

Ad esempio, i file di immagine in genere contengono molto spazio inutilizzato. Questo spazio potrebbe essere utilizzato per inviare messaggi nascosti. Se fai ricerche sulla crittografia, potresti vedere il termine steganografia usato occasionalmente. Tuttavia, non si tratta di una vera crittografia (sebbene possa ancora essere abbastanza efficace) e, come tale, la menziono solo qui per completezza.

Quindi, fondamentalmente se vuoi iniziare a praticare la crittografia, il modo migliore per iniziare sarebbe iniziare a risolvere algoritmi e testo cifrato insieme a Steganography. Anche se la steganografia può sembrare facile e non è una vera crittografia, è ancora una delle crittografie più utilizzate quando si tratta di basi e quando è necessario codificare qualcosa in pochissimo tempo e nel miglior modo possibile.

Prima fonte di immagini: pixabay.com

Articoli consigliati

Ecco alcuni articoli che ti aiuteranno a ottenere maggiori dettagli sugli algoritmi e la crittografia, quindi basta passare attraverso il link.

  1. Strutture di dati e algoritmi Domande di intervista | Il più utile
  2. 8 domande e risposte di intervista sull'algoritmo eccezionale
  3. La scelta migliore linguaggi di programmazione per l'apprendimento di algoritmi
  4. 10 migliori strutture dati e algoritmi C ++ | Nozioni di base

Categoria: