Encryption
Encryption of data and files on Shine
Last updated
Was this helpful?
Encryption of data and files on Shine
Last updated
Was this helpful?
Data protection is a critical requirement for all enterprise-grade solutions. We accomplish the same using a combination of symmetric and asymmetric encryption to have rigid encryption.
Using the below encryption technique we will gain storage and speed both, as encrypting a file usually take around 35% extra storage and the time it take to encrypt the data increases exponentially based on the size.
In our technique instead of encrypting the file for each user we want to give the access to we just encrypt it once with its own unique key and then share this unique to to each user in encrypted format. Like all Blockchains, Shine uses secp256k1 as the encryption method. Secp256k1 refers to the parameters of the elliptic curve used in Bitcoin's public-key cryptography and all other large blockchains such as Ethereum. Secp256k1 is defined in Standards for Efficient Cryptography (SEC) (Certicom Research, ). Currently Blockchain uses secp256k1 with the algorithm, though the same curve with the same public/private keys can be used in some other algorithms such as .
secp256k1 was almost never used before Blockchain became popular, but it is now gaining in popularity due to its several nice properties. Most commonly-used curves have a random structure, but secp256k1 was constructed in a special non-random way which allows for especially efficient computation. As a result, it is often more than 30% faster than other curves if the implementation is sufficiently optimized. Also, unlike the popular NIST curves, secp256k1's constants were selected in a predictable way, which significantly reduces the possibility that the curve's creator inserted any sort of backdoor into the curve.
Steps for encryption in Shine:
step 1: Get user public key : get public key of each user who we want to give access to.
step 2: Generate Data/File-key: Generate a new key-pair for document encryption.
step 3: Encrypt Data/File: Encrypt the data/file using the keys generated in step-2.
step 4: Generate Share-key(s): Encrypt the data/file key with each user public key.
step 5: Access File: User will decrypt the generated share key with his private key and then decrypt the data.