decrypt101
SocialOpen ProjectsSupport me My Resumes
  • Preface
    • Motivation
    • Roadmap’s
  • Introduction to Blockchain
    • A Brief History
    • Growth of Blockchain
    • Structure of Blockchain
    • Types of Blockchain
    • Key Technologies of Blockchain
    • Features of Blockchain
    • How Blockchain Works ?
    • Implementation of Blockchain
    • Summary
  • Components of Blockchain Architecture
    • Distributed Ledger
    • Blocks
    • Transaction
    • Chain
    • Peer-to-Peer Network
    • Blockchain Layers
    • Off-Chain & On-Chain
    • Wallet
    • Mining
    • Tokens
    • Assets
    • State Channels
    • Sidechains
    • Oracles on Blockchain
    • Atomic Swaps
    • Decentralized Identity (DID)
    • Blockchain Data Storage
    • Interoperability
    • Data structures for Scaling Blockchain
    • Maximal Extractable Value (MEV)
  • Consensus Mechanisms
    • Proof of Work (PoW)
      • Implemation Using Rust
    • Proof of Stake (PoS)
    • Proof of Burn (PoB)
    • Proof of Capacity (PoC)
    • Proof of Activity (PoAc)
    • Proof of Weight (PoWe)
    • Proof of Luck (PoL)
    • Proof of Ownership (PoO)
    • Proof of Existence (PoE)
    • Proof of Believability (PoBe)
    • Proof of History (PoH)
    • Proof of Authority (PoA)
    • Proof of Elapsed Time (PoET)
  • Cryptographics
    • Encryption & Decryption
      • Symmetric Encryption
      • Asymmetric Encryption
      • Key Management and Exchange
      • Implementation
    • Cryptographic Hashing
      • Secure Hash Algorithms (SHA)
      • Message Digest Algorithms
      • Ethash
      • Blake2
      • SCrypt
      • RIPEMD-160
    • Digital Signature
      • Digital Signature Algorithms
      • Digital Signature in Blockchain
    • Zero-Knowledge Proofs (ZKPs)
      • Types of Zero-Knowledge Proof and Protocols
      • A Case Study of Polygon Platform
    • Multi-Party Computation (MPC)
    • Cryptanalysis
    • Practical Implementation
  • Decentralized Application (DApp)
    • Design and UX in Web3
  • Smart Contract
    • Development Tools
    • Solidity
    • Testing Smart Contract
    • Developing Smart Contract
    • Interacting & Deploying with Smart Contract
    • Verifying Smart Contracts
    • Upgrading Smart Contracts
    • Securing Smart Contract
    • Smart Contract Composability
    • Testnet and Mainnet
    • Blockchain Platform Using Smart Contract
    • Application of Smart Contract
    • Practical Implementation
  • Blockchain Platforms
    • Ethereum
      • Ethereum Virtual Machine (EVM)
      • ETHER and GAS
      • Ethereum transaction
      • Ethereum Accounts
      • Ethereum Stacking
      • Ethereum Network
      • Ethereum Scaling Solutions
      • Ethereum Use-Cases
      • Getting Started with Ethereum
      • Ethereum Ecosystem and Support
    • Solana
      • Solana Architecture
        • Solana Account Model
        • Solana Wallet
        • Transactions and Instructions
        • Solana Programs
        • Program Derived Address (PDA)
        • Cross Program Invocation (CPI)
        • Tokens on Solana
        • Clusters and Public RPC Endpoints
        • Transaction Confirmation & Expiration
        • Retrying Transactions
        • Versioned Transactions
        • Address Lookup Tables
        • State Compression
        • Actions and Blinks
      • Solana Developments
      • Solana Client
      • Advanced Solana
      • Solana Scaling and Performance Architecture
      • Solana Solutions and cases
      • Practical Implemenation
    • Binance Smart Chain (BSC)
      • Create a BEP20 Token
    • Hyperledger Fabric
    • Cosmos
    • Polkadot
    • Quorum
    • Polygon
    • Algorand
    • Corda
    • Avalanche
    • TRON
    • Summary
  • Decentralized Finance (DeFi)
    • DeFi Components
    • DeFi Protocols
    • DeFi Platforms
    • DeFi Risk Classification
      • Infrastructure-layer Attacks
      • Smart Contract Layer-attacks
      • Application Layer-attacks
      • DeFi Risks
    • DeFi and Blockchain
    • DeFi Impact
  • Decentralized Ecosystem and Digital Innovation
    • Layer 2 Scaling Fundamental
    • Tokenomics
    • Cryptocurrency
    • Quantative Trading
    • NFTs
    • GameFi
    • Metaverse
  • Blockchain as a Service (BaaS)
    • Building Fullstack Blockchain Platform
    • Decentralized Digital Identity
    • Build a Cryptocurrencies Exchange
    • Play-to-Earn Gaming
    • Solana Token Airdrop Manager
    • Smart Contract Development on Solana with Rust
    • Quantitative Trading Platform
    • Insurances protocols
    • Flash Loans
    • Asset Management
    • Tokenized Derivatives
    • Automated Market Makers (AMMs)
    • Staking
    • Lending and Borrowing Platforms
    • Yield Farming
    • Stablecoin System
    • Security Token Offerings (STOs)
    • Initial Coin Offerings (ICOs)
    • On-Chain Voting Systems
    • Decentralized Autonomous Organizations (DAOs)
    • NFT Marketplaces
    • Provenance Verification
    • Supply Chain Tracking
    • Commodities Tokenization
    • Real Estate Tokenization
    • Digital Certificates
    • KYC (Know Your Customer)
  • Blockchain Development Across Languages
    • Blockchain using Go(Golang)
    • Blockchain using Rust
    • Blockchain using Python
    • Blockchain using Cairo
  • Distributed Systems & Infrastructure Technology
    • Classification of Distributed Systems
    • Networked systems versus Distributed systems
    • Parallel systems vs Distributed systems
    • Distributed versus Decentralized systems
    • Processes of Distributed Systems
    • Architecture of Distributed systems
    • Infrastructure Technologies
  • Distributed System Patterns
    • Distributed Agreements Algorithms
      • HoneyBadgerBFT
    • Data Replications
    • Data Partition
    • Consistency
    • Distributed Time
    • Cluster Management
    • Communication between Nodes
    • Fault Tolerance and Resilience
      • How to design better fault tolerance systems
      • Resilience Patterns
    • Coordination systems
      • Clock synchronization
    • Security
      • Trust in distributed systems
      • Design of Principal Security
      • Security threats, policies, and mechanisms
      • Authentication and Authorizations
      • Cryptography
      • Monitoring in Security
  • Distributed System Design
    • Page 1
    • Distributed Shared Memory
    • Distributed Data Management
    • Distributed Knowledge Management
    • Distributed Ledger
  • FAQs
  • Support and Community
