[Veranschaulichung des Public-Key-Verfahrens]

KRYPTOLOGIE

Public-Key-Verfahren in Ruby

[Veranschaulichung des Public-Key-Verfahrens]

Public-Key-Verfahren in Python:

	
def publicverschluesseln(satz, codewort)
  buchstabe = ""; codebuchstabe = ""
  asciizahl = 0;  codeasciizahl = 0
  stelle = 0;  codestelle = 0
  zusatz = 0
  verschluesselter_satz = ""

  while stelle < satz.length do
    buchstabe = satz[stelle]
    codebuchstabe = codewort[codestelle]
    asciizahl = buchstabe.ord
    codeasciizahl = codebuchstabe.ord

    asciizahl = 
      asciizahl + codeasciizahl - 64 
      + zusatz
    buchstabe = asciizahl.chr

    verschluesselter_satz = 
      verschluesselter_satz + buchstabe

    stelle = stelle + 1
    zusatz = zusatz + 1
    if zusatz > 2 then zusatz = 0 end
    codestelle = codestelle + 1
    if codestelle == codewort.length then
      codestelle = 0
      zusatz = 0
    end
  end

  return verschluesselter_satz
end


def publicentschluesseln(satz, codewort)
  buchstabe = ""; codebuchstabe = ""
  asciizahl = 0; codeasciizahl = 0
  stelle = 0; codestelle = 0
  entschluesselter_satz = ""
  zusatz = 0

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

  return entschluesselter_satz
end

puts "-----------------------------------"
puts "\n\n\n\n"
puts "Ein kleines Programm zur Demonstra-"
puts "tion der Public-Key-Verschlüsselung"
puts "Bitte Satz eingeben: "
satz = gets.chomp

puts "Eingabe öffentlicher Schlüssel: "
codewort = gets.chomp
puts "Unverschluesselt:   #{satz}"
satz = publicverschluesseln(satz,codewort)
puts "Verschluesselt:     #{satz}"
puts "Eingabe privater Schlüssel: "
codewort = gets.chomp
satz = publicentschluesseln(satz,codewort)
puts "Entschluesselt:     #{satz}"

Public-Key-Verfahren in Python:

	
def publicverschluesseln(satz, codewort)
  buchstabe = ""; codebuchstabe = ""
  asciizahl = 0;  codeasciizahl = 0
  stelle = 0;  codestelle = 0
  zusatz = 0
  verschluesselter_satz = ""

  while stelle < satz.length do
    buchstabe = satz[stelle]
    codebuchstabe = codewort[codestelle]
    asciizahl = buchstabe.ord
    codeasciizahl = codebuchstabe.ord

    asciizahl = asciizahl + codeasciizahl - 64 + zusatz
    buchstabe = asciizahl.chr

    verschluesselter_satz = verschluesselter_satz + buchstabe

    stelle = stelle + 1
    zusatz = zusatz + 1
    if zusatz > 2 then zusatz = 0 end
    codestelle = codestelle + 1
    if codestelle == codewort.length then
      codestelle = 0
      zusatz = 0
    end
  end

  return verschluesselter_satz
end


def publicentschluesseln(satz, codewort)
  buchstabe = ""; codebuchstabe = ""
  asciizahl = 0; codeasciizahl = 0
  stelle = 0; codestelle = 0
  entschluesselter_satz = ""
  zusatz = 0

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

  return entschluesselter_satz
end

puts "----------------------------------------------------------"
puts "\n\n\n\n"
puts "Ein kleines Programm zur Demonstration "
puts "der Public-Key-Verschlüsselung"
puts "Bitte Satz eingeben: "
satz = gets.chomp

puts "Bitte öffentlichen Schlüssel eingeben: "
codewort = gets.chomp
puts "Unverschluesselt:   #{satz}"
satz = publicverschluesseln(satz, codewort)
puts "Verschluesselt:     #{satz}"
puts "Bitte privaten Schlüssel eingeben: "
codewort = gets.chomp
satz = publicentschluesseln(satz, codewort)
puts "Entschluesselt:     #{satz}"