Document current crypto and encoding in detail #865
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#865
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Other than the code, the most comprehensive description of Tahoe's current crypto and erasure encoding that I'm aware of is the Storage Security and Survivability Workshop 2008 paper: http://tahoe-lafs.org/~zooko/lafs.pdf. However, that paper does not give the level of detail required for a spec or for a thorough security analysis (for example, it doesn't specify encryption modes or the encoding of inputs to crypto primitives).
This is an obstacle to designing the new crypto, since we don't want to lose features (unless we drop them deliberately) or make mistakes that were avoided in the original design.
I guess what this is asking for would be the unwritten doc "!#1: Share Format, Encoding Algorithm" described in source:docs/specifications/outline.txt .
As an example of the kind of detail I'm looking for, generating a convergent encryption key for an immutable file would be:
yeah, I've been meaning to write this up for a year and haven't gotten around to it. In general, we've been too dependent upon using code as a specification tool.. as the code gets rearranged (for performance reasons, mostly), it becomes less useful as a form of documentation.
I'm actually looking to build two docs: a text one that extracts the crypto and protocol pieces from the current code, and a diagram one that parallels davidsarah's excellent "Elk Point" proposals. I want to be able to compare the features and complexity of our current encoding format against other proposals, and having similar-format pictures for all of them would help that a lot.