Avisos
Respuesta  
Tema : Encriptacion / Desencriptacion  
Herramientas
  post #1  okaki está desconectado
Antiguo
15-Jul-2008, 22:30
Avatar de okaki
okaki
Mas información Mensaje Spam
Poder de Credibilidad: 42
okaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la fama
Fecha de Ingreso : 19-November-2007
Ubicación : En bilbao pues
Mensajes : 4.850
Predeterminado Encriptacion / Desencriptacion

Hay dos tipos de sistemas de encriptación, los sistemas simétricos y los de clave pública, en los primeros el algoritmo de encriptación y desencriptación son distintos, pero emplean la misma clave, el ejemplo más conocido es DES, que es el que emplea Vía para las ECMs.

En los algoritmos de clave pública por el contrario, el algoritmo permanece constante, lo que cambia es la clave, el más conocido es RSA, es el que emplea Vía para las EMMs.

Se eligen dos números primos P y Q, sea N=P*Q, y E y D dos números tales que D*E=1+A*(P-1)*(Q-1), la clave pública es la pareja (E,N) y la privada (D,N), dado un mensaje M, para encriptarlo se emplea la fórmula:

E(M)=M^E mod N

y para desencriptar un mensaje M' se emplea la fórmula:

D(M')=M'^D mod N

aunque a primera vista no se vea, se puede demostrar que D(E(M))=M y E(D(M))=M, es decir D y E son funciones inversas.

Aunque pueda parecer un contrasentido publicar una de las claves y el algoritmo, no lo es, ya que no se puede averiguar fácilmente la clave privada (se requiere hacer la descomposición en factores primos de N, y si P y Q son suficientemente grandes es muy difícil), por eso dado que las claves que conocemos son las de la tarjeta, podemos desencriptar las EMMs, pero no se pueden encriptar (por desgracia).

El gran inconveniente, es que el cálculo de la exponencial modular es lento, por ello se suelen emplear sólo para el intercambio de claves, y después se emplea un algoritmo simétrico de encriptación, empleando como clave la transmitida con el algoritmo de clave pública, más o menos lo que hace Vía con las EMMs y ECMs.

Normalmente se elige el exponente E pequeño, de modo que el D es forzosamente grande, y no puede calcularse fácilmente por fuerza bruta, de este modo la parte de la encriptación es muy rápida, aunque la desencriptación sea más lenta.

El sistema que han elegido en Nagra Digital es emplear dos exponenciales modulares, en la primera el exponente de encriptación es 3 y en la segunda el exponente de la encriptación inversa es 3, el sistema queda de la siguiente forma:

Se eligen 4 primos de 32 bytes P1, Q1, P2, Q2, todos ellos de resto 2 al dividir por 3 (es necesario aunque no vamos a detallar aquí los motivos), sea N1=P1*Q1, N2=P2*Q2 y E1 y E2 los inversos de 3 módulo (P1-1)*(Q1-1) y (P2-1)*(Q2-1) respectivamente, el algoritmo de encriptación es:

E(M)=(M^3 mod N1)^E2 mod N2

y el desencriptación es

D(M)=(M^3 mod N2)^E1 mod N1

En este caso hay un pequeño problema, y es que el primer resultado (M^3 mod N1) puede ser mayor o igual que N2. Para evitarlo a la hora de encriptar se suprimen los dos bits superiores del resultado intermedio y se copian en los dos bits superiores de select ***, y para desencriptar se hace el proceso inverso. Hay otra pequeña cosa añadida, que es que antes de encriptar (y por tanto después de desencriptar) se hace una inversión de los bytes de orden (byteflop, para el desensamblado de StuntGuy), la razón es que los mensajes que no llegan a 64 bytes los completan con 00, y si se encripta un número pequeño con un exponente pequeño se puede averiguar con facilidad (como veis están en todo).

El módulo de la primera exponencial (para desencriptar, es decir N2) es EMM***, y el de la primera no está almacenado directamente en la tarjeta, para calcularlo se emplea la parity *** 2 (la 1 parece que se emplea para generar los primos P2 y Q2 empleados en la 30/31 para encriptar los mensajes que se mandan por teléfono, y la 0 parece que no se emplea), el algoritmo es la subrutina en la dirección 7b5b (en las tarjetas ROM3, como las de Vía), que genera la pareja de primos P1 y Q1 en las direcciones 100..11f y 120..13f, después N1=P1*Q1, y E1=(2*(P1-1)*(Q1-1)+1)/3.

Cuando mandaban una emm al principio de la misma aparece el ID del proveedor al que se dirige y un byte llamado byte de selección de clave que nos indica con cual de los juegos de claves debemos desencriptar, o sea para las emm las claves en los datatypes 07.

Las ecm (03) podían ser de varios tipos según el canal al que pertenecieran eran encriptadas con DES o E*DES con las public***s 0 o 1 que están en los datatypes 06, pero además se hacía un XOR con la clave MECM que era una clave de 256 bytes, dentro de la ecm había un byte que indicaba el punto de la MECM a partir del cual se cogían a su vez 8 bytes para el XOR, esta MECM no está en la cam sino que nos la mandan (a trozos porque la cam solo guardaba 16 bytes) en un comando 02 anterior, de tal forma que si la parte de la MECM que la tarjeta necesita para desencriptar la ecm no está guardada solicita a la cam que le envíe la última instrucción 02 que haya recibido. Además como es sabido se encripta también con la box*** y así se pasa al ird que tiene la misma box*** naturalmente

Byte de selección de clave: Se usa para seleccionar el conjunto de claves de desencriptación a usar (EMM***0 o EMM***1) , y qué clave de paridad se usará dentro de dicha EMM (0, 1, o 2). Este byte se codifica así:


Código:

x x x x x x x x
| | | | | | |_|__ Selecc. clave de paridad: 0, 1, or 2. Aviso:
| | | | | | No hay control de errores. (ver abajo)
| | | | | |______ Desconocido
| | | | |________ Bit de selección de tipo de clave
| | | |__________ Desconocido
| | |____________ Desconocido
| |______________ Desconocido
|________________ Desconocido
COMMAND $00: EMM
--------------------------------------------------------
Cita:
21 40 53 A0 CA 00 00 4D 00 4B 40 01 62 78 0A C9 81 D0 42 7C 91 44 A3 F4 75 48 6A 9B E4 35 D2 6B 3C B1 8B 40 BE 44 95 8B 5B 8E 72 E3 6D A7 46 91 2F FD AC DB CC 64 A5 CD 48 69 AE 24 AB 0A 56 F3 0B 1E DF EE BC 1D F1 5A BF C8 9D DC B6 12 7C 28 E9 76 A5 D8 52 05 E3

Código:

ID PROVIDER = 4001 (V*a Digital (Spain))
***SELECT = 62 =B'01100010 PK=2 ¿bit 5? (TD $07->0)
SIGNATURE = 78 0A C9 81 D0 42 7C 91
ENCRYPTED DATA =
44 A3 F4 75 48 6A 9B E4 ; Block 1
35 D2 6B 3C B1 8B 40 BE ; Block 2
44 95 8B 5B 8E 72 E3 6D ; Block 3
A7 46 91 2F FD AC DB CC ; Block 4
64 A5 CD 48 69 AE 24 AB ; Block 5
0A 56 F3 0B 1E DF EE BC ; Block 6
1D F1 5A BF C8 9D DC B6 ; Block 7
12 7C 28 E9 76 A5 D8 52 ; Block 8

ahora en nagra2 en lugar de DES en ECM, se utiliza IDEA, y se utiliza una variante de RSA para las EMM q sera un RSAxxx

Últimos temas en esta categoría:


Cada persona tiene más de 1000 deseos. Un enfermo de cáncer sólo uno: PONERSE BUENO
En honor a quienes se han ido por esta causa o por quienes continuan luchando.

Responder Citando
Los siguientes 2 usuarios agradecen a okaki por este mensaje:
Respuesta
Ir al Foro Arriba
Temas Similares
Descubierto al Fin el modelo de Encriptación en la TDT de Pago
Por fin ha sido desvelado, de forma involuntaria!. Televés es el segundo fabricante en presentar su Receptor preparado para la TDT de pago. Ikusi fue...
Replys: 0
Last Post: 03-Aug-2009 19:13
Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes
Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Activado
 
Herramientas

Información del foro
Desarrollado por: vBulletin® Versión 3.8.9
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.
Recursos ahorrados en esta página: MySQL 0% Organización : 30 Junio 2006
La franja horaria es GMT +2. Ahora son las 20:21.
Aviso importante


Yukarý Fýrlat