Cerca nel blog

2021/08/20

Podcast del Disinformatico RSI 2021/08/20: Codici QR: brutti, ma astuti e puliti


È disponibile subito il podcast di oggi de Il Disinformatico della Rete Tre della Radiotelevisione Svizzera, condotto dal sottoscritto: lo trovate presso www.rsi.ch/ildisinformatico (link diretto). Questa è l’edizione estiva, dedicata all’approfondimento di un singolo argomento.

I podcast del Disinformatico di Rete Tre sono ascoltabili anche tramite feed RSS, iTunes, Google Podcasts e Spotify.

Buon ascolto, e se vi interessano il testo e i link alle fonti della storia di oggi, sono qui sotto!

Nota: la parola CLIP nel testo che segue non è un segnaposto in attesa che io inserisca dei contenuti. Indica semplicemente che in quel punto del podcast c’è uno spezzone audio. Se volete sentirlo, ascoltate il podcast oppure guardate il video che ho incluso nella trascrizione.

---

CLIP: (in sottofondo) Rumore di apparecchio per tatuaggi

Roy Healy è un ingegnere informatico di Cork, in Irlanda. Nel 2019 ha deciso di farsi fare un tatuaggio un po’ particolare: un codice QR. Uno di quegli onnipresenti quadratini bianchi e neri con puntini messi apparentemente a casaccio che oggi troviamo sui prodotti, sui cartelloni pubblicitari, sulle fatture, sugli scontrini, nei ristoranti al posto del menu cartaceo e anche sui cosiddetti “green pass” (più propriamente “certificati Covid digitali”).

Il signor Healy dubitava che il suo codice QR tatuato sull’avambraccio potesse funzionare, e si era quindi preparato a presentarlo come una “affermazione dell’arroganza del tentativo di mescolare tecnologia e biologia”, ma ha scoperto con piacere che il codice è perfettamente leggibile nonostante sia disegnato su una superficie così irregolare ed elastica come la pelle. Il suo codice QR contiene un link che porta di volta in volta al suo blog, al suo profilo LinkedIn o alle regole di un gioco, come spiega in un’intervista al New York Times.

Molti trovano i codici QR insopportabilmente brutti e li chiamano “vomito di robot”. Ma belli o brutti che siano, indubbiamente funzionano, costano pochissimo e sono sorprendentemente resistenti. Questa è la storia della loro nascita e di come una semplice chiazza di puntini riesce a creare un ponte fra il mondo reale e quello digitale.

---

SIGLA

La storia dei codici QR inizia in Giappone nel 1994, come evoluzione dei codici a barre. Prima che arrivassero i codici a barre, gli addetti alle casse dei supermercati erano costretti a digitare a mano, uno per uno e per ore di fila, i prezzi di ciascuno dei prodotti acquistati dai clienti. Risultato: sindrome del tunnel carpale diffusissima, con dolori e perdita di sensibilità alle mani.

CLIP: registratore di cassa vecchio stile

L’introduzione dei codici a barre, che potevano essere letti dal registratore di cassa usando un semplice scanner, alleviò moltissimo il problema oltre a ridurre le code alle casse.

CLIP: registratore di cassa moderno

I codici a barre, però, potevano contenere poche informazioni: una ventina di caratteri alfanumerici al massimo. In Giappone serviva un modo per poter rappresentare anche i caratteri Kanji e Kana, e così Masahiro Hara, che lavorava presso la Denso, una società del gruppo Toyota, sviluppò il codice QR. Le lettere “QR” significano Quick Response, ossia “risposta rapida”, perché il codice QR è in sostanza un codice a barre più capiente e più veloce da leggere.

Questa velocità maggiore è consentita da un paio di trucchi tecnici. 

Attenzione: state per entrare in zona nerd. Tra pochi minuti saprete anche troppo sui codici QR, ma non vi preoccupate: potrete sempre usare queste conoscenze come arma segreta per troncare qualunque conversazione indesiderata. Se qualcuno attacca bottone con voi in treno o in aereo e non vi lascia in pace, lanciatevi in un’appassionata dissertazione sui dettagli del funzionamento dei codici QR. La persona che vi sta scocciando si pentirà rapidamente di avervi importunato.

Detto questo, prendete un codice QR, uno qualsiasi, e guardatelo. Sembra un caos indecifrabile, ma in realtà contiene molti elementi che anche noi umani possiamo decodificare.

Un codice QR mostra i tre quadrati che formano il finder pattern. Credit: Wikipedia.

