Anda di halaman 1dari 14

Temas Avanzados en Arquitectura de Ordenadores I

Decodificacion de VideoCrypt y Nagravision

Autor: Fco Javier Moreno Nez

Decodificacion de VideoCrypt y Nagravision


Temas a tratar Como se podrian decodificar Introduccion a las seales de TV Que es VideoCrypt y Nagravision Explicacion del metodo que utilizaremos Como decodificarla
! !

VideoCrypt NagraVision

Pasos finales Ejemplos Potencia Ejemplos Importancia del Hardware a usar Conclusiones Anexo Links de interes y programas

Decodificacion de VideoCrypt y Nagravision


Como se podrian decodificar

Las seales utilizadas por estos metodos se pueden decodificar mediante 2 metodos: metodos:
!

Mediante Ingenieria Inversa:


Estudiando las seales de comunicacin entre el decodificador y la tarjeta inteligente para hacer clonaciones de las mismas o alterarlas. Estiar la estructura del decodificador para realizar decodificadores similares.

Mediante el estudio de las propiedades de las seales de TV.Los metodos anteriores tambien han sido llevados a cabo con xito, pero nos centraremos en este ya que esta intimamente ligado con el temario de la asignatura.

Decodificacion de VideoCrypt y Nagravision


Introduccion a las seales de TV

La seal de TV esta constituida por 2 partes.


!

La parte que lleva la seal que se mostrara en la pantalla, que esta dividida por cada una de las 625 lineas,en el sistema PAL. La otra parte de la seal esta intercalada entre las anteriores. En los sistemas de decodificacion, en decodificacion, estas partes se envia informacion al decodificador para que pueda descodificar las imgenes (en las seales de TV normal estas partes se utilizan solo para sincronizar las lineas en la pantalla).

Decodificacion de VideoCrypt y Nagravision


Que es VideoCrypt

VideoCrypt es el mtodo de codificacin de ciertos canales extrangeros como los de Gran Bretaa, que es usado para codificar la seal de satelite del canal SkyOne, por ejemplo. VideoCrypt se basa en la division de cada una de las lineas de la seal de la imagen en 2 partes y las intercambia.

Decodificacion de VideoCrypt y Nagravision


Que es VideoCrypt

Digamos que cada uno de los numeros siguientes representan la luminancia de cada uno de los pixels de la linea:
0123456789

Despues de ser codificada esa linea, los pixels quedan colocados de la siguiente forma:
4567890123

Decodificacion de VideoCrypt y Nagravision


Que es VideoCrypt
Imagen codificada con dicho metodo: metodo:

Decodificacion de VideoCrypt y Nagravision


Que es NagraVision

Nagravision es otro de los metodos de codificacion utilizado por Premiere (Germany), Teleclub (Switzerland), Canal+ (France, Spain). Nagravision se basa en la permutacion de las linas que componen la imagen que se mostrara en la pantalla mediante un algoritmo de premutaciones.

Decodificacion de VideoCrypt y Nagravision


Que es NagraVision

Ademas hay que notar que las ultimas 32 lineas de la imagen pertenecen a la imagen siguiente. Esto echo y su motivo lo explicaremos en el proceso de descodificacion. La siguiente imagen muestra la imagen codificada realizada con este metodo:

Decodificacion de VideoCrypt y Nagravision


Que es NagraVision

Decodificacion de VideoCrypt y Nagravision


Explicacion del metodo que utilizaremos
El algoritmo basico sigue estos pasos:
!

Tomamos como punto de partida una linea ya decodificada.(El metodo de encontrar la primera linea decodificada no entra dentro del tiempo de la exposicion, basicamente se basa en reconocimiento de bordes). exposicion, Buscamos configuracion optima de la linea candidata a ir a continuacion de la que ya tenemos segn alguno de estos 3 metodos: metodos:
Usar correlaciones cruzadas entre cada una de las lineas candidatas con la que ya tenemos(muy lento, doble bucle anidado) Usar la transformada rapida de fourier (FFT) -> Usaremos este ya que se adecua mejor al temario de la asignatura:
! !

Transformar la luminancia de cada linea candidata en el dominio de frecuencias usando la FFT Calcular la correlacion cruzada de las lineas candidatas con la original usando la convolucion de la FFT Ver cual es el pico de las correlaciones entre las lineas,nos quedaremos con este.

Calcular la desviacin cuadrtica ms pequea entre las lineas candidatas y la que tenemos
!

Nos quedaremos con esa linea como linea decodificada y repetiremos el proceso.

