Calcolo inverso del codice omocodico
Decodificare un codice omocodico è la decodifica normale con un passaggio in più, all’inizio: riportare le lettere sostitutive alle cifre che hanno rimpiazzato. Fatto questo, anno, mese, giorno, sesso e luogo si leggono esattamente come in qualunque altro codice. La pagina mostra il passaggio in più, che è anche l’unico punto in cui un decodificatore ingenuo sbaglia.
Il decodificatore della home riconosce le lettere sostitutive da solo e ritraduce prima di leggere i dati.
Prima la verifica, poi la lettura
L’ordine dei passaggi non è negoziabile, e vale la pena dirlo esplicitamente perché è dove la maggior parte degli errori nasce. Il carattere di controllo si ricalcola sul codice così com’è arrivato, lettere sostitutive incluse: è così che il codice omocodico risulta valido. Solo dopo, e separatamente, si ritraducono le lettere per leggere i dati. Chi inverte l’ordine — prima cifra, poi controllo — ottiene un controllo che non torna e conclude, sbagliando, che il codice è falso.
La ritraduzione lettera-cifra
La tavola è la stessa della sostituzione, letta al contrario. Vale solo per le sette posizioni numeriche: una L trovata in posizione 14 è una cifra 0, ma la stessa L in posizione 9 è il mese di luglio e in posizione 1 fa parte del cognome.
La corrispondenza è biunivoca — ogni lettera torna a una cifra e una sola — quindi la ritraduzione non richiede interpretazioni. La tavola completa con entrambe le direzioni sta nella tabella di sostituzione dell’omocodia.
Quanto è omocodico un codice
Poiché la sostituzione procede da destra, il livello si legge direttamente dalle posizioni occupate dalle lettere:
| Livello | Posizioni | Che cosa si vede |
|---|---|---|
| 1 | 15 | una sola lettera, nell’ultima posizione numerica |
| 2 | 14, 15 | due lettere consecutive in fondo al blocco del comune |
| 3 | 13, 14, 15 | tutta la parte numerica del comune è lettere |
| 4+ | 11, 13, 14, 15… | la sostituzione risale nel blocco del giorno; casi rarissimi |
Oltre il terzo livello si entra in territorio raro: servono due persone con gli stessi sei caratteri iniziali, lo stesso sesso, la stessa data e lo stesso comune di nascita, e poi un’altra coppia ancora. Esistono, ma un codice con il blocco del giorno pieno di lettere merita una verifica formale prima di fidarsi alla cieca.
Un esempio per intero
Partiamo da RSSMRA85M01H5LMT, il codice con due sostituzioni costruito nella pagina della tabella.
| Passo | Che cosa succede |
|---|---|
| 1 | Controllo ricalcolato sul codice così com’è: l’ultima lettera è T, e T è esattamente ciò che il calcolo restituisce. Il codice è formalmente valido. |
| 2 | Posizioni numeriche: la 14 porta L, la 15 porta M. Due lettere in fondo al blocco del comune: secondo livello di sostituzione. |
| 3 | Ritraduzione: L torna 0, M torna 1. Il blocco del comune torna H501: Roma. |
| 4 | Lettura dei dati sul codice normalizzato RSSMRA85M01H501Q: anno ’85, mese M è agosto, giorno 01, uomo, nato a Roma. |
Il dato finale è identico a quello del codice originario: l’omocodia ha cambiato la scrittura, non la persona. Per questo la lista dei dati che un codice rivela vale anche per quelli omocodici, senza eccezioni.
La trappola del controllo
Il contesto completo — perché i codici omocodici esistono, chi li riceve, come si risolve un caso reale all’Agenzia delle Entrate — sta nell’introduzione all’ omocodia.
Provalo tu
Incolla RSSMRA85M01H50MI nel riquadro: è il codice a un solo livello di sostituzione. Il decodificatore verifica il controllo I, ritraduce la M finale in 1 e legge i dati. Confronta il risultato con quello del codice senza sostituzioni: coincidono.
Domande frequenti
Fonte: DM 23 dicembre 1976 per l’algoritmo di codifica e la regola di sostituzione · circolari dell’Agenzia delle Entrate sulle omocodie. Gli esempi sono verificati ricalcolando il carattere di controllo a ogni livello di sostituzione. Fonti e metodo