High-level algorithms and data structures requirements for security-by-contract on Java cards