Esiste una funzione crittografica che genera uno schema visivo riconoscibile?

0

Devo costruire un sistema che alla fine stampi un passaggio che consenta l'accesso a un edificio. La convalida di questo ticket verrà eseguita manualmente (può anche essere automatica ma non è probabile in questa fase). C'è la possibilità che la persona che controlla non abbia accesso a un computer per convalidarlo.

L'idea è di stampare uno schema riconoscibile per il giorno.

Ho iniziato a pensare a un hash, ma non funzionava. Quindi ho pensato ad una crittografia simmetrica in cui la chiave generasse modelli diversi. Ma non ha molto senso.

L'unica richiesta è che la persona che controlla il modello possa riconoscerla. Questo schema cambierebbe in base giornaliera o settimanale.

So che potrebbero essere oggetto di attacchi di replay, ma per ora sarebbe sufficiente.

    
posta nsn 01.06.2015 - 10:11
fonte

2 risposte

4

Ignorerò l'orribile problema di usabilità in questa risposta e concentrerò solo sulla domanda del titolo qui.

-

Un'idea è quella di generare un'impronta visiva come impronta visiva OpenSSH . Le impronte digitali OpenSSH Visual producono caratteri ASCII che sono presumibilmente un po 'memorabili e possono essere rapidamente confrontati visivamente.

Se vuoi essere un po 'stravagante, c'è il Estetodo estetico . Esteticodes come Penguin Barcode può essere scansionato, è distintivo ed esteticamente gradevole ed è abbastanza facile da confrontare visivamente senza una macchina. Il problema è che esteticodi sono brevi e la maggior parte dei esteticodi sono generati manualmente; devi essere in grado di generare proceduralmente queste immagini se hai intenzione di farlo ogni giorno.

    
risposta data 01.06.2015 - 16:10
fonte
2

C'è una risposta banale: decidi una password giornaliera, stampala su un pass e hai esattamente il sistema che stai descrivendo: un "pattern" che è stampato su un supporto fisico, che può essere controllato da un umano essere senza alcun dispositivo o hardware aggiuntivo.

Se sei disposto a leggere un po 'il requisito, c'è una tecnica chiamata " visual cryptography " che fa qualcosa un po 'simile ma richiede anche che la persona che esegue la convalida abbia accesso a un determinato componente hardware (in questo caso, una maschera trasparente che - che può essere stampata quando necessario)

L'articolo di Wikipedia collegato ha un buon esempio di un simile algoritmo:

There is a simple algorithm for binary (black and white) visual cryptography that creates 2 encrypted images from an original unencrypted image. The algorithm is as follows: First create an image of random pixels the same size and shape as the original image. Next, create a second image the same size and shape as the first, but where a pixel of the original image is the same as the corresponding pixel in the first encrypted image, set the same pixel of the second encrypted image to the opposite color. Where a pixel of the original image is different than the corresponding pixel in the first encrypted image, set the same pixel of the second encrypted image to the same color as the corresponding pixel of the first encrypted image. The two apparently random images can now be combined using an exclusive-or (XOR) to re-create the original image.

Questa semplice tecnica ha diversi svantaggi, tuttavia: in primo luogo, chiunque abbia accesso a un pass di accesso valido può riprodurlo molto facilmente, anche senza comprendere il codice. in secondo luogo, è necessario distribuire la maschera di convalida a tutti ogni volta che si genera una nuova password di accesso. In terzo luogo, tutti gli accessi sono equivalenti.

Ci sono più avanzati algoritmi che sono più flessibili (per esempio, che useranno una singola maschera per generare un output diverso a seconda dell'ingresso che, a sua volta, potrebbe essere usato per discriminare i diversi diritti di accesso o rendere semplice ogni passaggio di accesso unico).

    
risposta data 01.06.2015 - 10:36
fonte

Leggi altre domande sui tag