Powered by GitBook
On this page
  • Authentication
  • Integrity
  • Non-repudiation
  1. Cryptographics

Digital Signature

PreviousRIPEMD-160NextDigital Signature Algorithms

Last updated 8 months ago

Digital Signature is a mathematical scheme or technique that can be used to verify the authenticity of digital messages. When the receiver verifies the digital signature, if it turns out to be valid, the receiver can believe that the message has come from an authentic and known source or sender.

The receiver can also ensure that the message was not modified or altered during the transit of the message along the way. Digital signatures are the most common techniques used in cryptographic techniques for security and privacy maintenance. Most commonly, digital signatures employ asymmetric key cryptography. If the digital signature is implemented correctly, we can say that the digital signature gives the receiver a reason to be assured that the received message has come from a particular known sender. The digital signature can be used for non-repudiation also. It means that the sender cannot claim that it did not send the message because the digital signature of a particular sender is associated with the sent message and associated with the sender’s private key. Hence, a digital signature preserves three main properties, i.e., authentication, integrity, and non- repudiation. The general digital signature algorithm has three main steps :

  1. Key generation step where the private key is selected by the algorithm and the corresponding public key is also generated.

  2. In this step, with a message and private key, the algorithm outputs the digital signature of the particular sender.

  3. The receiver verifies the authenticity with the message, digital signature, and public key.

