[Veranschaulichung des Public-Key-Verfahrens]

KRYPTOLOGIE

Vigenère Lösung Ruby

[Veranschaulichung des Public-Key-Verfahrens]

Lösung Aufgabe Vigenère in Ruby:

	
def vigenereverschluesseln(satz, codewort)
  buchstabe = ""
  asciizahl = 0
  stelle = 0
  codestelle = 0
  verschluesselter_satz = ""

  while stelle < satz.length
    buchstabe = satz[stelle]
    codebuchstabe = codewort[codestelle]
    asciizahl = buchstabe.ord
    codeasciizahl = codebuchstabe.ord - 64
    asciizahl = asciizahl + codeasciizahl
    buchstabe = asciizahl.chr
    verschluesselter_satz = 
      verschluesselter_satz + buchstabe
    stelle = stelle + 1
    codestelle = codestelle + 1
    if codestelle == codewort.length then
      codestelle = 0
    end
  end

  return verschluesselter_satz
end

def vigenereentschluesseln(satz, codewort)
  stelle = 0
  codestelle = 0
  entschluesselter_satz = ""

  while stelle < satz.length
    buchstabe = satz[stelle]
    asciizahl = buchstabe.ord
    codebuchstabe = codewort[codestelle]
    asciizahl = buchstabe.ord
    codeasciizahl = codebuchstabe.ord - 64
    asciizahl = asciizahl - codeasciizahl
    buchstabe = asciizahl.chr
    entschluesselter_satz = 
      entschluesselter_satz + buchstabe
    stelle = stelle + 1
    codestelle = codestelle + 1
    if codestelle == codewort.length then
      codestelle = 0
    end
  end

  return entschluesselter_satz
end

puts "-----------------------------------"
puts "Ein kleines Programm zur Demonstra-"
puts "tion der Vigenere-Verschlüsselung"
puts "-----------------------------------"
puts "Bitte den Satz eingeben: "
satz = gets.chomp
puts "Bitte das Codewort eingeben: "
codewort = gets.chomp

puts "Unverschluesselt:   #{satz}"
satz = vigenereverschluesseln(satz,codewort)
puts "Verschluesselt:     #{satz}"
satz = vigenereentschluesseln(satz,codewort)
puts "Entschluesselt:     #{satz}"

Lösung Aufgabe Vigenère in Ruby:

	
def vigenereverschluesseln(satz, codewort)
  buchstabe = ""
  asciizahl = 0
  stelle = 0
  codestelle = 0
  verschluesselter_satz = ""

  while stelle < satz.length
    buchstabe = satz[stelle]
    codebuchstabe = codewort[codestelle]
    asciizahl = buchstabe.ord
    codeasciizahl = codebuchstabe.ord - 64
    asciizahl = asciizahl + codeasciizahl
    buchstabe = asciizahl.chr
    verschluesselter_satz = verschluesselter_satz + buchstabe
    stelle = stelle + 1
    codestelle = codestelle + 1
    if codestelle == codewort.length then
      codestelle = 0
    end
  end

  return verschluesselter_satz
end

def vigenereentschluesseln(satz, codewort)
  stelle = 0
  codestelle = 0
  entschluesselter_satz = ""

  while stelle < satz.length
    buchstabe = satz[stelle]
    asciizahl = buchstabe.ord
    codebuchstabe = codewort[codestelle]
    asciizahl = buchstabe.ord
    codeasciizahl = codebuchstabe.ord - 64
    asciizahl = asciizahl - codeasciizahl
    buchstabe = asciizahl.chr
    entschluesselter_satz = entschluesselter_satz + buchstabe
    stelle = stelle + 1
    codestelle = codestelle + 1
    if codestelle == codewort.length then
      codestelle = 0
    end
  end

  return entschluesselter_satz
end

puts "-------------------------------------------------------------------"
puts "\n\n\n\n"
puts "Ein kleines Programm zur Demonstration der Vigenere-Verschlüsselung"
puts "Bitte den Satz eingeben: "
satz = gets.chomp
puts "Bitte das Codewort eingeben: "
codewort = gets.chomp

puts "Unverschluesselt:   #{satz}"
satz = vigenereverschluesseln(satz, codewort)
puts "Verschluesselt:     #{satz}"
satz = vigenereentschluesseln(satz, codewort)
puts "Entschluesselt:     #{satz}"