CSC 308

Cards (86)

  • Encryption
    The process of converting plain text, which can be seen by anyone, into an incomprehensible form of ciphertext
  • Decryption
    The process of converting ciphertext back into plaintext, so that it can be understood
  • Cryptography
    The two processes of encryption and decryption
  • Cryptographic algorithm

    The mathematical function used in the encryption and decryption processes
  • Cryptographic key

    The key used by the cryptographic algorithm to perform encryption and decryption
  • Encryption is an important means to obtain confidentiality, which is one of the three main goals of information security
  • Encryption
    1. Convert plain text into ciphertext
    2. Ciphertext cannot be recognized by a third party
  • Decryption
    Convert ciphertext back into plaintext
  • Classification of cryptographic techniques
    • Cryptographic techniques
    • Cryptographic protocols
  • Cryptographic techniques
    • Symmetric key cryptosystem
    • Public key cryptosystem
  • Symmetric key cryptosystem
    Encryption key and decryption key are the same
  • Public key cryptosystem
    Encryption key and decryption key are different
  • Cryptographic protocol
    Protocols that use cryptographic techniques to achieve a certain purpose (authentication, confidentiality, integrity, non-repudiation)
  • Cryptographic algorithms use an encryption key to perform encryption and decryption
  • Ciphertext is generally transmitted over communication lines or networks that are not secure
  • Computational impossibility means that we can understand the contents of the plaintext, even though we don't know the decryption key, if infinite time is used
  • Cryptosystem
    All the elements needed for a series of encryption and decryption processes
  • Requirements for a cryptosystem
    • Encryption and decryption should be effectively performed by the encryption key
    • A cryptosystem should be easy to use
    • Security should be performed by the encryption key, rather than by a cryptographic algorithm
  • Private key cryptographic algorithm
    Encryption key and decryption key are the same, key length may be short, encryption and decryption operations are fast
  • Private key cryptographic algorithm
    • Difficult to share the key if the distance between sender and receiver is long
    • Burdensome to generate and maintain different keys for many parties
  • Types of private key cryptographic algorithms
    • Block cipher
    • Stream cipher
  • Block cipher
    • Plaintext is divided into fixed size inputs, called blocks, and each block is encrypted
    • Low risk of error spread
    • Easy to implement
  • Stream cipher
    • Plaintext is encrypted in bits
    • Easy to implement in a mobile communication environment
    • Slow execution time
    • Malicious attackers can easily modify the content
    • Initial values should be set
  • Block cipher attack techniques
    • Differential attack
    • Linear attack
    • Brute force attack
    • Statistical analysis
    • Mathematical analysis
  • Public key cryptographic algorithm
    Sender and receiver use different keys to establish secret communication
  • Public key cryptographic algorithm
    1. Sender encrypts data using receiver's public key and sends ciphertext
    2. Receiver decrypts ciphertext using their private key to restore plaintext
  • Public key cryptographic algorithm
    • Secure communication can be established without sharing the key
    • Each user discloses their public key and holds their private key
    • Anyone can encrypt information, but only those with the private key can decrypt
  • Public key cryptographic algorithms
    • RSA
    • ElGamal
    • ECC
  • RSA
    Used for encryption and authentication, safety based on difficulty of factoring large integers
  • ElGamal
    First public key cryptographic algorithm based on difficulty of discrete algebra problem, ciphertext length is doubled, different ciphertext created each time due to use of random numbers
  • Public key cryptography
    The sender knows their private key corresponding to the public key, which can be checked by everyone
  • Representative public key cryptographic algorithms
    • RSA (Rivest, Shamir and Adleman)
    • ElGamal
    • ECC (Elliptic Curve Cryptosystem)
  • RSA public key cryptosystem

    • Used for encryption and authentication
    • Safety based on the difficulty of factoring a large integer
    • Ciphertext for the same message is always the same as no random numbers are used in the encryption process
    • Safety depends on prime number p and q, so prime number selection conditions are important
  • ElGamal
    • Proposed in 1984 by Stanford University cryptographer, T. ElGamal
    • First public key cryptographic algorithm, based on the difficulty of the discrete algebra problem
    • When a message is encrypted, its length is doubled
    • Different ciphertext is created each time, even for the same message, because random numbers are used for encryption
  • ECC (Elliptic Curve Cryptosystem)

    • Based on the discrete logarithm problem on the elliptic curve
    • High security and fast speed
    • A 1024-bit key of RSA and a 160-bit key of elliptic curve cipher have the same level of security
    • Suitable for encryption of mobile communication with limited power supply
  • Hash function
    Mathematical function that outputs a short hash value (hash code) with a fixed length from random data of various sizes
  • Properties of hash function
    • Pre-image resistance: Given y, it is difficult to find x where h(x)=y
    • 2nd pre-image resistance: Given h(x)=y, it is difficult to find x' where h(x')=y
    • Collision resistance: It is difficult to find x and x' where h(x)=h(x')
  • MD5

    • 128-bit hash function used for testing the integrity of the program or file
    • Recommended to use a safer algorithm like SHA-2 for hashing purposes
  • SHA
    • Set of interlinked hash functions developed by the National Security Agency (NSA)
    • SHA-0, SHA-1, SHA-2, SHA-3
    • SHA-256 or higher recommended for safety
  • Salt
    • Arbitrary bit string added when a hash function generates a hash value
    • Salting generates a hash value by adding a bit string to the original message
    • Improves the problem of the possibility of recognition