Que son os bits de entropía, e por que non che damos unha porcentaxe

Publicado o por David Carrero

Unha porcentaxe de fortaleza é unha opinión con dous decimais.

Cando unha web che di que o teu contrasinal é «un 92 % seguro», a pregunta evidente é: un 92 % de que? Cal é o 100 %? Non existe. Ninguén publicou o contrasinal perfecto contra o que se mide o resto. Ese número sae dunha regra de tres que alguén improvisou un martes —tantos puntos pola maiúscula, tantos polo símbolo— e o seu único traballo real é poñerche a barriña verde para que sigas adiante.

Os bits, en cambio, significan sempre exactamente o mesmo. E significan algo que podes usar.

Un bit é unha pregunta de si ou non

A idea enteira cabe nunha frase: cada bit dobra o número de intentos que precisa alguén que non sabe nada de ti.

Un bit son dúas posibilidades. Dous bits son catro. Tres, oito. Dez bits son 1.024 e vinte bits son algo máis dun millón. A conta non sobe, duplícase, e duplicar é o que fai que a intuición caia por un barranco.

Por iso a frase «40 bits é o dobre de bo ca 20» é falsa dun xeito case gracioso. Entre 20 e 40 bits hai vinte duplicacións, é dicir, un factor de 2²⁰: 40 bits non é o dobre ca 20, é un millón de veces máis. E 60 bits non é o triplo ca 20: é un millón de veces máis ca 40. A nosa cabeza le esa escala coma se fose unha regra de medir, e non o é. É unha escala coma a dos terremotos ou a dos decibelios, onde un pasiño pequeno no número é un salto brutal na realidade.

Esa é toda a vantaxe do bit sobre a porcentaxe. A porcentaxe dache unha sensación. O bit dache unha cantidade de traballo.

De onde sae a palabra

A palabra entropía aplicada á información vén dun artigo de 1948: A Mathematical Theory of Communication, de Claude Shannon.

Convén dicilo con precisión, porque se cita mal a miúdo: Shannon non estaba a pensar en contrasinais. Non había contrasinais de ordenador que paguen a pena mencionar. Estaba a traballar en Bell Labs sobre un problema moi distinto —canta información transporta de verdade unha mensaxe, e canto se pode comprimir antes de rompela— e precisaba medir algo escorregadizo: a incerteza de quen está do outro lado.

O seu achado, dito a machada, é que a información e a sorpresa son a mesma cousa. Unha mensaxe que xa sabías non che informa de nada. Unha mensaxe imposible de anticipar infórmate moitísimo. A entropía mide canta sorpresa hai na fonte que produce as mensaxes, e mídese en bits.

Que iso sirva para contrasinais é case un accidente afortunado. Un contrasinal é, exactamente, unha mensaxe que ten que ser imposible de anticipar.

O cadeado de rodiñas

Aquí está a única fórmula do artigo, e prometo que sae de balde:

H = L × log₂(N)

Esquece o logaritmo un momento e pensa nun deses cadeados de bicicleta con rodiñas. Tes dúas maneiras de complicárllela a quen queira abrilo:

  • Poñer máis rodiñas. Iso é a lonxitude (L): cantos caracteres ten o teu contrasinal.
  • Poñer máis símbolos en cada rodiña. Iso é o alfabeto (N): se cada roda leva só as dez cifras, ou as 26 letras, ou letras e números e signos.

O logaritmo só fai unha cousa: traducir «cantos símbolos leva unha roda» a «cantos bits achega esa roda». Unha roda de 26 letras achega uns 4,7 bits. Unha roda cos 95 caracteres imprimibles do teclado achega uns 6,6.

E aí está o chiste. Fíxate en onde está cada cousa na fórmula. O alfabeto está dentro do logaritmo, esmagado; a lonxitude está fóra, multiplicando.

Case cuadriplicar os símbolos de cada roda —de 26 letras a 95 caracteres— mércache menos de dous bits por roda. Engadir unha roda máis mércache un log₂(N) enteiro, outra vez, e outra, e outra. Por iso doce letras minúsculas e nada máis (uns 56 bits) gáñanlle a oito caracteres con maiúsculas, números e símbolos deses que esixen os formularios (uns 53). O P@ssw0rd perde contra cabalocorrectobateriagrampa e non está nin preto.

O NIST, na súa SP 800-63B, chegou ao mesmo sitio por outro camiño: tirou pola borda as regras de composición —unha maiúscula, un número, un símbolo— e quedou coa lonxitude e con comprobar o contrasinal contra listas de filtrados. Convén non poñerlle na boca o que non di: o seu argumento non é este da fórmula, senón que obrigar á xente a meter un símbolo non a volve impredicible, só a volve predicible doutra maneira. De feito, o propio documento desconfía de estimar a entropía dun contrasinal elixido por unha persoa. Dous razoamentos distintos, a mesma conclusión. A complexidade obrigatoria traballa dentro do logaritmo. A lonxitude traballa fóra.

A letra pequena que case ninguén conta

Hai unha trampa, e é a parte honesta de todo isto: a entropía non mide o teu contrasinal, mide o proceso que o creou.

4$Kp!9zQ non ten eses 53 bits porque se vexa difícil. Tenos se —e só se— saíu dun sorteo verdadeiramente ao azar entre as 95 teclas. Se o escribiches ti tratando de parecer aleatorio, a fórmula non aplica: ti non es un sorteo. Pos a maiúscula a primeira, o número ao final e o símbolo é un !. Quen te ataca non proba as 95 opcións de cada posición: proba primeiro as que fan as persoas.

De aí sae a asimetría incómoda da seguridade de contrasinais. A entropía é un teito, non un chan. Se o xera unha máquina, o teito é real. Se o elixes ti, o único que sabes é que estás por debaixo, e non sabes canto.

Por iso hai dúas ferramentas e non unha. O xerador sortea de verdade e por iso pode ensinarche os bits coa cara seria: sabe cantas rodiñas ten (L), sabe cantos símbolos leva cada unha (N) e fai a multiplicación diante de ti. Se moves o desprazador e ves subir a cifra, estás vendo a L empurrar. O comprobador, en cambio, non pode facer iso cun contrasinal que xa existe: non ten nin idea de como naceu, así que fai o único sensato, que é buscalo en dicionarios, nomes e patróns de teclado e supoñer o peor.

O que hai que levar

Tres frases:

  • Un bit é unha duplicación. Dez bits máis é mil veces máis traballo; vinte bits máis, un millón.
  • A lonxitude multiplica, o alfabeto apenas suma. Engadir unha palabra vale máis ca engadir un signo de exclamación.
  • Os bits só valen se o azar é de verdade. Unha máquina pode prometelos. Ti, escribindo a man, non.

Shannon buscaba canta sorpresa cabe nunha mensaxe. Setenta e tantos anos despois, resulta que esa era xusto a pregunta correcta para un contrasinal: non se parece complicado, senón canta sorpresa leva dentro para quen non te coñece de nada.


Fontes: C. E. Shannon, «A Mathematical Theory of Communication», Bell System Technical Journal, 1948 · NIST SP 800-63B, Digital Identity Guidelines (Authentication and Lifecycle Management) · o xerador de password.es, que calcula H = L × log₂(N) e mostra L, N e os bits resultantes.

← Volver ao blog