miércoles, 15 de agosto de 2012

Codificación


Hola a todos! Hoy hablaremos sobre la codificación, los dos grandes tipos de codificación, y hablaremos un poco más sobre el bit, de momento sin meternos en muchas complicaciones, recordemos que de momento estamos dando conceptos básicos.
Bien, existen dos tipos de codificaciones, si hablamos en términos muy generales. Codificación ascendente y descendente.
 Ascendente: Consiste en transformar un grupo de símbolos (x) a otro grupo de símbolos mayor (x*y), como ejemplos de este tipo de codificación tenemos el código Baudot, ASCII…, es decir transformamos un carácter por ejemplo a (que contiene solamente un símbolo) en un conjunto de símbolos mayor (01100001). Este tipo de codificación, tiene como gran ventaja disminuir la información que contiene cada bit, es decir aumentar su entropía.
Descendente: Consiste en transformar un grupo de símbolos (x) en otro menor (x-y/y<x)  Estos tipos de codificación son muy escasos ya que lo que estamos haciendo es disminuir la entropía de cada bit.
Codificación reversible; las técnicas de codificación, sean ascendentes o descendentes, sus mensajes son reversibles: cada símbolo, cada carácter… está codificado de manera distinta a la de cualquier otro mensaje dentro del mismo sistema. Por ejemplo, en código morse, la letra V, se simboliza como ···-, si hubiera otra letra por ejemplo la A que se simbolizara igual, el sistema ya no sería reversible ya que se tendría que producir una elección arbitraria entre A o V al interpretar en código ···-. Esto, se llama colisión, y ya lo veremos más detenidamente cuando explique las funciones hash.
Unidad de información más pequeña; es el bit, al igual que en física, en conceptos lejanos a la cuántica, y muy simples podríamos considerar al átomo (a: sin| tomo: divisiones, partes). En los discos o en las cintas podemos encontrar los bits como partes magnetizadas o no magnetizadas, y para codificar los caracteres en bits se combinan los bits de acuerdo con diversos esquemas (codificación)
Hasta aquí por hoy, hasta luego bloggeros! J

domingo, 12 de agosto de 2012

Tipos de bits


Hola a todos!
Hoy explicaré que todos los bits no pueden ser iguales, se puede hacer una distinción entre dos tipos; bits informativos, y no informativos.  Bien, para diferenciarlos podemos basarnos en esta regla, que aviso, no siempre es verdadera (y no es invención mía, está sacada de un libro) Si no es posible predecir con exactitud el valor del bit, es decir 1 ó 0, contiene información, por lo que se tiene que dividir en más partes para nombrarlas como antes explicamos.
Si su valor puede asignarse de forma exacta, cumple una función que no consiste en llevar información.
Los bits que contienen información, se combinan para representar letras, números, caracteres…  Por ejemplo, 01100001 es a, cada uno de esos bits, son bits informativos, porque no pueden predecirse con exactitud, sino que han sido asignados de forma arbitraria para formar a.
Los bits no informativos se utilizan para que el hardware de un sistema pueda discriminar donde empieza un carácter y empieza el otro, es decir, podemos diferenciar entre 0; empieza el carácter, y 1, termina el carácter (es un ejemplo muy simplificado)así teniendo un método para descubrir y corregir errores, a fin de que los equipos situados en ambos extremos de un circuito puedan mantener la sincronización.
Bueno bloggeros hasta otra! J

Bits


Hola a todos!
Bueno, hoy continuaremos con el tema que dejamos el otro día, como averiguar la mínima cantidad de información, con la que podremos transmitir un mensaje, es decir en código binario. Recordemos que el número mínimo de bits para transmitir un mensaje, es el logaritmo en base dos del número de elecciones posibles. Pero la mayoría de los logaritmos en base dos son números irracionales, y no podemos transmitir un número irracional de bits. Entonces, cuando tenemos 26 elementos para transmitir cual es el elegido, ¿cómo lo hacemos? Pues bien lg2 16< lg2 26< lg2 32 por lo tanto el número de bits necesario para  transmitir ese mensaje será lg2 32. Pero pongamos el caso en el que no hay elección posible, porque sólo existe un elemento, lg2  1= 0, no se trasmite ningún tipo de información.
Pongamos un ejemplo un poco más complejo. Tenemos una baraja de cartas, con 52, ¿cuantas maneras de colocar las cartas hay? Esto es básico, 52! El número de bits que podemos representar por el orden de las cartas después de un barajeo, es:
                                                   lg52! = 225,7 bits
