Пришла мне в голову мысль, что большинство современных систем безопасности (компьютерой и не только) построены по запретительному принципу. Как, например, замок на дверях. В своем обычном состоянии дверь свободно открывается, но замок мешает ей открыться. Или система пароля в *nix. login, su, sudo используются именно в качестве замка, не допускающего свободный запуск оболочки. И взломав замок, можно получить доступ в квартиру, оболочку итд.
А вот с шифрованием наоборот. Там система шифрования - единственное, что может дать доступ к данным. Если приводить аналогию с реальным миром, это сродни карте, позволяющей пройти из точки A в точку B. И испортив карту, ты не только не попадешь быстрее, а возможно и вообще не сможешь попасть в нужное место (если не добудешь новую карту).
Потому, на мой взгляд, было бы куда безопаснее делать операционную систему (оболочку) именно по такому принципу. Чтобы без пароля она вообще была неработоспособной.
UPD: Как самый простой вариант реализации подобного принципа: хешируем пароль, полученный хэш используем для инициализации массива указателей на функции. И функции в теле программы-оболочки вызываем не напрямую, а через массив указателей на них. Соотв, при неправильной инициализации оболочка не будет работать. Из недостатков такого метода можно сразу указать необходимость подгона алгоритма под заданный хэш, усложенение кода функций (чтобы запуск неверной функции не приводил к переполнению стека, записи в невыделенную память итд), и многие другие.