--— Christopher Allen
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To post to this group, send email to fr...@googlegroups.com.
Visit this group at https://groups.google.com/group/friam.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/874l0w9qip.fsf%40dustycloud.org.
Am actually writing this on bus so wording may be stillted.
One can use public key crypto to implement the capability part of ocaps.
Having a public key of an object conveys the 'right' to send messages to and invoke that object.
Having the corrisponding private key conveys the 'right' to _be_ that object.
More in next post.
Those kind of caps are only fully delegateable, no attenuation without making and hosting an proxying intermediary somewhere.
Macaroons, SPKI, Blessings and such in next post.
With SPKI certs and its ilk (SAML, Blessings and what not) and macaroons attenuated delegation is quite possible iff the expressivity of the caveats allow for the desired attenuation.
More in next post.
However, these attenuations/caveats are interpreted by the vat that hosts the object designated by the innermost/first-in-chain SPKI cert or the specific identifier in the head of the macaroon.
And then there are more esoteric cryptographic ways to implement say rights amplification as an example via access structures made up of monotonic circuits that might be implemented via nested clueless software agents basic constructions.
Sorry for the hours long gap between the fragment-posts of this message.
I can go in further detail about those more esoteric cryptographic ways. What I have in mind builds on top of wellknown crypto primitives.
But for now..
Cheers.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK4o1WwsTcLh8AbdSW7xzZP7UoA4OrC2C-uP0PhM33X-sDYjNw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAOXxbHwW1Z8s-x9Dy_9vT7c-f1Kdr27gXFLcwdxOSpk9k278gA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAOXxbHwW1Z8s-x9Dy_9vT7c-f1Kdr27gXFLcwdxOSpk9k278gA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/79C1BC54-8503-4964-A5CD-C147E1855D01%40gmail.com.
The first party caveats of such a macaroon can be the usual
valid-before (aka expiry), valid-after, (which are compared against the clock of the hosting vat at verification time)
and deny-verb, which removes the specified verb from aforementioned whitelist.
That should be sufficient for now and I wont go into third party caveats.
Btw the initial hmac key of such macaroon might be yet another secret the hosting vat has to protect or
perhaps the swissNum of the object designated in the macaroon.
More in the next post.
Lets say we want to allow any invoker, that knows an n part of the n-of-k, of target object t to use the verb 'getVolume/0' on it.
We also want to allow an invoker, that knows the n thirds of k to use the verbs 'increaseVolume/1' and 'decreaseVolume/1' on the target object.
And finally we want to allow an invoker that knows all of k to use the verb 'turnOff/0' on the target object.
More in next post.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK4o1Wy3xKsEZO-N1zm2cHTX9qsu0JhWGXxVmGUKAoE2OLKmRw%40mail.gmail.com.
Call these shares/parts s1, s2, s3, s4, s5, and s6.
Those shares/parts are each a 256 bit numbers picked at random at the time of construction of the below assamblage of clueless software agents.
But before that I have to explain a bit what an clueless software agent is, at least the basic construction.
For my purpose here it is pretty much an call to following ecmascript function:
const bcsa = (symmetric_key, expected_hash, enciphered_payload) => {
if (sha256_hash(symmetric_key) === expected_hash) {
return eval(aes256_decrypt(enciphered_payload, symmetric_key), safeEnv);
} else {
return undefined;
}
}
More in next post.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAKQgqTY%2BwXuCYeBvdj2HZgXMT-Z1aCOeegeLy5ZoH3UrVuPmUg%40mail.gmail.com.
On Fri, Oct 4, 2019 at 6:24 PM Bill Frantz <fra...@pwpconsult.com> wrote:
> My memory is that the public key can always be derived from the
> private key with RSA. So they are not symmetric in practical use.
I'm dubious. In "raw" RSA, they're symmetric:
p, q primes.
n = pq. e chosen to be coprime to φ(pq) = (p-1)(q-1). d = e^-1 mod (p-1)(q-1).
The exponent e is often chosen to be something with a low Hamming
weight like 65537 so that encrypting is cheap, but sometimes it makes
sense to choose your decryption exponent to be low weight instead, so
I don't see how that helps. In general, they're any two
multiplicative inverses mod (p-1)(q-1).
Oh, right.
By nesting basic construction clueless software agents (BCSA) inside each other as payloads one can make simple AND requisits.
Take for instance an bcsa that uses s1 as its key.
Inside it we find the 'getVolume/0' macaroon
and a group of BCSAs. Each of which use the other
shares, one each, as their key.
You probably see already where I am going with this.
I will only continue this if there is interest.
-Baldur