Design principles for crypto