Bien, cuando una persona barajea normalmente, corta la baraja en dos montones aproximadamente iguales, montón A y montón B. Estos representan una situación binaria, por lo que ¿cuantas posibilidades de combinaciones tienen las cartas de estos dos montones? Pues al ser una situación de dos conjuntos, serían 2^52 combinaciones posibles. Sabiendo esto, el número máximo de bits que puede producir un barajeo es:
                    lg2^52= 52 bits de información que puede producir un barajeo aleatorio.
Entonces si dividimos 225,7 entre 52, nos dará 4,3, por lo tanto se necesitarán 5 barajeos  mínimos para que las 52 cartas estén dispuestas al azar.
Bueno bloggeros, hasta mañana! J

jueves, 9 de agosto de 2012

Código binario


Hola a todos!
Bien, hoy seguiremos con un aspecto principal de la teoría de la información, el código binario.
El sistema binario, se considera un lenguaje de datos, ya que todos los sistemas electrónicos y electromecánicos lo usan, y suelen tener dos estados, encendido o apagado. Este sistema, está compuesto por dos dígitos, cuya base es dos, es decir, solo se utiliza el 1 y el 0. Por lo tanto el código binario posee una cualidad biestable, encendido o apagado. Esto se representa mediante el 1 y el 0. Con estos dos números se pueden llegar a formar largos mensajes.
Bien, sabiendo esto, podemos empezar con una medición de la información, y ¿Cómo se mide la información, en que unidades? En bits, la unidad básica de la medición de información es el bit. Una propiedad fundamental del código binario es de reducir a la mitad la incertidumbre, pongamos un ejemplo: Tiramos una moneda al aire, si sale cara lo simbolizamos con 1, si sale cruz con 0, por lo tanto, la información sobre cómo ha caído la moneda, la podemos representar con un solo bit de información, ya que al dar que ha caído cara, implícitamente sabemos que no ha salido cruz. Es decir un bit es 1 o 0, “si” o “no”. ¿Ha salido cara? Sí. Eso es un bit de información. Pero por ejemplo, pongamos un caso, en el que hemos tirado un dado, que tiene 8 caras, ¿con cuantos bits de información podríamos definir el lanzamiento? Llamemos a cada cara con una letra A B C D E F G H
A   B   C   D   E   F   G   H     Dividamos esto en dos, a un grupo lo nombraremos con el 1 y a otro
____0____   ____1____    con el 0.
A   B   C   D   E   F   G   H   Bien, dividido en dos bloques, volvamos a dividir estos bloques
_0__  __1_                         pequeños en otros dos bloques.  
A   B   C   D   E   F   G   H   Ahora, estos grupos más pequeños que hemos creado tienen dos
0   1                                     elementos, pues nombremos a cada elemento con un número.
Por lo tanto para nombrar el suceso B, será necesario expresarlo como 001, el A como 000, etc. Es decir utilizamos 3 bits de información para nombrar un suceso. Con estos conocimientos podemos determinar cuántos bits se necesitan para definir una elección entre varias posibles, como es un sistema binario, podemos elegir entre dos opciones “si” o “no”. Por lo tanto:
   2^número de elecciones que tienes que hacer =número de sucesos posibles
El número de elecciones que tienes que hacer es igual al de bits necesarios para enviar un suceso del experimento. Si queremos saber los bits que tenemos que enviar, lógicamente cambiaremos esta ecuación exponencial a un simple logaritmo en base 2:
                  número de sucesos posibles= número de elecciones que tienes que hacer/bits
               Información necesarias para transmitir un suceso.
Por ejemplo pongamos un caso, tenemos 16 sucesos posibles, ¿en cuantos bits de información podemos transmitir un suceso? Bien, pues aplicamos un logaritmo sencillo en base 2.
            log2 16=x     x=4       Es decir son necesarios 4 bits para transmitir un suceso, por ejemplo             0000, para transmitir el primer suceso.
Bueno, en próximas entradas ya explicaré más cosas sobre la teoría de la información, y las elecciones complejas, hasta luego bloggeros! J
P.D: Si algo no se entiende, poner un comentario con vuestro correo y la duda que tenéis y os la soluciono, es que ahora que lo veo parece un pelín confuso XD

