Integrate pad rewriting into cli.
[easyotp.git] / TODO
blob9b57a28d7908baa39dbd880225535276ddfa775a
1 Things To Do    
2 Jeff Connelly
4 To do:
5 - Channel filling
6 Send blank message (padded, of course, to a high multiple), every day.
7 Send no more than one message per day, and queue to send always at the same time.
8 Mitigate timing attacks.
10 - Destructive one-time pads
11 Rewrite parts of the pad. With what? Does it matter if it is detected that
12 they were overwritten? If not, can just write with zeros. Better strategy
13 probably to take truly random data from another source, and rewrite the part
14 of the file, saving it to a new temporary file. Securely delete old one.
15 Does it matter if pads mismatch on both sides, giving an attacker an advantage?
16 See also: rewriting pads.
18 - Encrypting pads
19 Try Libtomcrypt, symmetric encryption with passphrase through secure key hash
20 function.
22 - Tools to break two-time pads
23 Fun. Do this. See http://users.csc.calpoly.edu/~pnico/class/s08/cpe456/notes/class.pdf
24 section 7.3, if reuse, then equivalent to XORing the two messages
25 together. Equivalent to a book cipher (cipher where key = natural language),
26 attackable with methods developed by Friedman; large portion of
27 plaintext and ciphertext will fall into the category of high-frequency letters.
28 Diagram and trigram analysis can fill in the gaps.
30 - Rewriting pads to falsify previously-sent messages 
31 (related to repuditation)
32 Similar to destructive one-time pads, but manual rewriting, and with a 
33 message, instead of automatic.
35 - Write about how otp has and doesn't have "Properties of a good cipher":
36 (Shannon49). Padding introduces information. No error propagation, good.
37 No confusion and diffusion; does not protect integrity; sacrificed for
38 maximum confidentiality.
39 "Military security policy" - confidentiality over availability
41 COMPLETED:
42 - Padding
43 - Basic pad loading and encryption/decryption of both message formats