Skip to main content

Cryptography-Oriented Modular Functions

This section focuses on modular arithmetic functions designed for cryptographic applications. These functions can handle hashing, encryption, and decryption tasks using modular techniques.


Functions Overview

Cryptographic Modular Functions

  • modularHash(data: string, mod: number): number
    Hashes a string using modular arithmetic.

  • modularEncryption(base: number, key: number, mod: number): number
    Performs encryption via modular exponentiation.

  • modularDecryption(encrypted: number, key: number, mod: number): number
    Decrypts an encrypted value using modular arithmetic.


Detailed Documentation

modularHash

Description:
Hashes a string using modular arithmetic. The hash value is computed by iterating over the characters of the input string and applying modular arithmetic.

Example:

console.log(modularHash('hello', 97)); // Output: 24
console.log(modularHash('world', 101)); // Output: 78

Validation:

  • Throws an error if data is not a string.
  • Throws an error if mod is not a positive integer.

Error Handling:

expect(() => modularHash(123, 97)).toThrow('Data must be a string.');
expect(() => modularHash('hello', -5)).toThrow('Modulus must be a positive integer.');

modularEncryption

Description:

Encrypts a value using modular exponentiation:

Example:

console.log(modularEncryption(5, 3, 13)); // Output: 8
console.log(modularEncryption(7, 4, 10)); // Output: 1

Validation:

  • Throws an error if mod is less than or equal to 0.
  • Throws an error if base, key, or mod are not integers.

modularDecryption

Description:

Decrypts a value using modular arithmetic. This function is typically used with encryption algorithms that rely on modular exponentiation.

Example:

console.log(modularDecryption(8, 3, 13)); // Output: 5
console.log(modularDecryption(1, 4, 10)); // Output: 7

Validation:

  • Throws an error if mod is less than or equal to 0.
  • Throws an error if encrypted, key, or mod are not integers.

Additional Notes

Applications of modularHash

  • Data Integrity: Used to verify the integrity of data using hash comparisons.
  • Key Derivation: Can serve as a simplified hash function for cryptographic keys.

Applications of modularEncryption and modularDecryption

  • RSA Algorithm: Modular exponentiation is a core component of RSA encryption and decryption.
  • Secure Communication: Helps in securely encrypting and decrypting messages.