miércoles, 8 de agosto de 2012

Entropía

Hola a todos!
Hoy, vamos a hablar sobre un aspecto de la teoría de la información, la entropía.
La información, posee la propiedad de disminuir la incertidumbre de una situación, a esta incertidumbre, la llamamos entropía, y se simboliza con la letra H. En cuanto crece la información, la entropía va disminuyendo. Se puede simbolizar con esta ecuación: H+INFORMACIÓN=1.
La entropía, está completamente ligada a la incertidumbre que existe en cualquier experimento aleatorio. Lo podemos considerar como el desorden en un sistema. Por ejemplo, si hemos tirado 3 veces una moneda, y sabemos que una vez ha salido cara, la entropía (tiene fórmula) será esas dos veces que no sabemos que ha salido.
Fórmula de la entropía.

Bien, vamos a definir las incógnitas de esta ecuación:
-H (X): Entropía del experimento X.
-p(xi): Probabilidad de que ocurra el estado posible p(xi) del suceso x (puede tener k estados posibles)
-i: Estados posibles.
(el logaritmo es en base dos, porque se considera como código binario)
Si i=2, se aplica la misma fórmula con una suma, es decir:
E p(1) log2 p(1)+ p(2) log2 p(2)= H (X)
i=2
p(2), es la probabilidad del estado 2
Bueno bloggeros, ya seguiré con más teoría de la información, hasta luego! :-)

martes, 7 de agosto de 2012

Vocabulario criptográfico

Hola a todos!
Con esta entrada, ampliaremos nuestro vocabulario respecto a la criptografía, para que más tarde no tenga que definirlos:
-Algoritmo: se podría definir como una sucesión de órdenes. Es decir, podríamos considerar el proceso de comer un algoritmo; 1- coger la comida con el tenedor 2- Meterse la comida en la boca 3- Masticar la comida 4- Tragar la comida masticada. También podríamos decir que es un conjunto de instrucciones. Bien, los algoritmos se pueden definir con la ayuda de las matemáticas, y en estas "instrucciones" se basa la criptografía.
-Cifrar: Consiste en aplicar un algoritmo matemático a un conjunto de caracteres, para que tras dicha aplicación, el mensaje sea completamente ilegible.
-Descifrar: Este proceso, se lleva a cabo aplicando un algoritmo igual o diferente al algoritmo del cifrado, para volver a hacer legible el mensaje.
-Plaintext: Conjunto de caracteres antes de ser cifrados.
-Ciphertext: Conjunto de caracteres después de ser cifrados.
-Clave: "Información" necesaria para poder aplicar el algoritmo de descifrado a un ciphertext.
-Charset: Caracteres posibles para formar una determinada clave.
-Fuerza bruta (Brute force): Método para averiguar una clave, que consiste en probar claves, generalmente generadas a partir de un diccionario de claves.
-Diccionario: Información que normalmente se le aporta a un programa, antes de aplicar fuerza bruta a un sistema, por ejemplo, si queremos entrar en el disco duro de un cantante, podríamos aportar al programa palabras como "música" para facilitar, y hacer más rápida la tarea.
-Sistema infaesible: Consiste en un sistema criptográfico, que es posible, pero al ser tan seguro, es inútil.
Bueno, yo creo que con este poco de vocabulario sobre criptografía podremos empezar a explicar más a fondo, al menos la criptografía simétrica, hasta entonces, hasta luego bloggeros! :-)

jueves, 2 de agosto de 2012

Criptolgrafía

Hola a todos!
Con esta entrada voy a iniciar una serie de entradas, sobre este tema, la criptografía, explicaré conceptos básicos al principio, y luego iré saltando a sistemas más complejos.
Bien, hoy explicaré unos conceptos básicos de criptografía, en primer lugar definiré el significado de esta palabra; Es una rama de la criptología, que se ocupa de los métodos y técnicas para alterar las representaciones lingüísticas (mensajes). Estos métodos, se basan en las matemáticas, algorítmos matemáticos.
Bueno, principalmente se diferencian entre dos grupos de sistemas criptográficos:
 -Criptografía simétrica: Un cuerpo simétrico, es aquel que tiene un eje, y a ambos lados del eje es exactamente igual, por ejemplo un triángulo isósceles es simétrico si definimos su eje como la altura . Pues bien, en nuestro sistema criptográfico, el eje, sería una clave, que se utilizaría para cifrar y descifrar. Los sistemas de cifrado más antiguos y simples son simétricos, pero hay alguno que presenta alguna pequeña complejidad. Por ejemplo, si queremos cifrar números en un sistema simétrico, el emisor y receptor deben conocer la clave, que para emitir el mensaje puede ser: (n+2)*2, cifremos el número 3; (3+2)*2= 10. Si el receptor sabe el método que ha utilizado para cifrarlo lo único que tiene que hacer una ecuación tomando como incógnita el número original, o simplemente invertir los signos. Es decir (n+2)*2=10 => n= 3. Resumiendo, una sola clave para todo el sistema, como veréis si solo hay una clave será más fácil de romper que si hay varias como posteriormente explicaré.
