Rostro de escultura de Polibio,
Viena, Austria
|
Polibio fue un historiador griego (208 a. C. - 126 a. C.). Enviado como rehén a Roma historió los hechos de ese país. Es considerado uno de los maestros del relato historicofilosófico por su Historia general de Roma.
Polibio nació en Megalópolis, Grecia, y fue deportado a Roma luego de la conquista de su lugar natal. Escribió la primera gran historia apologética de los romanos. Prontamente apareció en los circuitos aristocráticos de los Escipión, ilustre familia patricia de la Antigua Roma.
En su libro Historias hace mención al Método de cifrado atribuido a sus contemporáneos Cleoxeno y Democleto, basado en coordenadas. Aunque parece ser que la historia ha querido atribuir la invención del método a Polibio.
Se sustituye el valor alfabético por el de dos cifras que corresponden al de una tabla previamente fabricada.
El alfabeto griego utilizado inicialmente esta compuesto de 24 letras, con lo cual, la tabla de coordenadas contiene 5 columnas y 5 líneas. Políbio propuso utilizar la 25 coordenada como inicio y final de una transmisión.
En el alfabeto latino, existen 26 letras por lo cual una misma coordenada se utiliza para dos letras. La tabla de coordenadas mas común es la que cuenta con K/Q en la misma coordenada (semejanza de sonidos) pero, también existe alguna en la que se utiliza la misma coordenada para I/J.
Polibio aparece en los libros de Criptografía como el inventor de un procedimiento para escribir las letras como pares de números. Mediante una tabla se hace corresponder a cada carácter de un alfabeto de 25 letras un par de números. La tabla de Polibio tiene la forma siguiente:
Por ejemplo, la palabra Polibio se escribiría 35 34 31 24 12 24 34.
Se sustituye el valor alfabético por el de dos cifras que corresponden al de una tabla previamente fabricada.
El alfabeto griego utilizado inicialmente esta compuesto de 24 letras, con lo cual, la tabla de coordenadas contiene 5 columnas y 5 líneas. Políbio propuso utilizar la 25 coordenada como inicio y final de una transmisión.
En el alfabeto latino, existen 26 letras por lo cual una misma coordenada se utiliza para dos letras. La tabla de coordenadas mas común es la que cuenta con K/Q en la misma coordenada (semejanza de sonidos) pero, también existe alguna en la que se utiliza la misma coordenada para I/J.
Polibio aparece en los libros de Criptografía como el inventor de un procedimiento para escribir las letras como pares de números. Mediante una tabla se hace corresponder a cada carácter de un alfabeto de 25 letras un par de números. La tabla de Polibio tiene la forma siguiente:
1 | 2 | 3 | 4 | 5 | |
1 | A | B | C | D | E |
2 | F | G | H | I/J | K |
3 | L | M | N | O | P |
4 | Q | R | S | T | U |
5 | V | W | X | Y | Z |
Por ejemplo, la palabra Polibio se escribiría 35 34 31 24 12 24 34.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Codigo_Polibio
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string textoentrada;
private void button1_Click(object sender, EventArgs e)
{
textoentrada = textBox1.Text;
Dictionary<string, string> polibio = new Dictionary<string, string>
{
{"a","11" }, {"b","12" }, {"c","13" }, {"d","14" }, {"e","15" },
{"f","21" }, {"g","22" }, {"h","23" }, {"i","24" }, {"j","24" },
{"k","25" }, {"l","31" }, {"m","32" }, {"n","33" }, {"o","34" },
{"p","35" }, {"q","41" }, {"r","42" }, {"s","43" }, {"t","44" },
{"u","45" }, {"v","51" }, {"w","52" }, {"x","53" }, {"y","54" },
{"z","55" },
};
foreach (char letra in textoentrada)
{
string resultado = polibio[letra.ToString()].Trim();
textBox2.AppendText(resultado);
}
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Codigo_Polibio
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string textoentrada;
private void button1_Click(object sender, EventArgs e)
{
textoentrada = textBox1.Text;
Dictionary<string, string> polibio = new Dictionary<string, string>
{
{"a","11" }, {"b","12" }, {"c","13" }, {"d","14" }, {"e","15" },
{"f","21" }, {"g","22" }, {"h","23" }, {"i","24" }, {"j","24" },
{"k","25" }, {"l","31" }, {"m","32" }, {"n","33" }, {"o","34" },
{"p","35" }, {"q","41" }, {"r","42" }, {"s","43" }, {"t","44" },
{"u","45" }, {"v","51" }, {"w","52" }, {"x","53" }, {"y","54" },
{"z","55" },
};
foreach (char letra in textoentrada)
{
string resultado = polibio[letra.ToString()].Trim();
textBox2.AppendText(resultado);
}
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
}
}
}