Jump to ContentJump to Main Navigation
Show Summary Details
More options …

it - Information Technology

Methods and Applications of Informatics and Information Technology

Editor-in-Chief: Conrad, Stefan / Molitor, Paul

Online
ISSN
2196-7032
See all formats and pricing
More options …
Volume 53, Issue 6

Issues

An Introduction to Certifying Algorithms

Eyad Alkassar / Sascha Böhme / Kurt Mehlhorn / Christine Rizkallah / Pascal Schweitzer
Published Online: 2011-12-01 | DOI: https://doi.org/10.1524/itit.2011.0655

Abstract

A certifying algorithm is an algorithm that produces, with each output, a certificate or witness that the particular output is correct. A user of a certifying algorithm inputs x, receives the output y and the certificate w, and then checks, either manually or by use of a program, that w proves that y is a correct output for input x. In this way, he/she can be sure of the correctness of the output without having to trust the algorithm. We put forward the thesis that certifying algorithms are much superior to non-certifying algorithms, and that for complex algorithmic tasks, only certifying algorithms are satisfactory. Acceptance of this thesis would lead to a change of how algorithms are taught and how algorithms are researched. The widespread use of certifying algorithms would greatly enhance the reliability of algorithmic software. We also demonstrate that the formal verification of result checkers is within the reach of current verification technology. The combination of certifying algorithms and formal verification of result checkers leads to formally verified computations.

Zusammenfassung

Ein zertifizierender Algorithmus liefert zusätzlich zur gewöhnlichen Ausgabe ein Zertifikat, welches beweist, dass die gelieferte Ausgabe korrekt ist. Ein Benutzer des zertifizierenden Algorithmus erhält bei Eingabe x nicht nur eine Ausgabe y, sondern zusätzlich das Zertifikat w. Der Benutzer überprüft nun, entweder von Hand oder mit Hilfe eines Programmes, ob das Zertifikat w tatsächlich beweist, dass y eine korrekte Ausgabe bei Eingabe x ist. Der Benutzer kann dadurch der Korrektheit der Ausgabe sicher sein, selbst wenn er der Korrektheit des Algorithmus misstraut. Wir behaupten, dass zertifizierende Algorithmen nicht-zertifizierenden Algorithmen weit überlegen sind, und dass für komplexe algorithmische Berechnungen nur zertifizierende Algorithmen adäquat sind. Daher sollte der Begriff Teil der Informatikausbildung sein und als Prinzip des Algorithmenentwurfs gelehrt werden. Die konsequente Verwendung von zertifizierenden Algorithmen erhöht die Verlässligkeit von Software deutlich. Wir zeigen, dass mit heutiger Verifikationstechnologie das Verifizieren von Ergebnischeckern im Bereich des Möglichen liegt. Die Kombination von zertifizierenden Algorithmen und formaler Verfikation ermöglicht formal verifizierte Berechnungen.

Keywords: certifying algorithms; Software Engineering; Programmverifikation; zertifizierende Algorithmen

About the article

* Correspondence address: Max-Planck-Institut für Informatik, Campus E1 4, 66132 Saarbrücken, Deutschland,


Published Online: 2011-12-01

Published in Print: 2011-12-01


Citation Information: it - Information Technology Methoden und innovative Anwendungen der Informatik und Informationstechnik, Volume 53, Issue 6, Pages 287–293, ISSN (Print) 1611-2776, DOI: https://doi.org/10.1524/itit.2011.0655.

Export Citation

© by Oldenbourg Wissenschaftsverlag, Saarbrücken, Germany.Get Permission

Comments (0)

Please log in or register to comment.
Log in