From 0e60284641c44717286b4008061dda7359929d71 Mon Sep 17 00:00:00 2001 From: Christoph Fuerst Date: Sat, 25 Mar 2017 10:23:19 +0100 Subject: [PATCH] Initial revision of report --- report/formal.pdf | Bin 0 -> 44059 bytes report/formal.tex | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 report/formal.pdf create mode 100644 report/formal.tex diff --git a/report/formal.pdf b/report/formal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ff3840899724f83f8ef637a8deb4f2d82244ef6 GIT binary patch literal 44059 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 z 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 bD+fnCdq-FMkL)lru`#j1lamX}h`|33(=@c7 literal 0 HcmV?d00001 diff --git a/report/formal.tex b/report/formal.tex new file mode 100644 index 0000000..626f3a6 --- /dev/null +++ b/report/formal.tex @@ -0,0 +1,38 @@ +\documentclass[a4paper,10pt]{scrartcl} +\usepackage[utf8]{inputenc} +\usepackage{listings} +%opening +\title{Formal Verification of Algorithms arising in Cryptography} +\author{Christoph F\"urst\qquad Wolfgang Schreiner\\ Research Institute for Symbolic Computation (RISC) Linz} +\date{\today} + +\begin{document} + + + +\maketitle + +\begin{abstract} +We present a formal verification of algorithms that are used +in applied Cryptography. Classic cryptographic algorithms rest +on the mathematical field of number theory, where abstract +mathematical problems are presented and algorithms to solve +them are discussed. This mathematical preliminaries are then +used to ensure secure encryption of secret messages. We prove +formal correctness by considering concrete implementations and +use the recently developed verification system {\rm RISCAL} to +prove exactness of the treated algorithms. We present the theories +developed in RISCAL, and put them into context of formal verification +systems. +\end{abstract} + +\section{Introduction} + +\section{Mathematical and Cryptographic Preliminaries} + +\section{The Formal Verification} + +\appendix +\section{Listing of the developed Theory} + +\end{document} -- 2.1.4