Iniziamo guardando le tastiere e i set di lingue per capire che funzionano. Innanzitutto, abbiamo ASCII che è il modo in cui sei abituato ai caratteri salvati. ASCII è una codifica , che mappa i singoli caratteri in una combinazione binaria. Nel computing moderno, siamo abituati all'idea che un byte sia lungo 8 bit, ma varie implementazioni hardware (specialmente decenni fa) hanno utilizzato altre dimensioni .
Ma per ora, stabiliamoci con l'idea che il mondo usi byte da 8 bit. L'inglese è facile perché puoi inserire facilmente tutti i simboli e punteggiatura predominante in 7 bit di spazio. Tuttavia altri linguaggi di caratteri latini come il francese hanno simboli importanti ma mancanti in questo spazio. Per gestirlo, entrano in gioco altre rappresentazioni oltre ASCII come ISO 8859-15 (Latin-9) . Considera che se hai usato il simbolo ¾ durante la scrittura con la codifica Latin-1, si visualizzerebbe come Ÿ in Latin-9
Tuttavia, nulla consente di limitare l'utilizzo di un solo byte per la definizione di un simbolo. In effetti, puoi vedere la differenza nel mio esempio sopra (un simbolo 3/4 e una Y con una diaeresi su di esso) se hai Unicode funzionante correttamente. Unicode è in grado di visualizzarlo utilizzando tabelle dei simboli più lunghe sotto forma di UTF-16 o UTF-32 . In tal caso, un simbolo potrebbe essere lungo 2 o 4 byte, ma avere un significato.
Con le lingue asiatiche, dove i simboli sono più basati sui concetti piuttosto che basati sulle lettere, questo non funziona altrettanto bene per lo spazio, quindi Unicode è particolarmente utile. In entrambi i casi, però, le codifiche interessano davvero solo l'elemento umano. Una volta che li hai inviati via cavo, il computer non sta comparando per vedere se hai inserito ¾ o Ÿ, sta controllando per vedere se il valore binario è 10111110. Quindi, è solo il display che conta. Lo stesso valore va giù a prescindere da chi lo ha scritto, e in effetti qualcuno in Francia probabilmente vedrà un aspetto diverso da quello che sentirò e premerà tasti diversi sulla tastiera per crearlo. Di fatto, per ogni lingua sono disponibili tutti i tipi di layout di tastiera .
Quindi, dato che tutto è solo un byte, il malware funziona allo stesso modo. Per quanto riguarda i trojan, devono essere scritti nella lingua dell'utente a cui stanno mirando (ricorda, un trojan finge di essere qualcosa di utile), ma funzionano ugualmente.
Per quanto riguarda la forzatura bruta, il tempo è un fattore del numero di simboli provati. Quindi è possibile utilizzare la forza bruta (specialmente tramite dizionario) in qualsiasi codifica se si utilizza tutto lo spazio binario e molto più rapidamente se si conosce il dizionario delle voci valide da provare.