Dopo aver analizzato e sviluppato il cifrario di Cesare, eccomi oggi con un nuovo metodo di criptazione, il cifrario di Vigenère, un metodo pubblicato nel 1586 e considerato il più semplice tra i cifrari polialfabetici.

Come funziona
Il funzionamento prevede lo scivolamento di ogni singola lettera della frase per un valore chiave, corrispondente al numero ordinale della lettera del verme: si tratta di una lettera che deve esser nota al destinatario del messaggio e che deve essere avere una lunghezza pari a quella della frase da criptare, in caso contrario la si ripeterà fino a raggiungere la lunghezza necessaria:
Testo cifrato : primomaggio
verme : maremaremar
Test criptato: brzqamrksif
Algoritmo in C
Come potete immaginare l´algoritmo non sarà molto diverso da quello del cifrario di Cesare in quanto i due metodi seguono la stessa logica di scivolamento delle lettere.
Rispetto al precedente ho migliorato lo scivolamento e impedito l´inserimento di lettere maiuscole in modo da non allungare troppo il codice.
Vediamolo subito:
#include <stdio.h>#include<stdlib.h>main(){// variabilichar parola[25];char chiave[25];int i,lunghezza_parola,lunghezza_chiave,x,y,valore_ascii,chiave_num;char n;printf("Cifrario di Vigenere");printf("Inserisci la parola da criptare (senza spazi): ");scanf("%s", &parola);printf("Inserisci la chiave: ");scanf("%s", &chiave);// calcolo lunghezza parolafor (x=0; x<sizeof(parola);x++){if(parola[x] == ´