Decodificacion de VideoCrypt y Nagravision


Explicacion del metodo que utilizaremos
El codigo fuente representativo en el que se usa la FFT en C para decodificar cada linea en VideoCrypt es el decodificar siguiente:
/* transform luminance of each line into the frequency domain using the fast fourier transform */ using for (i = lumres; i < fftsize; i++) lumres; < fftsize; f[new][i] = 0.0; /* zero padding */ f[new][i] memcpy(f[new], lum[new], sizeof(float) * lumres); memcpy(f[new], lum[new], sizeof(float) lumres); real_fft(f[new] - 1, fftsize, 1); /* FFT */ real_fft(f[new] fftsize, if (line) { /* compute cross-correlation using real FFT convolution */ cross/* complex multiplication in the frequency domain is equivalent to convolution in time domain */ f[last][0] *= f[new][0]; /* DC part and sample-frequency/2 */ samplef[last][1] *= f[new][1]; /* are always real */ for (i = 2; i < fftsize; i += 2) { < fftsize; /* multiplication of complex numbers */ dum = f[last][i]; f[last][i]; f[last][i ] = f[last][i] * f[new][i] + f[last][i+1] * f[new][i+1]; f[last][i] f[new][i] f[last][i+1] = dum * f[new][i+1] - f[last][i+1] * f[new][i]; f[new][i]; } real_fft(f[last] - 1, fftsize, -1); /* inverse transform */ real_fft(f[last] fftsize, /* find peak in cross-correlation */ crossmaxsum = -1e20; for (x = 0; x < lumres; x++) < lumres; if (f[last][x] + f[last][fftsize - lumres + x] > maxsum) { (f[last][x] > maxsum) maxsum = f[last][x] + f[last][fftsize - lumres + x]; f[last][x] offset[line] = x; offset[line] } offset[line] = (offset[line] + offset[line - 1]) % lumres; /* Con esto guardamos el desplazamiento a aplicar a la linea*/ offset[line] (offset[line] lumres; linea*/ }

Decodificacion de VideoCrypt y Nagravision


Como decodificarla - VideoCrypt

En VideoCrypt, las lineas candidatas se VideoCrypt, obtienen de la siguiente forma:


!

Si tenemos la siguiente linea codificada:


7890123456

Vamos desplazando los pixels hasta obtener todas las posibles lineas candidatas:
7890123456 6789012345 5678901234 ... 9012345678 8901234567

Decodificacion de VideoCrypt y Nagravision


Como decodificarla - Nagravision

En NagraVision, las lineas candidatas se NagraVision, obtienen:


!

Cogiendo todas las lineas codificadas que aparecen en la pantalla y no hayan sido ya decodificadas (siempre y cuando no pertenezcan a las 32 ultimas, ya que estas son del frame siguiente. Estas se almacenaran en un buffer para ser utilizadas en la decodificacion del frame siguiente). Y ademas, tambien cogeremos las ultimas 32 lineas ademas, que aparecieron en el frame anterior y que fueron almacenadas en otro buffer.

Decodificacion de VideoCrypt y Nagravision


Pasos finales - Ejemplos

En VideoCrypt se puede utilizar un algoritmo de reconocimiento de bordes para optimizar los resultados obtenidos por el metodo de decodificacion antes explicado. Dicha mejora se puede observar en las siguientes fotografias. En la de la izquierda no se usa la mejora, en la otra si.

Decodificacion de VideoCrypt y Nagravision


Pasos finales- Ejemplos finales-

Por ultimo solo quedaria aplicar el color a las lineas. lineas.

Decodificacion de VideoCrypt y Nagravision


Pasos finales - Ejemplos En NagraVision, ademas, para poder llevar a cabo el NagraVision, ademas, proceso descrito, es necesario conocer el algoritmo de reemplazo de lineas (de las 32 que hay en el buffer). Este algoritmo es conocido (se puede obtener mediante metodos matematicos o mediante Ingenieria Inversa, vamos, destripando el decodificador original), y su clave de reemplazo es una consecucion de numeros llamada KEY. En el caso de Canal + Espaa es la siguiente:
10, 11, 12, 13, 16, 17, 18, 19, 13, 14, 15, 16, 0, 1, 2, 3,21, 22, 23, 24, 18, 19, 20, 21, 23, 24, 25, 26, 26, 27, 28, 29, 19, 20, 21, 22, 11, 12, 13, 14, 28, 29, 30, 31, 4, 5, 6, 7,22, 23, 24, 25, 5, 6, 7, 8, 31, 0, 1, 2, 27, 28, 29, 30, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 25, 26, 27, 28,15, 16, 17, 18, 7, 8, 9, 10, 17, 18, 19, 20, 29, 30, 31, 0, 24, 25, 26, 27, 20, 21, 22, 23, 1, 2, 3, 4, 6, 7, 8, 9,12, 13, 14, 15, 9, 10, 11, 12, 2, 3, 4, 5, 30, 31, 0, 1, 24, 25, 26, 27, 2, 3, 4, 5, 31, 0, 1, 2, 7, 8, 9, 10,13, 14, 15, 16, 26, 27, 28, 29, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 5, 6, 7, 8, 19, 20, 21, 22, 12, 13, 14, 15,17, 18, 19, 20, 27, 28, 29, 30, 10, 11, 12, 13, 11, 12, 13, 14, 6, 7, 8, 9, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7,3, 4, 5, 6, 8, 9, 10, 11, 15, 16, 17, 18, 23, 24, 25, 26, 29, 30, 31, 0, 25, 26, 27, 28, 9, 10, 11, 12, 21, 22, 23, 24,20, 21, 22, 23, 30, 31, 0, 1, 16, 17, 18, 19, 28, 29, 30, 31

Por ultimo solo quedaria aplicar el color a las lineas. lineas.

Decodificacion de VideoCrypt y Nagravision


Potencia - Ejemplos
Se pueden modificar ciertos parametros para la decodificacion: decodificacion:
!

Parametros de VideoCrypt: VideoCrypt:


-half resolution: Reduce la resolucion a la mitad incrementando la velocidad de decodificacion. decodificacion. -correct edge : Mejora la calidad de decodificacion utilizando el algoritmo de reconocimiento de bordes. bordes. -mark edge, mark brake, show deadzone: Estos valores se pueden deadzone: seleccionar para estudiar el funcionamiento del algoritmo. Se puede elegir algoritmo. que se muestren los puntos de corte donde se hace el corte a las lineas. O lineas. que se muestren los puntos donde se han reconocido bordes. bordes. -removed pixel columns: Este valor se utiliza para eliminar pixels espureos que introduce la tarjeta capturadora de video a al capturar la imagen a ser decodificada, este valor depende del tipo de tarjeta utilizada. decodificada, utilizada. -odd, even, all : Se pueden elegir que se comparen solo las lineas pares, o las impares o todas. Si se comparan solo las pares o las impares el todas. algoritmo es mas rapido que si se comparan todas las lineas. lineas.

Decodificacion de VideoCrypt y Nagravision


Potencia - Ejemplos

Potencia de VideoCrypt: VideoCrypt: Cyrix 133 MHz Celeron 400 MHz

Optimizacion full half resolution half line half resolution, half line

0.12 fps 0.21 fps 0.23 fps 0.33 fps

0.6 fps 1.0 fps 1.1 fps 1.6 fps

Decodificacion de VideoCrypt y Nagravision


Potencia - Ejemplos
Parametros de NagraVision: NagraVision:
-odd, even, all : Se pueden comparar solo las lineas pares o impares o todas. Si se comparan todas las lineas el algoritmo todas. es mas lento que si se comparan solo las impares o las pares. -compare steps : Indica el grado del salto que se ha de realizar entre las lineas que se van a comparar. comparar. -deepness : Cuantas lineas se van a comparar. Si elegimos comparar. menor numero de lineas el algoritmo sera mas rapido. rapido. -ignore black liens: Podemos activar este campo para pasar por alto las lineas negras (que aparecen en peliculas en las bandas superior e inferior). -limit of black lines: Seleccionamos el numero maximo de lineas negras a pasar por alto (ya que pueden aparecer tambien (ya lineas negras dentro de la propia pelicula que no deben ser pasadas por alto).

Decodificacion de VideoCrypt y Nagravision


Potencia - Ejemplos

Potencia de NagraVision: NagraVision: Cyrix 133 MHz Celeron 400 MHz

Optimizacion full half line

0.57 fps 1.0 fps

2.0 fps 2.8 fps

Decodificacion de VideoCrypt y Nagravision


Potencia - Ejemplos

Se puede observar que la velocidad del algoritmo de NagraVision es mas rapido. rapido. Aun asi, la mayor rapidez optima conseguida es de casi 3 fps asi, (Frames Per Second). Cuando en las seales de television normales se visualizan a 25 fps.Por lo que hay que reducir un poco la optimizacion para que funcione a partir de 10 fps (con los cuales apenas se observa la perdida de continuidad de las imagenes). imagenes). Aunque reduciendo la optimizacion, aparecen a veces fallos de optimizacion, decodificacion como se puede observa en la siguiente imagen. imagen.

Decodificacion de VideoCrypt y Nagravision


Potencia - Ejemplos

Decodificacion de VideoCrypt y Nagravision


Importancia del Hardware a usar

La importancia del conocido chip BT848:


Se eligio este chip para la decodificacion de estas seales ya que es capaz de realizar:
!

Una captura optima de la imagen codificada en el formato PAL, ya que sigue ya estrictamente su estandar, cosa que algunas tarjetas capturadoras no hacen. estandar, Separar de forma eficiente la seal correspondiente a la crominancia y a la luminancia de cada uno de los pixels que conforman la imagen (ya que muchas otras capturadoras no pierden parte de la seal correspondiente a la crominancia y por ello solo sirven para decodificar la seal en blanco y negro). negro). Ademas, este chip cuenta con registros especiales que facilitan las operaciones Ademas, operaciones realizadas en el algoritmo de decodificacion, por lo que mejora la velocidad de decodificacion, decodificacion. decodificacion.

Por tanto, la mayoria de los programas estan optimizados para ser utilizados con tarjetas capturadoras de video que posean este chip o uno de su famila. famila.

Decodificacion de VideoCrypt y Nagravision


Conclusiones
!

En estos momentos, este tipo de encriptacin no supone un problema si queremos descodificarla. Gracias a la feliz idea de de quienes se les ocurrio la utilizacion de este algoritmo y a la utilizacin de la FFT (ya que otros metodos son mucho mas lentos).Tambien la mejora de la potencia de los ordenadores actuales ha permitido que la calidad obtenida sea optima (ao 2000, actualmente se ha mejorado aun mas). Se han mejorado los sistemas de criptografia con los sistemas DVB que realizan una encriptacion digital de la seal y la emiten de forma digital (ya que en el caso de VideoCryp y Nagravision era analogica), y por tanto no permiten este tipo de ataques,pero analogica), ya han sido desprotegidos en la actualidad mediante el analisis de las seales de comunicacin entre los descodificadores y las tarjetas inteligentes SmartCards.

Decodificacion de VideoCrypt y Nagravision


Anexo

Links de Interes:
!

VideoCrypt: VideoCrypt:
http://mitglied.lycos.de/nooperation/hVCPlus/index.html http://www.cl.cam.ac.uk/~mgk25/tv-crypt/image-processing/antisky.html http://www.cl.cam.ac.uk/ ~mgk25/tv-crypt/ image-processing/

NagraVision: NagraVision:
http://www.cl.cam.ac.uk/~mgk25/nagra.pdf http://www.cl.cam.ac.uk/ ~mgk25/

VideoCrypt y Nagravision: Nagravision:


http://tvmasterz0.tripod.com/a/index.html http://usuarios.lycos.es/Mar8985/id26.htm http://tvfreaks.virtualave.net/index.html http://nagra.virtualave.net/ http://nagra.virtualave.net/

Decodificacion de VideoCrypt y Nagravision


Anexo

Programas de descodificacion:
!

VideoCrypt: VideoCrypt:
Nombre
AVT CH5 ExoTV GlideTV HVCPlus IWantItALL MoreATITV MoreTVVC MultiDec XawTV XCrypt

Fecha
2000 2000 20.10.2001 1999 2000 2000 2000 2000 14.04.2002 1999 2000

SSOO
Windows Windows Windows Linux Windows Windows Windows Windows Windows Linux Windows

Decodificacion de VideoCrypt y Nagravision


Anexo
Programas de descodificacion: descodificacion:
!

NagraVision: NagraVision:
Nombre
AiWTV BorgTV ExoTV FreeTV GlideTV K!TV XP MarDec Marvin MeuhMeuh TV MoreATITV MoreCapture MoreTV MoreTV Erazor MultiDec NagraTV 2 NagraView NoTV PCTV PubS Syster TeleON W2k XawTV

Fecha

2000 25.12.2001 20.10.2001 2001 1999 14.04.2002 2000 1999 2002 2000 2001 2001 2000 14.04.2002 1999 2000 20.09.2001 1999 14.10.1999 2001 2000 1999

Windows Windows Windows Windows Linux Windows Windows Linux Windows Windows Windows Windows Windows Windows Linux Windows Windows Ms-DOS MsWindows Windows Windows Windows

SSOO

Anda mungkin juga menyukai