Authentication

The digital signature provides authentication by using asymmetric key cryptography As shown in Fig.1.1.3, we can see that the message sent by Alice is verified by Bob using the digital signature mechanism. Hence, Bob is ensured that the message has been sent by Alice only and not any other malicious entity. The process takes place using the sender’s public key and private key. The private key of Alice is only known to herself and not to others. But, the public key of Alice is known to everyone. Alice’s public key can only decrypt the message or data which is encrypted by Alice’s private key. Thus, these two keys are interconnected. This property of asymmetric key cryptography provides the base for the authentication mechanism to play its role.

The sender Alice uses her private key to encrypt the message and this encrypted message is sent to Bob. Anyone can see the message after decryption using Alice’s public key between the transmission because Alice’s public key is available to everyone.

The goal is not to provide confidentiality but to provide just authentication. We can combine other techniques to ensure the confidentiality of the message also. But here, we need only authentication. So, after the Bob has received the encrypted message, this message can be decrypted by Bob using Alice’s public key. Thus, he can compare the original message and decrypted message to check if both messages are equal. If both the messages are equal, we can say that Alice sent the message, thus providing authentication.

Integrity

The integrity of the data is essential. The data can be altered, or the integrity of the data can be breached along the way of transmission of the data. Thus, a mechanism to ensure the integrity of the data is required. The digital signature provides a widely used mechanism for ensuring the integrity of the received data.

As shown in Fig. 1.1.5, we consider both the hash and encryption to generate the encrypted message digest. Then at the receiver end, the receiver decrypts the message digest and compares it with its calculated message digest. If both are matched, then we can say that the data is not altered in between. The sender first creates the hash of the data, also called a message digest. Then it encrypts it by using the private key of its own to provide authentication. Then both the message and the encrypted message digest or hash are directed to the receiver end. At the receiver end, the receiver decrypts the encrypted message digest by using the sender’s public key, and thus, it gets the message digest of the original message.

Now the receiver generated message digest of the received plain text message with the same algorithm used at the sender side. Both of the message digests are compared and matched. If both the message digest are equal, we can say that the message is not altered. And if the message has been altered in between, the message digest calculated by the receiver would be different from the sender’s message digest because, as per the property of the cryptographic hash functions, any minute change in the message or plain text can result in a significant difference in the message digest. This way, the integrity of the message or plain text can be preserved using a digital signature.

Non-repudiation

Non-repudiation is a property or security measure that a digital signature pro- vides. The sender cannot deny sending a message that he sent. If the sender has sent some message to the receiver and after some time the sender refuses to admit that he has sent that particular message, if the digital signature was applied in this situation, then the sender could not deny that they have not sent that specific message. From the concept of the digital signature, we know that if the sender sends a message by encrypting the message with its private key, then that encrypted message can be decrypted only by its public key. A similar mechanism is applied here also. If the sender’s public key can successfully decrypt the message, it is evident that the message has been encrypted by using the sender’s private key, and the sender itself can only possess that. So no other entity could send this encrypted message which that sender’s public key can successfully decrypt. This way sender cannot deny send- ing the message.

There are different algorithms for digital signature, which are mentioned below and discussed later in this chapter:

  1. RSA (Rivest, Shamir, Adleman) Algorithm.

  2. ElGamal Encryption System.

  3. DSA (Digital Signature Algorithm).

  4. ECDSA (Elliptic Curve Digital Signature Algorithm).

Fig.1.1.3. Authentication using digital signature
Fig. 1.1.5. Integrity using digital signature