Siempre me ha interesado el campo de la criptografía, me gustan
especialmente los métodos llamados "de lápiz y papel" que posiblemente no
sean prácticos hoy en día pero son...digamos que entretenidos y asequibles
sin grandes conocimientos de matemáticas.
Mi opinión personal es que ciertos métodos tradicionales dándoles un pequeño
giro y tratándose de mensajes entre un número pequeño de personas podrían
ser bastante seguros.
El caso es que hoy leo en Microsiervos[1] que hay una página que te permite
generar tarjetas de contraseñas como las de los bancos y me parece una buena
idea aunque la implementación que hace la página que citan no me gusta
tanto.
Me planteo hacer una versión propia, tendría varias filas de caracteres
alfanuméricos y coordenadas para filas y columnas de esa manera para
referirte a una clave concreta sólo dirías: 10 caracteres a partir de E2 por
ejemplo.
Algo así:
ABCDE ...
---------------
1| sde4+
2| 1ErG7
3| ...
4| ...
Luego hay que pensar como producir un PDF y que la tarjeta resultante tenga
un tamaño adecuado para tu cartera por ejemplo.
# Actualización, unas horas después tengo algo que produce esto:
A B C D E F G H I J K L M N O P Q R S T
-- - - - - - - - - - - - - - - - - - - - -
0 w j j w v c d J j a E a 4 b s c z d u V
1 C G y Y N d B B m K i B n I W 5 1 e m f
2 1 3 1 5 Y F K y I L x H W n 1 Y J r I J
3 i m v b p n M 9 j Z i z c + x I n n u Z
4 y I A 4 7 L s h w R t R p P n Z u O M s
5 n 6 Q F v T 2 w n u z b L m i P b w / P
6 l O b z 4 s Y C P b 4 0 o F U E k o a 7
7 G P b u P o K 1 6 B U O X l b d d i L 0
8 o N K p c C X s u P L C x 6 w e o u Y 9
9 5 m / Q N i / / y i g / 2 I Z 4 0 8 f p
10 G I i 7 H / H e u 3 2 Y s + I D L h 6 j
11 / G i n o U 7 I T 0 w P c z s 6 9 6 7 1
12 y C H k U s u 9 P v m e H t G C T i d 1
13 C u w a F C 2 t 6 2 e x 5 / o i u x u z
14 d Z y r J u + 8 F z r b I A A j 5 y X 8
15 b n 6 4 W U Z S v S 6 e 0 f q p n Y Q 9
16 u d d C Y O j / t 9 N 5 C T R c G M U K
17 X T S p u H c i 4 z D G o 2 0 d d y 9 V
18 X 6 x 4 o h 3 z S 0 f o s H s y n Z Y y
19 9 M 7 s u b R G i o o c p Q Y L h Q 9 P
Ahora sólo tienes que imprimirla y decidir en qué coordenada empiezas y cómo
y cuanto te mueves para tener tu clave. Por ejemplo G8, diez horizontales
sería la clave XsuPLCx6we con 60 bits de entropía.
Las letras se obtienen codificando en base64 la salida del módulo "secrets"
de Python así cada letra tiene 6 bits y todo el cuadro podría producir una
clave de 20x20x6=2400 bits.
Si otra persona y tu os ponéis de acuerdo sobre la forma de obtener una
clave y su longitud (por ejemplo siguiendo una espiral a partir de la
casilla de salida) bastaría con comunicarse por un medio inseguro dichas
coordenadas (obviamente la tarjeta de claves en sí habría que compartirla en
persona).
¿Sugerencias?
[1]
https://www.microsiervos.com/archivo/seguridad/passwordcard-seguridad-domestica.html