equal
deleted
inserted
replaced
1 \documentclass{article} |
1 \documentclass{article} |
2 \usepackage{../style} |
2 \usepackage{../style} |
3 \usepackage{../langs} |
3 \usepackage{../langs} |
4 \usetikzlibrary{patterns,decorations.pathreplacing} |
|
5 |
4 |
6 \begin{document} |
5 \begin{document} |
7 |
6 |
8 \section*{Handout 9 (Zero-Knowledge Proofs)} |
7 \section*{Handout 9 (Static Analysis)} |
9 |
8 |
10 Paper about breaking HiTag2 (gave hash, but cannot verify |
9 If we want to improve the safety and security of our programs, |
11 it without giving the paper) |
10 we need a more principled approach to programming. |
|
11 |
|
12 |
|
13 \noindent What would be missing in comparison with real |
|
14 (low-level machine) code? Well, the numbers we assume to be |
|
15 arbitrary precision, which is not the case in real code. There |
|
16 basic number formats have a rang and might over-run or |
|
17 under-run from this range. Our assumption about variables, |
|
18 does not correspond to actual registers, which are only |
|
19 limited on real hardware. Obviously, real code has richer |
|
20 operations than just addition, multiplication and equality. |
|
21 But this are not really essential limitations of our simple |
|
22 examples. |
12 |
23 |
13 \end{document} |
24 \end{document} |
14 |
25 |
15 %%% Local Variables: |
26 %%% Local Variables: |
16 %%% mode: latex |
27 %%% mode: latex |