- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种出具证明编器中汇编级断言和证明的生成方法
摘要
摘要
随着计算机科学的迅速发展,软件规模日益庞大。现在人们在考虑软件执行
效率的I司时,也越来越关注其安全性(Safety)。高可信软件的研究致力于使用前沿
的技术和工具来提高计算机软件的安伞性。程序验证是一种构建高可信软件的方
法,它的原理是使用数学方法来严格证明程序行为符合其预定规范,从而保证程
序的安全性。程序验证可以对源代码进行,也可以对汇编代码进行。源代码级别
的验证更易于程序员的理解和参与,但是由于普通编译器的低可靠性,编译器不
Source
能保证由经过验证的源代码(CertifiedCode)生成的汇编代码仍然满足预定
的安全规范。汇编级别的验证虽然能保证生成的汇编代码的安全性,但是如果是
手工编写汇编代码、书写断言、交互式完成证明,则代价过高,开发效率低。因
此一种比较理想的方法是在源代码级别进行验证,然后通过出具证明编译器
(CertifyingCompiler)自动生成经过验证的汇编代码。
本文首先介绍了国内外基于程序性质证明的软件安全的相关研究以及出具证
明编译的研究,然后介绍笔者所参与的项目CComp的整体框架模型:CComp是
一个类C语言的出具证明编译器原型,它在将带有规范标注的源代码编译成汇编
代码的同时,还能产生汇编代码满足相应规范的Coq可检查证明,从而保证汇编
代码的安伞性。
该出具证明编泽器包括:编译器前端、源级验证条件生成器、源级自动定理
证明器、汇编代码生成器、汇编级断言生成器、汇编级证明生成器以及汇编级验
证框架。本文的主要上作集中在后面三个部分,主要研究如何自动生成汇编代码
满足规范的证明,其中包括:如何复用源级自动定理证明器产生的证明以及如何
生成汇编级所特有的性质的证明。
本文在已有的验证框架的荩础上提出了一种Hoare风格的汇编级验证框架,
并在此框架下定义了断言语言,提出一种新的汇编级断言和证明的生成方法,实
现了汇编级断言生成器和汇编级证明生成器,从而保证在同一个汇编级验证框架
下,实现证明的自动生成。
关键词:程序验证携带证明代码出具证明编译器汇编级验证
Abstract
ABSTRACT
Asthe of scaleofsoftwareis and
developingcomputerscience,the larger
moreandmoreattentiononthe ofsoftware.H
larger.Peoplepay safety igh—confidence
on and
softwareis new tools methodto the of
working edge-cutting improvesafety
verificationworksonhowto thebehaviorof
computersoftware.Program prove
satisfies mathematical
program predeterminedspecificationbyusing knowledge.
verificationcanbedonebothon and
sourcecode source
Program assemblycode.Verify
codeismucheasierto
文档评论(0)