The publisher has revised the electronic copy of the book, and all the errata in the first printing have been fixed. But the printed version still has the errors, because it will not be updated until the second printing.
Here are the errata for the next revision. I have added the name of the first person to report each problem.
In Definition 1–2, “a security policy” should be “part of a security policy”. This is more precise, and consistent with Definition 4–7.
In Definition 3–14, condition 2, “a/r:c ∈ crc(a, b)” should be “a/r:c ∈ crp(a, b)” (note the subscript of cr should be p, not c).
In Definition 4–20, delete the word “distinct” in the first line.
In item 2 of Axiom 8.6, “o′ ≠ O” should be “o′ ∈ O” and “l2(o′) = l2(v(o))” should be “l2(o′) ≠ l2(v(o))”
Definition 8–11 should be “The active role of a subject s, written actr(s), is the set of roles that s is currently performing.” This makes clear that the active roles form a set.
In the third line of Definition 8–16, “(∃r′′ ≥ r)” should be “(∃r′′ ≤ r)”. In the last line of that definition, “(r2, r1)” should be “(r1, r2)”.
In the example, the transitive closure of the access set X∪Y should include ( Lilith, Alice ).
On the fourth line of the second full paragraph, change “01101” to “01100”.
Exercise 9.6 should begin with “Suppose in” rather than simply “In”.
In the second line in the second full paragraph on this page, “onfusion” should be “confusion”.
In the first line under the first example in this section, “e < n” should be “e < φ(n)”.
The first sentence of the last paragraph should have a footnote following it that says “The value of g should be chosen to be a primitive root modulo p”.
The seventh line of the example should end in 1001.
In the third line from the bottom of Table 12–1, “AES-123” should be “AES-128”.
On lines 3 to 4 in the paragraph under the first example, the phrase “easy for humans to solve, but difficult for humans to solve” should be “easy for humans to solve, but difficult for computers to solve” (the second “human” should be “computers”).
In the second line before the next section, 13.5, “iportant” should be “important”.
At the end of the first full paragraph, “(see Exercise 2)” should be “(see Exercise 8)”.
In the first line, change “tmp to x” to “tmp to y”.
In Exercise 1, change “H(ys || xt)” to “H(ys | xt)” (there should only be one “|” character).
In the second line above Specification 18.2, change “canrread” to “can_read”.
In Specification 18.2, change both “∨” to “∧” and delete both “¬”s.
In the next to the last line of text on the page, change “and” to “or”.
In Figure 18–4, change “Indirect recognition” to “Inferred recognition”.
In Figure 18–6, change “Indirect recognition” to “Inferred recognition”.
In Figure 18–7, change both occurrences of “Indirect recognition” to “Inferred recognition”.
On the last line, change “(1 − q)n” to “(1 − qn)”.
In the shell script, the line “chmod o+s,w+x /tmp/.xxsh” should be “chmod u+s,o+x /tmp/.xxsh”.
In Figure 24–11, in the oval at the bottom, change “deststr” to “dststr”.
The algorithm in pseudocode fails when a is a multiple of b; it returns 1 rather than b. The following is the correct algorithm.
function gcd(a : integer, b : integer) : integer; var q, r : integer; begin while b <> 0 do begin q := a div b; r := a mod b; write 'a = ', a, 'b = ', b, 'q = ', q, 'r = ', r, endline; a := b; b := r; end; gcd := a; write 'the gcd is ', gcd, endline; end.
In the first line of the last equation, the second “−” should be deleted.
“An expert is a man who has made all the mistakes which can
be made in a very narrow field.”
—Niels Bohr
Last updated on Friday, March 19, 2021 at 11:57:07 AM |