📁
shine
  • Introduction to the Shine Blockchain platform
  • Shine overview
  • Shine USP
  • About EOSIO
  • Consensus mechanisms
  • Shine Proof of Authority consensus
  • Data privacy
  • Scalability
  • Business details
    • Why Blockchain
    • Why another Blockchain platform
    • Applications of Shine
      • Assumptions
      • Precious metals traceability
      • Food traceability
        • Spices
        • Perishables
        • Seafood
      • Carbon footprint monitoring
  • Tools, Technologies, and Architecture
    • Docker
    • MongoDB
    • Encryption
    • Server Security
    • Server requirements
    • Architecture
    • Transaction flows
  • Protocol
    • Microservices and APIs
    • Account management
  • Shine Blockchain Setup
    • SHINE Software Installation
    • Create Private/Public key pairs
    • Start the Blockchain node
    • Deploying System Smart Contracts
    • Add Producer/Validator Nodes
    • Node Security Setup
    • Deploying Traceability Smart Contracts
  • Backend Setup
    • Installing Prerequisites
    • Starting The Application
  • Front end Setup
    • User Interface
Powered by GitBook
On this page

Was this helpful?

  1. Tools, Technologies, and Architecture

Encryption

Encryption of data and files on Shine

PreviousMongoDBNextServer Security

Last updated 4 years ago

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.

http://www.secg.org/sec2-v2.pdf
ECDSA
Schnorr
Encryption and decryption of data in Shine.