Per esempio, noterete subito che il codice QR contiene tre quadrati con un quadratino al centro, che delimitano tre dei quattro angoli del codice. Questi quadrati fanno capire allo scanner (o all’app di lettura presente nel vostro smartphone) che in quella zona c’è un codice QR. I quadrati sono tre e non quattro per consentire allo scanner di capire come è orientato il codice e quindi in quale direzione vada letto. Masahiro Hara scelse proprio un quadrato con un quadratino al centro, invece di un’altra forma, perché era quella che più difficilmente poteva comparire per altri motivi su una confezione, un documento o un modulo: lo scoprì in maniera manuale, passando giorni e giorni a sfogliare riviste, volantini e scatole di ogni genere in cerca di forme semplici che non comparissero mai.

Nel codice QR c’è spesso anche un altro quadratino, più piccolo, a volte presente in più di un esemplare: serve per consentire allo scanner di correggere la distorsione dell’immagine se il codice viene visto di sbieco o è stampato su una superficie non piatta, come l’avambraccio tatuato del signor Healy. E se guardate bene troverete anche un altro schema nascosto: gli angoli più interni dei tre quadrati di orientamento sono collegati da una riga e una colonna di puntini alternati bianchi e neri perfettamente regolari, a differenza di tutto il resto dei puntini.

Il timing pattern. Credit: Pillazo.

Anche questa riga e questa colonna servono allo scanner per capire le dimensioni e proporzioni del codice e correggerne le distorsioni di inquadratura. Altre informazioni sul formato e sul tipo di dati sono indicate nelle righe e colonne adiacenti ai quadrati di riferimento. Insomma, c’è molto ordine nel caos apparente di questi puntini.

Tutto questo è molto ingegnoso, certo, ma il secondo trucco è quello più potente. Provate a coprire un angolo di un codice QR, oppure prendetene uno stampato male o danneggiato: lo scanner riuscirà quasi sempre a decodificare lo stesso il contenuto del codice. È come avere un libro magico nel quale una pagina di cui una parte è stata strappata via riesce comunque a mostrarvi le parole mancanti.

Credit: Wikipedia.

Questa umile macchia d’inchiostro riesce a sopravvivere a molti danneggiamenti perché usa la correzione d’errore: della matematica piuttosto complessa, sviluppata nel 1960 da Irving Reed e Gustave Solomon presso un centro di ricerca militare del MIT, in Massachusetts, che include nella mappa di puntini alcuni dati di controllo. Questi dati dicono cosa ci deve essere scritto nei puntini precedenti. Se quei puntini non sono leggibili, per esempio perché sono stati danneggiati, cancellati o coperti, la correzione d’errore permette di ricostruire l’informazione mancante. Questo è molto utile negli ambienti nei quali si usano i codici QR, che sono soggetti a graffi, ammaccamenti, cancellazioni e abrasioni.

Semplificando moltissimo, immaginate che i dati da proteggere siano i numeri 1, 3, 5 e 11: la correzione d’errore aggiunge l’informazione “il totale dei numeri precedenti deve essere 20” e quindi se uno dei numeri risulta illeggibile è possibile dedurlo. Questo è solo un esempio grossolano: la matematica della correzione d’errore nei codici QR è molto, molto più complessa, ma il concetto di base è lo stesso. 

Resistenza ai danni e matematica militare: niente male, per un semplice quadratino stampato, vero?

Questa correzione d’errore ha anche una conseguenza estetica poco conosciuta: siccome i dati registrati nei codici QR sono appunto ricostruibili anche se il codice è parzialmente danneggiato, è possibile produrre dei “danneggiamenti” artistici: per esempio, si può inserire un logo al centro o in un angolo del codice per personalizzarlo o abbellirlo, oppure si possono cambiare alcuni colori o inserire dei simboli all’interno dei quadratini di riferimento, e il codice risulterà leggibile lo stesso. 

Il prezzo di questa miglioria estetica è una minore resistenza dei codici QR “artistici” ai danneggiamenti, ma se l’ambiente in cui vengono usati non è troppo ostile è un compromesso accettabile.

I codici QR possono inoltre contenere moltissime informazioni: fino a 7089 numeri oppure 4296 caratteri alfanumerici o 1817 simboli Kanji o Kana. Per fare un esempio concreto, due soli codici QR conterrebbero tutte le parole di questo podcast. Un bel passo avanti, rispetto alla ventina di caratteri dei vecchi codici a barre.

Robusto, capiente, compatto, economico e facile da stampare ovunque e da leggere con gli smartphone: non sarà un capolavoro di estetica, ma il codice QR fa bene il proprio lavoro e inquina molto meno delle soluzioni alternative, come per esempio i microchip usa e getta. Soprattutto, ci dà un’occasione per scoprire quanta complessità matematica e informatica c’è dietro gli oggetti apparentemente più semplici che usiamo tutti i giorni. 

 

Fonti aggiuntive: Gizmodo, SecurePass, QR Code Generator, Britannica, Forbes.

Nessun commento: