Академический Документы
Профессиональный Документы
Культура Документы
Existen dos alternativa para integrar cores IP a Xilinx. Como solución a este inconveniente, se ha
medida en un sistema MicroBlaze. El primero de desarrollado un script en Perl que trabaja sobre los
ellos es el On-Chip Peripheral Bus (OPB), que ficheros XDL de los diferentes módulos
forma parte del estándar de bus IBM Core implementados [12]. Finalmente, para disponer de
Connect. La otra posibilidad es el Fast Simplex un sistema auto-reconfigurable fue necesario
Link (FSL), usado para el envío y recepción de emplear un circuito externo, que conecta un GPIO
datos desde/hacia los registros a altas velocidades del procesador MicroBlaze al puerto de
[9]. configuración. Un diagrama simplificado de este
circuito se muestra en la figura 1.
3.2. Auto-Reconfiguración en Spartan-3
3.3. uCLinux en MicroBlaze
Tradicionalmente, las herramientas de diseño
automático carecen de soporte para uCLinux [13] es una adaptación de Linux para
reconfiguración en los flujos de diseño estándar. procesadores que carecen de unidad de manejo de
Sin embargo, Xilinx ofrece una alternativa para memoria (MMU - Memory Management Unit). La
soportar reconfiguración parcial: Modular Design principal implicación de la ausencia de MMU es
junto con el modo RECONFIG de la restricción que no existe protección de memoria (los procesos
AREA_GROUP [10]. Además, se dispone de un pueden escribir en cualquier posición de memoria)
componente llamado bus macro [10] para la y que no existe memoria virtual (swapping, etc).
interconexión entre los diferentes módulos del Sin embargo, para la mayoría de aplicaciones de
diseño. Desafortunadamente, este componente usuario la única limitación es que la llamada del
necesita de los buffers tri-estado, y no puede ser sistema fork() no se encuentra disponible, y es
empleado en diseños sobre Spartan-3. Sin necesario emplear vfork().
embargo, el concepto de bus macro puede ser Existen varias adaptaciones de uCLinux para
extendido a otros componentes de la FPGA, como procesadores sin MMU, incluidos los
se indica en [11], siendo posible desarrollar bus procesadores ColdFire, NEC v850, y el
macros usando LUTs [12]. procesador MicroBlaze empleado en este trabajo.
La versión actual se basa en el kernel de Linux
2.4.20, pero ya existen trabajos activos para
CE_B SELECTMAP SPARTAN-3 FPGA adaptar los kernels 2.5/2.6.
CONFIG. CLK
FLASH
DATA
GPIO
RECONFIG.
4. Implementación de SSH
COPROCESSOR
BUS MACROS
MODULO
FPGA con el coprocesador del algoritmo presentan 32 bits de ancho y una FIFO de 16
seleccionado durante la etapa de negociación. palabras.
Este manejo ha sido añadido en las funciones MicroBlaze a una red LAN interna de 10 Mbps
adecuadas de la librería, reemplazando de forma con un número reducido de maquinas, incluido el
transparente al cifrado y descifrado software. servidor SSH, con el objetivo de minimizar el
impacto del tráfico en la red.
4.3. Reconfiguración en OpenSSH La tabla 2 muestra los resultados obtenidos
para las diferentes implementaciones de SSH (SW
Después de los cambios sobre las funciones de los y HW) y los algoritmos empleados. Estos
diferentes algoritmos, es necesario añadir las resultados prueban que el algoritmo AES es más
modificaciones que permitan la reconfiguración eficiente que el algoritmo 3DES cuando ambos se
del coprocesador en función del algoritmo ejecutan en software. En cambio, si se emplean
seleccionado. los coprocesadores hardware, se obtiene un
OpenSSH incluye una interfaz con la librería rendimiento similar para ambos algoritmos.
OpenSSL donde se inicializan los algoritmos Además, la mejora es dos veces superior en el
negociados previamente, y que serán empleados mejor de los casos (3DES). Sin embargo, el
durante la comunicación segura. Esta interfaz ha rendimiento obtenido en la transferencia de
sido modificada para realizar una llamada a la ficheros mediante SSH es peor que el protocolo de
función que realiza la reconfiguración parcial del transferencia de ficheros tradicional (FTP). Esto
coprocesador. En particular, esta función lee el se debe principalmente a la sobrecarga que supone
bitstream parcial del sistema de ficheros y lo envía el algoritmo de hash, en este caso el algoritmo
a través del GPIO conectado a la interfaz de MD5, que se ejecuta en software. Es importante
configuración. tener en cuenta que en este trabajo únicamente se
El código añadido chequea si el algoritmo han acelerado los algoritmos de cifrado, lo que
seleccionado se encuentra disponible como supone una pequeña parte de la complejidad del
coprocesador hardware, y posteriormente, protocolo SSH.
reconfigura la FPGA con el coprocesador
adecuado. Es importante comprobar que se Cripto. Fich. 1 Fich. 2 Fich. 3
Protocolo
emplea el mismo algoritmo para cifrado y Alg. 0,3 KB 2,4 KB 8,2 KB
descifrado, ya que SSH2 podría emplear un SSH AES 27,8 48,1 52,7
algoritmo diferente para cada operación. Software 3DES 16,7 26,6 30,3
SSH AES 33,2 60,4 66,4
4.4. Transferencia de ficheros Hardware 3DES 32,0 60,3 67,7
FTP None 877,3 696,1 683,2
Posteriormente a las modificaciones presentadas
con anterioridad, fue posible conectar con el Tabla 2. Velocidad de transferencia en Kbytes/seg.
servidor SSH e iniciar una sesión remota. Este
primer paso permite comprobar que la 4.5. Ventajas de la reconfiguración parcial en
funcionalidad de la aplicación no ha sido SSH
modificada tras los cambios.
Para evaluar la mejora debido al uso de La reconfiguración parcial de coprocesadores
coprocesadores hardware, se propone medir la hardware permite reducir el área necesaria, ya que
velocidad de transferencia al copiar un conjunto no es necesario disponer de todos los algoritmos
de ficheros a través de un canal seguro. La de cifrado, y contribuye con otras interesantes
aplicación scp (Secure Copy) se ha seleccionado ventajas [14] como el cambio en tiempo de
para este experimento. Secure Copy permite la ejecución del algoritmo, la posibilidad de
copia de ficheros entre sistemas mediante la actualizar el hardware y la capacidad de modificar
transferencia segura de los datos, usando el el algoritmo sin re-implementar el diseño.
protocolo SSH. Esta aplicación es adecuada para En nuestro sistema auto-reconfigurable, los
estos experimentos porque durante el proceso de diferentes bitstream parciales se encuentran
copia se muestra el tiempo empleado y el almacenados en un directorio de una
rendimiento final para cada fichero. El computadora, que los comporte a través del
experimento se llevó a cabo conectando el sistema protocolo de red NFS. El sistema MicroBlaze
monta ese directorio como parte de su sistema de Architectures”, Proc. IEEE Symposium on
ficheros, y obtiene los diferentes coprocesadores FCCM, April 2000, pp. 132-141.
de él, usando una idea similar a [13]. Si se [2] Ray C.C. Cheung, Wayne Luk and Peter
desarrolla una nueva versión de los Y.K. Cheung, “Reconfigurable Elliptic Curve
coprocesadores, el sistema puede hacer uso de Cryptosystems on a Chip”, Proc. of
ellos sin necesidad de parar la ejecución, ya que el DATE’05, 2005, pp. 24-29.
nuevo bitstream con las nuevas mejoras se [3] T. Ylonen, "SSH -- Secure Login
encuentra disponible de forma transparente. Connections over the Internet", Proc. 6th
USENIX Security Symposium, 1996, pp. 37-
5. Conclusiones y trabajo futuro 42.
[4] B. Schneier, Applied Cryptography, John
Las plataformas CSoC que incluyen procesadores Wiley & Sons, 1996, 2nd edition.
y lógica reconfigurable son buenas soluciones [5] William Stallings, Cryptography and
para acelerar la ejecución de aplicaciones, ya que Network Security: Principles and Practice,
permiten implementar las partes del código Prentice Hall, August 2002, 3rd edition.
críticas como coprocesadores específicos. Un [6] OpenSSH Project. Home page:
ejemplo de ello son las aplicaciones de http://www.openssh.com/
criptografía. Estas aplicaciones se benefician del [7] OpenSSL Project. Home page:
uso de aceleradores hardware, pero presentan un http://www.openssl.org/
serio problema cuando se emplean varios [8] Xilinx Inc., “MicroBlaze Processor
algoritmos: la cantidad de recursos lógicos Reference Guide”, 2004.
necesarios para disponer de todos los algoritmos. [9] Xilinx Inc., "Connecting Customized IP to
En este trabajo se muestra que la auto- the MicroBlaze Soft Processor Using the Fast
reconfiguración puede ser muy útil para cambiar Simplex Link (FSL)", Application Note 529,
el coprocesador que emplean las aplicaciones 2004.
reales de seguridad, como SSH. Mientras que la [10] Xilinx Inc., “Two Flows for Partial
aceleración hardware proporciona la mejora en el Reconfiguration: Module Based or
rendimiento, la capacidad de reconfiguración Difference Based”, Application Note 290,
permite un ahorro de área y la posibilidad de 2004.
actualización en tiempo de ejecución del [11] M. Dyer, C. Plessl, and M. Platzner,
coprocesador. Los resultados muestran que las "Partially Reconfigurable Cores for Xilinx
plataformas auto-reconfigurables son muy Virtex", LNCS 2438, pp. 292-301.
apropiadas para la implementación de las actuales [12] I. Gonzalez, E. Aguayo y S. Lopez-Buedo,
aplicaciones que emplean los modernos “Sistemas Embebidos Auto-Reconfigurables
protocolos de seguridad con selección dinámica sobre Spartan-3”, JCRA 2005, Granada,
de algoritmos. España, pp. 79-84.
Como trabajo futuro se continuará con la [13] J. A. Williams and N. W. Bergmann,
aceleración de todos los algoritmos que “Embedded Linux as a platform for
intervienen en el protocolo SSH. Esto supondrá dynamically self-reconfiguring systems-on-
disponer de más coprocesadores reconfigurables chip”, in Proc. ERSA’04, Las Vegas, Nevada,
para acelerar los algoritmos de integridad de datos 2004.
y los algoritmos de clave pública. El objetivo es [14] T. Wollinger, J. Guajardo and C. Paar:
obtener un rendimiento similar al protocolo FTP. “Security on FPGAs: state of the art
Finalmente, la reconfiguración parcial será llevada implementations and attacks”, ACM Trans.
a nivel de sistema operativo para dar soporte a Embedded Comput. Syst., 2004, 3, (3), pp.
múltiples tareas reconfigurables. 3045–3048.
Referencias