Systemy automatycznego wykrywania asercji pozwalają na znalezienie szeregu własności badanego oprogramowania poprzez jego analizę w trakcie pracy. W artykule zaproponowano metodę podniesienia wiarygodności wykrywanych asercji poprzez powiązanie ich ze śladem wykonania programu. Zdefiniowano pojęcie asercji ze śladem. Przedstawiono proces automatycznego wykrywania tego typu asercji oraz metody pozwalające na ich weryfikację podczas działania badanego programu. Omówiono wybrane wyniki eksperymentów związane z wykrywaniem asercji ze śladem oraz ich wykorzystaniem w detekcji błędów.
EN
Assertions dynamic detection algorithms are designed to ?nd different types of dependences in programs based only on information collected through using a program execution without static analysis. Speci?city of those algorithms and limited quantity of data to analyze needs to investigate the usage principle of discovered dependences for software dependability increase. This article introduces techniques for increasing ef?ciency of detected assertions through using program execution trace. Concepts of a trace and an assertion with trace were de?ned. The work describes methods of automatic assertion with trace detection and verification during program execution. For several applications experiments results have been presented.
The paper deals with the problem of evaluating of the operation of software implemented cryptographic algorithms in the presence of transient faults. For this purpose we use an original fault simulator. We have also proposed fault-hardening schema to increase dependability of cryptographic techniques. They were verified in many experimental studies.
PL
Praca przedstawia analizę wrażliwości oprogramowania implementującego popularne algorytmy kryptograficzne na błędy przemijające. Wykorzystywany w tym celu jest oryginalny system wstrzykiwania błędów. Rozdział 2 omawia analizowane algorytmy kryptograficzne, DES i RSA, również w kontekście różnych ich implementacji komercyjnych (biblioteki kryptograficzne). Użyty w pracy system symulatora błędów (o nazwie FITS) zaprezentowano w rozdziale 3. W sposób automatyczny przeprowadza on serie wykonań aplikacji testowanej, podczas których generuje pojedynczy błąd w wybranych zasobach systemu w ramach kontekstu testowanej aplikacji. Symulator obserwuje wpływ wygenerowanego błędu na wykonywanie się testowanej aplikacji (m.in. odnotowuje wystąpienie sytuacji wyjątkowych, komunikatów od aplikacji [15, 16]) i dokonuje automatycznej oceny poprawności ewentualnego wyniku jej działania (w tym przypadku weryfikuje zaszyfrowaną wiadomość). W rozdziale 4 przedstawiono wrażliwość na błędy implementacji podstawowych analizowanych algorytmów (bez jakichkolwiek mechanizmów detekcji lub tolerowania błędów - tab. 1). Wartym podkreślenia jest fakt, iż oprócz błędnych szyfrogramów zaobserwowano też przypadki krytyczne, w których nastąpił wypływ (częściowy lub całkowity) szyfrowanego komunikatu w wiadomości wynikowej. W kolejnym kroku zaproponowano więc sposoby programowego uodpornienia algorytmów na analizowane błędy (rys. 1). Zostały one zweryfikowane eksperymentalnie, potwierdzając skuteczność zaproponowanej metody zabezpieczenia (tab. 2, 3).
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.