-Criptografía asimétrica: Este sistema es más complejo y es en el que se basan todos los sistemas actuales de codificación. Este sistema suele tener 2 clave, una pública a la que todo el mundo puede acceder, y otra privada, en otra entrada explicaré detalladamente un algoritmo asimétrico.
Quizás os suene la teoría de la información, bien en otra entrada también hablaré detalladamente sobre ella, porque está plenamente reaccionada con la criptografía.
Bueno, hasta aquí hoy, ya explicaré sistemas de cifrado, teoría de la información... Y un comentario, ayuda mucho :-) hasta luego bloggeros :-)

Modelo de sociedad utópica.

Hola a todos!
Hoy explicaré como organizaría yo una sociedad para que funcionase correctamente. Mi modelo, se basa en la anarquía pero al final se acaba alejando de ella bastante. Lo primero que eliminaría sería el dinero, la figura del estado, serían unos administrativos. Se basa en un sistema de clases un tanto "peculiar". Para evitar que una persona que no haga nada en su vida tenga los mismos bienes que una persona trabajadora, según el nivel de estudios que tenga la persona, adquirirá una clase mayor. ¿Que se consigue con una clase mayor? Se consigue poder acceder a bienes de lujo con mayor frecuencia, o a objetos de mayor calidad que las clases inferiores. La vivienda, y los alimentos de primera necesidad estarían a disposición de todos los ciudadanos, pero mientras que un ciudadano de clase A puede comprarse un anillo cada mes porque tiene 2 carreras, y ha estado trabajando de investigador, un ciudadano de clase E, que no ha estudiado, y que trabaja de albañil, podrá comprarse un anillo cada año, o dispondrá de coches peores... Pero este sistema de clases no es un sistema heredado, todos los niños dispondrán del mismo material de estudio, ellos no podrán comprarse lujos, así partiendo de una base de igualdad para todos, y de esta que se vallan ganando su clase correspondiente. No es un sistema de estamentos, es de clases, es decir una persona de clase D, a los 40 años puede estudiar una carrera y acceder a la clase B.
Bueno, ya iré continuando mi modelo, hasta luego bloggeros! :-)

miércoles, 1 de agosto de 2012

El dinero


Hola a todos!
En esta entrada escribiré sobre el agente que más corrompe la sociedad; el dinero. Desde la antigüedad, los objetos, servicios, por el nivel de dificultad de su realización han sido más o menos valoradas. Pero para marcar la diferencia entre en nivel de dificultad de obtención entre un tomate o un anillo, se establece el dinero.  En esta época se valora a la gente por la cantidad de dinero que tienen. Mucho dinero, es obtenido de maneras no muy honestas. Este es un punto, que la sociedad Anárquica eliminaría, y que la podría llevar al fracaso, os cuento:
En una sociedad anárquica cada uno tendría su papel en la sociedad, según sus conocimientos. Por ejemplo, uno puede ser panadero, entonces su panadería está abierta 6 días a la semana, el no cobra, el pan lo da gratis (no existe el dinero) con un máximo de pan por persona. Pero, si todo es gratis, en una sociedad tan corrupta como la nuestra ¿Quién va a trabajar? Mucha gente dejaría de trabajar, ya que tendría lo mismo que una persona que trabaja todos los días duramente, actualmente la gente estudia, para tener más dinero que la gente que tiene menos estudios, pero en una sociedad anarquista, ¿para que matarme a estudiar, si sin abrir un libro en mi vida, voy a tener lo mismo que una persona que ha estudiado en toda su juventud? Esto se podría solucionar partiendo de una educación no egoísta, pero prácticamente esto actualmente es imposible…
Bueno, hasta luego bloggeros J