View
238
Download
0
Embed Size (px)
Citation preview
Digital Signatures, Font Files, and Recursion
Illustrated Examples
Original signed file
0 1 2 3 4 5 6 7
red nodes indicate hash values in the signed file
Subsetted signed file
0 1 2 3 4 5 6 7
subsetted file contains glyphs 0, 1, and 2
Further subsetted file
0 1 2 3 4 5 6 7
further subsetted file contains just glyph 1
Illustration of subsetting glyphs 0, 1, and 2
0 1 2 3 4 5 6 7
black highlightednodes indicate thecurrent recursive call
return h(0, 0).do not emit.
red: smallest glyph in file not processed yetblue: smallest glyph in output file not processed yet
Illustration (slide 2)
0 1 2 3 4 5 6 7
return h(1, 1).do not emit.
Illustration (slide 3)
0 1 2 3 4 5 6 7
return h(0, 1).do not emit.
Illustration (slide 4)
0 1 2 3 4 5 6 7
return h(2, 2).do not emit.
Illustration (slide 5)
0 1 2 3 4 5 6 7
return h(3, 3).emit h(3, 3).
Illustration (slide 6)
0 1 2 3 4 5 6 7
return h(2, 3).do not emit.
Illustration (slide 7)
0 1 2 3 4 5 6 7
return h(0, 3).do not emit.
Illustration (slide 8)
0 1 2 3 4 5 6 7
return h(4, 4).do not emit.
Illustration (slide 9)
0 1 2 3 4 5 6 7
return h(5, 5).do not emit.
Illustration (slide 10)
0 1 2 3 4 5 6 7
return h(4, 5).do not emit.
Illustration (slide 11)
0 1 2 3 4 5 6 7
return h(6, 6).do not emit.
Illustration (slide 12)
0 1 2 3 4 5 6 7
return h(7, 7).do not emit.
Illustration (slide 13)
0 1 2 3 4 5 6 7
return h(6, 7).do not emit.
Illustration (slide 14)
0 1 2 3 4 5 6 7
return h(4, 7).emit h(4, 7).
Illustration (slide 15)
0 1 2 3 4 5 6 7
copy h(0, 7) from original file to output file.
Subsetting
• Important: Note that the decisions to emit a hash value to the output file and whether to make recursive calls depend on the position of the red and blue arrows at the time the recursive call is made.
Illustration of further subsetting to just glyph 1
0 1 2 3 4 5 6 7
return h(0, 0).emit h(0, 0).
Input file has glyphs 0, 1, 2,and hash values h(3, 3) andh(4, 7).Output file has just glyph 1.
Illustration (slide 2)
0 1 2 3 4 5 6 7
return h(1, 1).do not emit.
Illustration (slide 3)
0 1 2 3 4 5 6 7
return h(0, 1).do not emit.
Illustration (slide 4)
0 1 2 3 4 5 6 7
return h(2, 2).do not emit.
Illustration (slide 5)
0 1 2 3 4 5 6 7
return h(3, 3).do not emit.
Illustration (slide 6)
0 1 2 3 4 5 6 7
return h(2, 3).emit h(2, 3).
Illustration (slide 7)
0 1 2 3 4 5 6 7
return h(0, 3).do not emit.
Illustration (slide 8)
0 1 2 3 4 5 6 7
return h(4, 7), which is in the original file.emit h(4, 7).
Illustration (slide 9)
0 1 2 3 4 5 6 7
copy h(0, 7) from original file to output file.