Skip to content
Licensed Unlicensed Requires Authentication Published by De Gruyter Oldenbourg December 1, 2011

An Introduction to Certifying Algorithms

Zertifizierende Algorithmen: Eine Einführung
  • Eyad Alkassar , Sascha Böhme , Kurt Mehlhorn , Christine Rizkallah and Pascal Schweitzer

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.


* 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

© by Oldenbourg Wissenschaftsverlag, Saarbrücken, Germany

Downloaded on 27.4.2024 from https://www.degruyter.com/document/doi/10.1524/itit.2011.0655/html
Scroll to top button