Když by útočník obsah keyfiles neznal, tak to pochopitelně je velmi silné - keyfiles se stávají (náhodným) klíčem místo passwordu: Na uvedeném linku je možné zjistit to, co jste zjistil vy. A tedy keyfiles se zpracují do 64 bajtů (to je onen zlomek vteřiny navíc), které znamenají náhodnou masku. Maska se pak naxoruje na password, eventuelně doplněný do 64 bajtů nulami. Jakýkoliv i slabý password se tak stane velmi silným (prakticky) náhodným klíčem o 512 bitech.
Účelem toho cvičení s keyfiles je tedy ze slabého passwordu udělat silný tím, že se k passwordu ještě xoruje ona Maska. Soubory keyfiles se proto musí utajit, jinak útočník Masku vypočte jen jednou a pak je to pro něj pouhá konstanta do luštícího programu, kterou nemusí počítat pro každý nově zkoušený password.
O něco lepší by bylo o tyto soubory (zpracovává se z nich jen 1 MByte) rozšířit sůl. Nebo vypočítat klíč z passwordu a soli tradičně bez keyfiles a poté skutečný_klíč = hash(klíč, keyfiles). V tomto případě musí útočník pro každý nový password načíst a zhašovat celý soubor keyfiles znovu. A to je podstatný rozdíl v náročnosti luštění.
Je to miniaturní připomínka. Účelem keyfiles je zřejmě pouze umožnit externí vstup passwordu (jakožto náhodného binárního souboru) z nějakého média (z USB, ze sítě,...) a zabránit keyloggerům odchytit password. Jediné, co bych TrueCryptu mohl vytknout je, že by měl nějak výrazněji a jednodušeji užiateli napovědět, k čemu jsou keyfiles dobré (nebo ho donutit číst manuál).
Pokud jsou keyfiles uloženy na hard disku, pak mají menší smysl (to je ale u domácích PC právě běžné). Většinou to bude adresář nebo jeden soubor. Útočník tak může zkoušet všechny do úvahy připadající praktické možnosti kombinací souborů.