-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Trellis++ provides the first primitive, i.e., integrity protection of the private data and software code utilizing cryptographic hash functions. Cryptographic hash functions represent an input string or message as a hash value, i.e., a message digest. This message digest is a compact and uniquely identifiable representation of the input string. More formally, cryptographic hash functions (hash functions in short) map an arbitrary length input message
{cryptographic_hash_functions.png}
The hash function h comprises the following properties:
- Compression: the function h with a domain D and range R maps a finite input of arbitrary bit-length, to an output h(x) of fixed-length; that is, h: D -> R and |D| > |R| and R is n bits long.
- Easy forward computation: given an input string x and a function h, h(x) is easy to compute.
-
Preimage resistance: The output of the hash function h must not reveal any information about the input message
$m$ . That is, given a message digest y but no corresponding input string x, it is computationally infeasible to find h(x') = y. - 2nd-preimage resistance: Given a fixed x and x != x', it is computationally infeasible to find h(x) = h(x').
- Collision Resistance: In simple words, it is extremely unlikely to find two different inputs that can produce the same digest (output.) It is computationally infeasible to compute h(x) = h(x'), given any two x and x’ where x and x' are distinct.
%For the following discussion, we use concepts [1]. Trellis++ provides a primitive for confidentiality through Public Key Encryption (PKE) Schemes. A transformation
When PKE is used for encryption, two participants can exchange public keys prior to commencing encrypted communication. When one participant needs to send an encrypted message
When used for authentication and data integrity, a participant wishes to prove that they are the holder of a particular private key
%What remains is a mechanism to decide which public keys are trustworthy and which are not: i.e. we need a method to ensure that a valid key is authentic. The use of Public Key Infrastructure (PKI) enhances the security guarantees of the PKE schemes through the inclusion of a trusted third party called an issuer or certified authority (CA). An issuer generates digital certificates containing a client’s public key which the issuer signs with their private key. The issuer distributes their public key set through an accepted channel to all PKI participants, and therefore any participant which can prove they hold the private key corresponding to a public key from a digital certificate signed by the trusted issuer is assumed to be attested as trustworthy by the issuer.
The creation of a group and member-private-keys follows the next steps:
- The issuer creates an issuing-private-key for the new group.
- The issuer creates the group certificate that contains the group-public-key.
- Through bulk-provisioning, the issuer generates unique Intel EPID member-private-keys.
- A member creates an Intel EPID signature digitally signing a message m with the Intel EPID member-private-key.
- The verifier checks the validity of a digital signature using the group-public-key that is embedded in the group digital certificate.
Some notes regarding the issuer and group signatures:
- The issuer keeps the issuing-private-key in a secure place.
- The issuer builds and maintains the revocation lists.
- The issuer forgets any member-private-keys.
- A single group-public-key corresponds to every member-private-key in the group.
- The generated Intel EPID signature does not reveal any member's private identifiable information.
Note: Full description of use cases and applications will be posted after paper publication.
There are an enormous number of potential applications for Trellis++ with its OSC+PAC model. Here we show a few illustrative examples, but this list should by no means be considered exhaustive or even fully representative.
A Consumer-Facing Food Company, known as CFFC, wishes to create periodic sustainability reports for consumers to strengthen their brand.
A farmer would like to report the dates they planted various fields to the Farm Services Agency (FSA).
A livestock farmer must maintain records of total nitrogen, phosphorous, and potassium amounts applied to farm fields through the spreading of manure for approval from state environmental agencies.
The global fishing industry would like to eliminate over-fishing by requiring fishing vessels to catch fish only in approved areas.
In fresh produce, often each export market has their own rules and regulations around which crop protection products (herbicides, insecticides, fungicides, etc.) can be applied to particular crops.
One of the more difficult certification problems is characterized by a mass balance. In its simplest form, there is some mass of product that has been certified to be produced (either based upon the total inputs to the process, or based upon a human auditor’s assessment), and the industry would like to know that the seller of a product indeed can certifiably produce that amount of that product. For example, if an organic farmer could receive a certification that they can or did produce 10 tons of organic apples, downstream buyers of those apples would like to know that the farmer has not re-used that 10-ton organic certification multiple times with multiple buyers, thereby selling potentially non-organic apples under an organic certificate.