Typed Assembler for a RISC Crypto-Processor
Our general purpose crypto-processor runs RISC machine code in an encrypted environment, reading encrypted inputs and generating encrypted outputs while maintaining data encrypted in memory. Its intended use is secure remote processing. However, program addresses are processed unencrypted, resulting in a mix of encrypted and unencrypted data in memory and registers at any time. An aspect of compiling for it is typing the assembler code to make sure that those instructions that expect encrypted data always get encrypted data at execution time, and those that expect unencrypted data get unencrypted data. A type inference system is specified here and transformed into an executable typing algorithm, such that a type-checked asembler program is guaranteed type-safe.
Unable to display preview. Download preview PDF.
- 1.Breuer, P.T.: Encrypted data processing, patent pending, UK Patent Office GB1120531.7 (November 2011)Google Scholar
- 3.Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proc. 4th ACM Symposium on the Principles of Programming Languages, pp. 238–252. ACM (1977)Google Scholar
- 5.Oliva, D., Buchty, R., Heintze, N.: AES and the cryptonite crypto processor. In: Proc. CASES 2003: International Conference on Compilers, Architecture and Synthesis for Embedded Systems. ACM (2003)Google Scholar
- 7.Sun, M.C., Su, C.P., Huang, C.T., Wu, C.W.: Design of a scalable RSA and ECC crypto-processor. In: Proc. ASP-DAC 2003: Asia and South Pacific Design Automation Conference. ACM (2003)Google Scholar