class CryptoToolchain::Tools::RSABroadcastAttack

Constants

Input

Attributes

e[R]
inputs[R]

Public Class Methods

new(inputs) click to toggle source
# File lib/crypto_toolchain/tools/rsa_broadcast_attack.rb, line 5
def initialize(inputs)
  @e = inputs.length
  @inputs = inputs
end

Public Instance Methods

execute() click to toggle source
# File lib/crypto_toolchain/tools/rsa_broadcast_attack.rb, line 11
def execute
  residues = inputs.map(&:ciphertext)
  mods = inputs.map {|i| i.public_key.n }
  result = chinese_remainder(residues, mods)
  result.root(e).
    to_s(16).
    from_hex
end