[Veranschaulichung des Public-Key-Verfahrens]

KRYPTOLOGIE

Einstiegsaufgabe Lösung Aufgabe 4

[Veranschaulichung des Public-Key-Verfahrens]

Lösung Aufgabe 4 in Ruby:


# ===============================
# PROGRAM caesar objektorientiert
# mit einer Satzklasse
# ===============================

class Satz
  def initialize
    @satz = "Dieser Satz ist neu!"
  end

  def einlesen
    puts "Bitte Satz eingeben:"
    @satz = gets.chomp
    puts @satz
  end

  def ausgeben
    puts @satz
  end

  def verschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    verschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl+versatz
      buchstabe = asciizahl.chr
      verschluesselter_satz = 
         verschluesselter_satz 
		 + buchstabe
      stelle = stelle + 1
    end

    @satz = verschluesselter_satz
  end

  def entschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    entschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl-versatz
      buchstabe = asciizahl.chr
      entschluesselter_satz = 
         entschluesselter_satz 
		 + buchstabe
      stelle = stelle + 1
    end

    @satz = entschluesselter_satz
  end

end

puts "--------------------------------"

satz = Satz.new
codewort = ""

puts "\n\n\n\n"
puts "Ein kleines Programm zur"
puts "Demonstration der"
puts "Caesar-Verschlüsselung"

satz.einlesen
puts "Unverschluesselt:   "
satz.ausgeben
satz.verschluesseln "C"
puts "Verschluesselt:     "
satz.ausgeben
satz.entschluesseln "C"
puts "Entschluesselt:     "
satz.ausgeben

# ENDE des Programms

# ===============================
# PROGRAM caesar objektorientiert
# mit einem Objekt Satz
# ===============================

satz = Object.new

# Operationen  Satz
  def satz.initialize
    @satz = "Dieser Satz ist neu!"
  end

  def satz.einlesen
    puts "Bitte Satz eingeben:"
    @satz = gets.chomp
    puts @satz
  end

  def satz.ausgeben
    puts @satz
  end

  def satz.verschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    verschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl+versatz
      buchstabe = asciizahl.chr
      verschluesselter_satz = 
         verschluesselter_satz 
	 + buchstabe
      stelle = stelle + 1
    end

    @satz = verschluesselter_satz
  end

  def satz.entschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    entschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl-versatz
      buchstabe = asciizahl.chr
      entschluesselter_satz =
         entschluesselter_satz 
         + buchstabe
      stelle = stelle + 1
    end

    @satz = entschluesselter_satz
  end

# Ende der Operationen des Satzes

puts "--------------------------------"

satz = Satz.new
codewort = ""

puts "\n\n\n\n"
puts "Ein kleines Programm zur"
puts "Demonstration der"
puts "Caesar-Verschlüsselung"

satz.einlesen
puts "Unverschluesselt:   "
satz.ausgeben
satz.verschluesseln "C"
puts "Verschluesselt:     "
satz.ausgeben
satz.entschluesseln "C"
puts "Entschluesselt:     "
satz.ausgeben

# ENDE des Programms

Lösung Aufgabe 4 in Ruby:


# ======================================================================
# PROGRAM caesar objektorientiert mit einer Satzklasse
# ======================================================================

class Satz
  def initialize
    @satz = "Dieser Satz ist neu!"
  end

  def einlesen
    puts "Bitte Satz eingeben:"
    @satz = gets.chomp
    puts @satz
  end

  def ausgeben
    puts @satz
  end

  def verschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    verschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl + versatz
      buchstabe = asciizahl.chr
      verschluesselter_satz = verschluesselter_satz + buchstabe
      stelle = stelle + 1
    end

    @satz = verschluesselter_satz
  end

  def entschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    entschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl - versatz
      buchstabe = asciizahl.chr
      entschluesselter_satz = entschluesselter_satz + buchstabe
      stelle = stelle + 1
    end

    @satz = entschluesselter_satz
  end

end

puts "-----------------------------------------------------------------"

satz = Satz.new
codewort = ""

puts "\n\n\n\n"
puts "Ein kleines Programm zur Demonstration der Caesar-Verschlüsselung"
satz.einlesen
puts "Unverschluesselt:   "
satz.ausgeben
satz.verschluesseln "C"
puts "Verschluesselt:     "
satz.ausgeben
satz.entschluesseln "C"
puts "Entschluesselt:     "
satz.ausgeben

# ENDE des Programms

# ======================================================================
# PROGRAM caesar objektorientiert mit einem Objekt Satz
# ======================================================================

satz = Object.new

# Operationen  Satz
  def satz.initialize
    @satz = "Dieser Satz ist neu!"
  end

  def satz.einlesen
    puts "Bitte Satz eingeben:"
    @satz = gets.chomp
    puts @satz
  end

  def satz.ausgeben
    puts @satz
  end

  def satz.verschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 64
    verschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl + versatz
      buchstabe = asciizahl.chr
      verschluesselter_satz = verschluesselter_satz + buchstabe
      stelle = stelle + 1
    end

    @satz = verschluesselter_satz
  end

  def satz.entschluesseln(codewort)
    buchstabe = ""
    asciizahl = 0
    stelle = 0
    versatz = codewort.ord - 48
    entschluesselter_satz = ""

    while stelle < @satz.length
      buchstabe = @satz[stelle]
      asciizahl = buchstabe.ord
      asciizahl = asciizahl - versatz
      buchstabe = asciizahl.chr
      entschluesselter_satz = entschluesselter_satz + buchstabe
      stelle = stelle + 1
    end

    @satz = entschluesselter_satz
  end

# Ende der Operationen des Satzes

puts "-----------------------------------------------------------------"

codewort = ""

puts "\n\n\n\n"
puts "Ein kleines Programm zur Demonstration der Caesar-Verschlüsselung"
satz.einlesen
puts "Unverschluesselt:   "
satz.ausgeben
satz.verschluesseln "C"
puts "Verschluesselt:     "
satz.ausgeben
satz.entschluesseln "C"
puts "Entschluesselt:     "
satz.ausgeben

# ENDE des Programms