Abstract
An unexpected outcome from an open project to develop a ‘chaotic’ compiler for ANSI C is described here: a trace information entropy calculus for stochastically compiled programs. A stochastic compiler produces randomly different object codes every time it is applied to the same source code. This calculus quantifies the entropy introduced into run-time program traces by a compiler that aims for the maximal possible entropy, furnishing a definition and proof of security for encrypted computing (Turing-complete computation in which data remains in encrypted form throughout), where the status was formerly unknown.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Signed 2s complement comparison is translation-invariant. I.e., \(x{<}y\) \(~\mathrm {iff}~\) \(x{+}k{<}y{+}k\).
- 2.
Entropy is formally the stochastic expectation \(H = -E[\log _2 p_i]\) of the probability \(p_i\) of the possible observations i, thus \(H = - \sum \limits _i p_i \log _2 p_i\) with \(0 \le p_i\le 1\) and \(H\ge 0\).
- 3.
‘Success’ is stochastic: the method has probability of being right on each bit that beats chance by a (‘non-negligible’) margin B that does not tend to 0 as \(n{\rightarrow }\infty \).
- 4.
For readability here, the final delta in register v0 is set to zero.
- 5.
C code: \(\mathbf{int}~\mathsf{A}(\mathbf{int}~\mathsf{m},\mathbf{int}~\mathsf{n})~\{~\mathsf{if}(\mathsf{m}{=}0) \textsf {return}~\mathsf{n}{+}1;~\mathsf{if}(\mathsf{n}{=}0) \textsf {return}~\mathsf{A}(\mathsf{m}{-}1, 1); \textsf {return}~\mathsf{A}\) \((\mathsf{m}{-}1, \mathsf{A}(\mathsf{m}, \mathsf{n}{-}1));~\}\).
References
Breuer, P.T., Bowen, J.P.: A fully homomorphic crypto-processor design: correctness of a secret computer. In: Jürjens, J., Livshits, B., Scandariato, R. (eds.) ESSoS 2013. LNCS, vol. 7781, pp. 123–138. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36563-8_9
Breuer, P., Bowen, J.: Chaotic compilation: a (statistical) cloak for a secret computer. In: Proceedings of 1st Annual International Workshop SW/HW Interaction Faults (SHIFT 2019), IEEE International Symposium on SW Reliability Engineering Workshops (ISSREW 2019), CA, USA, pp. 428–433. IEEE, October 2019. https://doi.org/10.1109/ISSREW.2019.00106
Breuer, P., Bowen, J.: A fully encrypted high-speed microprocessor architecture: the secret computer in simulation. Int. J. Crit. Comput.-Based Sys. 9(1/2), 26–55 (2019). https://doi.org/10.1504/IJCCBS.2019.10020015
Breuer, P., Bowen, J.: (Un)encrypted computing and indistinguishability obfuscation, January 2019. http://arxiv.org/abs/1811.12365v1. Principles of Secure Compilation (PriSC 2019) at 46th ACM Symposium on Principles of Programming Languages (POPL 2019)
Breuer, P., Bowen, J., Palomar, E., Liu, Z.: A practical encrypted microprocessor. In: Callegari, C., et al. (eds.) Proceedings of 13th International Conference on Security and Cryptography (SECRYPT 2016), Port, vol. 4, pp. 239–250. SCITEPRESS, July 2016. https://doi.org/10.5220/0005955902390250
Breuer, P., Bowen, J., Palomar, E., Liu, Z.: On obfuscating compilation for encrypted computing. In: Samarati, P., et al. (eds.) Proceedings of 14th International Conference on Security and Cryptography (SECRYPT 2017), Port, pp. 247–254. SCITEPRESS, July 2017. https://doi.org/10.5220/0006394002470254
Breuer, P.T., Bowen, J.P., Palomar, E., Liu, Z.: On security in encrypted computing. In: Naccache, D., et al. (eds.) ICICS 2018. LNCS, vol. 11149, pp. 192–211. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-01950-1_12
Breuer, P., Bowen, J., Palomar, E., Liu, Z.: Superscalar encrypted RISC: the measure of a secret computer. In: Proceedings of 17th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom 2018), pp. 1336–1341. IEEE Computer Society (2018). https://doi.org/10.1109/TrustCom/BigDataSE.2018.00184
Conway, J.H.: FRACTRAN: a simple universal programming language for arithmetic. In: Cover, T.M., Gopinath, B. (eds.) Open Problems in Communication and Computation, pp. 4–26. Springer, Heidelberg (1987). https://doi.org/10.1007/978-1-4612-4808-8_2
van Dijk, M., Gentry, C., Halevi, S., Vaikuntanathan, V.: Fully homomorphic encryption over the integers. In: Gilbert, H. (ed.) EUROCRYPT 2010. LNCS, vol. 6110, pp. 24–43. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-13190-5_2
Fletcher, C.W., van Dijk, M., Devadas, S.: A secure processor architecture for encrypted computation on untrusted programs. In: Proceedings of 7th ACM Workshop on Scalable Trusted Computing (STC 2012), pp. 3–8. ACM, New York (2012). https://doi.org/10.1145/2382536.2382540
Gentry, C.: Fully homomorphic encryption using ideal lattices. In: Proceedings of 41st Annual ACM Symposium on Theory of Computing (STOC 2009), NY, USA, pp. 169–178 (2009). https://doi.org/10.1145/1536414.1536440
Gentry, C., Halevi, S.: Implementing gentry’s fully-homomorphic encryption scheme. In: Paterson, K.G. (ed.) EUROCRYPT 2011. LNCS, vol. 6632, pp. 129–148. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-20465-4_9
Goldwasser, S., Micali, S.: Probabilistic encryption & how to play mental poker keeping secret all partial information. In: Proceedings of Annual ACM Symposium on Theory of Computing (STOC 1982), pp. 365–377. ACM (1982). https://doi.org/10.1145/800070.802212
Goldwasser, S., Micali, S.: Probabilistic encryption. J. Comput. Syst. Sci. 28, 270–299 (1984)
den Hartog, J.I.: Verifying probabilistic programs using a hoare like logic. In: Thiagarajan, P.S., Yap, R. (eds.) ASIAN 1999. LNCS, vol. 1742, pp. 113–125. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-46674-6_11
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969). https://doi.org/10.1145/363235.363259
Irena, F., Murphy, D., Parameswaran, S.: CryptoBlaze: a partially homomorphic processor with multiple instructions and non-deterministic encryption support. In: Proceedings of 23rd Asia and South Pacific Design Automation Conference (ASP-DAC 2018), pp. 702–708. IEEE (2018)
ISO/IEC: Programming languages - C. 9899:201x Technical report, n1570, International Organization for Standardization, August 2011. JTC 1, SC 22, WG 14
Morgan, C., McIver, A., Seidel, K.: Probabilistic predicate transformers. ACM Trans. Prog. Lang. Syst. (TOPLAS) 18(3), 325–353 (1996). https://doi.org/10.1145/229542.229547
Shannon, C.E.: A mathematical theory of communication. Bell Syst. Tech. J. 27(3), 379–423 (1948). https://doi.org/10.1002/j.1538-7305.1948.tb01338.x
Sundblad, Y.: The Ackermann function: a theoretical, computational, and formula manipulative study. BIT Numer. Math. 11(1), 107–119 (1971)
Tsoutsos, N.G., Maniatakos, M.: The HEROIC framework: encrypted computation without shared keys. IEEE TCAD IC Syst. 34(6), 875–888 (2015)
Yao, A.C.C.: How to generate and exchange secrets. In: 27th Annual Symposium on Foundations of Computer Science, pp. 162–167. IEEE (1986). https://doi.org/10.1109/SFCS.1986.25
Acknowledgments
Simon Pickin’s work has been supported by the Spanish MINECO-FEDER (grant numbers DArDOS, TIN2015-65845-C3-1-R and FAME, RTI2018-093608-B-C31). Peter Breuer thanks Hecusys LLC for continued support in encrypted computing research.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Breuer, P.T., Pickin, S.J. (2020). A Calculus of Chaos in Stochastic Compilation. In: Sekerinski, E., et al. Formal Methods. FM 2019 International Workshops. FM 2019. Lecture Notes in Computer Science(), vol 12233. Springer, Cham. https://doi.org/10.1007/978-3-030-54997-8_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-54997-8_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-54996-1
Online ISBN: 978-3-030-54997-8
eBook Packages: Computer ScienceComputer Science (R0)