[tahoe-lafs-trac-stream] [tahoe-lafs] #280: get_hash method in webapi for extension caching logic.
tahoe-lafs
trac at tahoe-lafs.org
Wed Feb 22 00:53:10 UTC 2012
#280: get_hash method in webapi for extension caching logic.
------------------------------+--------------------------------------------
Reporter: nejucomo | Owner: zooko
Type: enhancement | Status: assigned
Priority: minor | Milestone: undecided
Component: code- | Version: 0.7.0
frontend-web | Keywords: webapi cache extension newcaps
Resolution: |
Launchpad Bug: |
------------------------------+--------------------------------------------
Comment (by davidsarah):
Replying to [comment:12 nejucomo]:
> So for this use case to be satisfied by verify caps I need this command:
>
> {{{ $ tahoe spit_out_verify_cap < myblob.bin }}}
>
> This command should only read {{{myblob.bin}}} but should not do any
networking or use any state other than the cap and {{{myblob.bin}}} (so
that any tahoe user on any grid can run it).
>
> Is it feasible to make this command? That would satisfy my goal for
this ticket.
Yes, it is feasible to make this command. Depending on the cap protocol,
it might have to do all the work of erasure coding the file and computing
a Merkle hash of the ciphertext shares before it can compute the verify
cap.
Your use case could also be met with a Merkle hash of the plaintext and
convergence secret, which could be computed without erasure coding. But
there's a tradeoff between being able to do that and the cap size: in
order to be able to recover the plaintext hash from the read cap without
network access, the encryption bits and the integrity bits of the read cap
must be separate, which means that the minimum immutable read cap size for
a security level of 2^K^ against 2^T^ targets is 3K + T (2K integrity bits
and K+T confidentiality bits). In contrast the scheme with the shortest
read caps so far without this constraint is Rainhill 3, which has an
immutable read cap size of only 2K, the minimum possible to achieve 2^K^
security against collision attacks.
(A simplified version of Rainhill 3 without traversal caps is [https
://tahoe-lafs.org/~davidsarah/immutable-rainhill-3x.png here]. It does
allow you to compute a plaintext hash P, or an encrypted hash EncP_R,
before doing erasure coding, but in order to recover that value from the
read cap, you also need EncK_R which is stored on the server.)
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/280#comment:14>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list