Researchers have developed a new way to hide secret messages in plain sight. The system, dubbed FontCode, works by altering the shape of font in a given text in a way that is imperceptible to the reader – and, it works for just about any common font.
While it isn’t detectable to human eyes, the messages hidden in a FontCode text would be instantly spotted by a computer, meaning they could work like invisible barcodes or QR codes.
‘Changing any letter, punctuation mark, or symbol into a slightly different form allows you to change the meaning of the document,’ says lead author Chang Xiao.
‘This hidden information, though not visible to humans, is machine-readable just as barcodes and QR codes are instantly readable by computers.
‘However, unlike barcodes and QR codes, FontCode doesn’t mar the visual aesthetics of the printed material, and its presence can remain secret.’
According to the computer scientists at Columbia Engineering who invented the system, it works by ‘perturbing’ the letters in a text – or altering their shape (stroke width, height, curves, etc) – to encode a message.
This can be used to embed text, metadata, URLs, and digital signatures into a text document or image. And, this works for both digital and print formats.
‘While there are obvious applications for espionage, we think FontCode has even more practical uses for companies wanting to prevent document tampering or protect copyrights, and for retailers and artists wanting to embed QR codes and other metadata without altering the look or layout of a document,’ says Changxi Zheng, associate professor of computer science and the paper’s senior author.
The researchers say the technique can be done with most font families, including Times Roman, Helvetica, and Calibri. According to the computer scientists at Columbia Engineering who invented FontCode, it works by ‘perturbing’ the letters in a text – or altering their shape (stroke width, height, curves, etc) – to encode a message. The process requires a secret message and a ‘carrier document.’
FontCode first converts the message to a bit string, then a sequence of integers – each of which is assigned to a five-letter block within the regular text to correspond with numbered locations from the codebook.
To recover the secret message, FontCode can use a digital file or photo of the document to match each letter with the perturbation in the codebook using a convolutional neural network.
Then, it reconstructs the original message
Recovering hidden messages is the reverse process. From a digital file or from a photograph taken with a smartphone, FontCode matches each perturbed letter to the original perturbation in the codebook to reconstruct the original message.