We develop a new approach for building cryptographic implementations. Our approach goes the last mile and delivers assembly code that is provably functionally correct, protected against side-channels, and as efficient as hand-written assembly. We illustrate ur approach using ChaCha20-Poly1305, one of the mandatory ciphersuites in TLS 1.3, and deliver formally verified vectorized implementations which outperform the fastest non-verified code. We realize our approach by combining the Jasmin framework, which offers in a single language features of high-level and low-level programming, and the EasyCrypt proof assistant, which offers a versatile verification infrastructure that supports proofs of functional correctness and equivalence checking. Neither of these tools had been used for functional correctness before. Taken together, these infrastructures empower programmers to develop efficient and verified implementations by "game hopping", starting from reference implementations that are proved functionally correct against a specification, and gradually introducing program optimizations that are proved correct by equivalence checking. We also make several contributions of independent interest, including a new and extensible verified compiler for Jasmin, with a richer memory model and support for vectorized instructions, and a new embedding of Jasmin in EasyCrypt.


翻译:我们开发了一个新的方法,用于建立加密实施。我们的方法是最后一英里,提供功能正确、防侧通道保护的组装代码,并像手写装配一样高效。我们用ChaCha20-Polly1305(TLS 1.3中强制性密码器之一)来说明方法,并交付经正式核实的矢量化实施,其效果超过最快的未经核实的代码。我们通过将Jasmin框架(提供高层次和低层次编程的单一语言特征)和EasyCrypt验证助理(提供多功能核查基础设施,支持功能正确性和等值检查的证明)来实现我们的方法。我们用这些工具来说明如何使用Chach20-Polly1305(TLS 1.1.3中强制性密码器件之一)来说明方法,并交付经正式核实的矢量化实施,这些执行比最快的编码要好。我们通过将Jasmin框架(提供高层次和低层次编程的单一语言特征)和简洁的校准验证助理(提供多功能正确性核查工具)提供多种独立的兴趣,包括新的和可保存的校准的校准的校准的校准的校准的校准的校准的校正的校准工具。这些工具以前,这些工具都没有的模型和较型的模型。加固的模型,这些模型的模型的模型和制式的模型制。加固的模型制。加固的模型和制式的模型,加固的模型。

0
下载
关闭预览

相关内容

机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
知识图谱本体结构构建论文合集
专知会员服务
106+阅读 · 2019年10月9日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
条件GAN重大改进!cGANs with Projection Discriminator
CreateAMind
8+阅读 · 2018年2月7日
随波逐流:Similarity-Adaptive and Discrete Optimization
我爱读PAMI
5+阅读 · 2018年2月6日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
The Measure of Intelligence
Arxiv
6+阅读 · 2019年11月5日
Single-frame Regularization for Temporally Stable CNNs
Generalization and Regularization in DQN
Arxiv
6+阅读 · 2019年1月30日
Arxiv
6+阅读 · 2018年11月29日
Arxiv
8+阅读 · 2018年11月27日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
6+阅读 · 2018年2月7日
VIP会员
相关资讯
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
条件GAN重大改进!cGANs with Projection Discriminator
CreateAMind
8+阅读 · 2018年2月7日
随波逐流:Similarity-Adaptive and Discrete Optimization
我爱读PAMI
5+阅读 · 2018年2月6日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
相关论文
The Measure of Intelligence
Arxiv
6+阅读 · 2019年11月5日
Single-frame Regularization for Temporally Stable CNNs
Generalization and Regularization in DQN
Arxiv
6+阅读 · 2019年1月30日
Arxiv
6+阅读 · 2018年11月29日
Arxiv
8+阅读 · 2018年11月27日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
6+阅读 · 2018年2月7日
Top
微信扫码咨询专知VIP会员