Cómo determinar la paridad de claves para encriptación con DES

Un tema que resulta confuso es determinar si una clave DES es odd parity o even parity. El algoritmo DES generalmente se utiliza con claves odd parity ya que son más seguras. Un criptograma creado con una clave even parity es más fácil de desencriptar.

Primero, para que nos pongamos de acuerdo, traduzcamos:

  • Even: par
  • Odd: impar (odd también significa extraño o raro, en inglés).

La condición para que una clave sea odd, es que cada uno de sus bytes sea odd. Si esta condición no se cumple, entonces es even.

  • Si todos los bytes son odd, la clave es odd y es aceptada.
  • Si al menos un byte es even, la clave es even y es rechazada. Algunos sistemas pueden hacer un ajuste para convertirla en odd.

Luego, la condición de odd o even de un byte se determina así:

  • Si el número de “1” en su representación binaria es impar, entonces el byte es odd.
  • Si el número de “1” en su representación binaria es par, entonces el byte es even.

Finalmente, el algoritmo para ajustar una clave even a odd debería ser byte a byte: Si un byte es even, se convierte ese byte a odd. Así para cada uno de los 8 bytes (para una clave single length). La forma en que se debería hacer este ajuste es el siguiente:

  • Si el número de “1” desde el bit 1 al 7 es impar (odd), se setea el bit 8 en “0”. Con esto se obtiene una cantidad impar de “1” en todo el byte, dejandolo odd.
  • Si el número de “1” desde el bit 1 al 7 es par (even), se setea el bit 8 en “1”. Con esto se obtiene una cantidad impar de “1” en todo el byte, dejandolo odd.

En todos los casos, se entiende que el bit 1 es el de la izquierda y el 8 el de la derecha.

Uso de Branches y Tags con SVN

El uso de branches y tags en SVN nos permite una mejor organización del trabajo en equipo. Si bien no muchos usuarios de SVN utilizan esta funcionalidad su uso trae varias ventajas.

Branches

Los branches se utilizan cuando se desea crear una rama independiente de desarrollo para trabajar en alguna funcionalidad nueva de un proyecto que todavía no se quiere incorporar a la línea principal. De esta forma, se crea una copia del proyecto en una carpeta /branches y el programador encargado de esta nueva característica cambiará (switch, según la terminología de SVN) su working copy a este nuevo branch y trabajará sobre este.

Cuando este programador realice operaciones de commit las realizará sobre su branch, sin afectar el desarrollo principal. Cuando esté listo para integrar sus cambios a la línea de trabajo principal, realizará una operación de merge.

Tags

El uso de tags se da cuando queremos “marcar” una determinada revisión por alguna razón en especial. Por ejemplo, podemos querer marcarla porque se trata de un release entregado al cliente. En este caso, como en el anterior, se crea una copia de la revisión deseada del repositorio en la carpeta tags. Técnicamente la creación de un branch y un tag es idéntica, ya que se realizan con el comando svn copy. La diferencia radica en la forma en que se les da su uso; en los branches está permitido realizar commits y en los tags no. Esta “prohibición” sobre la realización de commits o no es virtual, ya que no existe impedimento técnico sino que son los programadores los que lo deben tener en cuenta.

Creación y uso de branches y tags

El comando para la creación, tanto de branches como tags, es svn copy:

$ svn copy http://svn.example.com/proyecto/trunk \            http://svn.example.com/proyecto/branches/soporte-IPv6 \       -m "Branch para agregar soporte para IP v6" 

Si trabajamos con Tortoise SVN es aún más fácil, ya que tenemos un comando Branch/tag. Con Tortoise SVN tan solo tenemos que hacer clic derecho sobre nuestra working copy y elegir el comando Branch/tag. Tortoise reconocerá la URL de origen en el repositorio y nos pedirá la URL de destino, donde queremos hacer la copia.

En la ventana para crear un nuevo branch o tag, también tenemos un checkbox que podemos marcar para automáticamente hacer el switch al branch o al tag recientemente creado. De no hacerlo, podremos realizar el switch en cualquier otro momento con el comando homónimo.

Finalmente, para reintegrar un branch a la línea de desarrollo principal, recurrimos al comando Merge.

Estructura de directorios recomendada

La estructura de directorios recomendada por SVN, para la raíz de nuestros repositorios es de tres carpetas:

  • /trunk: este directorio aloja la línea de desarrollo principal.
  • /tags: en esta carpeta guardamos los tags que vayamos creando, por ejemplo /trunk/release-1.2/.
  • /branches: en esta carpeta guardamos los branches que creemos.

Es una buena práctica seguir esta estructura, aunque aún no hayamos decidido trabajar con branches y tags ya que de decidirlo más adelante será más complicado cambiarlo.

5 consejos para gestionar el Facebook de tu empresa

Desde que surgió Facebook como un medio de comunicación más para que las empresas se conecten con sus clientes he visto de todo. Hay excelentes casos de uso de la red social para salir de la más grave de las crisis comunicacionales con la mayor elegancia posible y hay algunos que se meten solos en lios.

Recientemente, un conocido inició un nuevo emprendimiento y empezó a utilizar Facebook para promocionarse. Enseguida vi muchos errores básicos en la estrategia de uso de la red social y me pareció una buena oportunidad dedicarle un artículo al respecto para ayudarlo. Así que ahí van mis 5 consejos básicos para gestionar el Facebook de tu empresa.

1. Creá una Página.

El primer error, y uno de los más comunes, es crear la página de tu negocio como una nueva cuenta de Facebook. Esto es un error, porque tus clientes deberán hacerse “amigos” de tu negocio y vos tendrás que aceptar su solicitud de amistad. El principal problema que surge aquí es la privacidad, ya que al ser “amigos” de nuestros clientes, estaremos habilitados para ver todo lo que el cliente publica en sus cuentas personales de Facebook. Entonces, habrá muchos potenciales clientes que advertirán esto y rechazarán la posibilidad de hacerse amigos para evitar que alguien desconocido acceda a su contenido personal.

La forma correcta, entonces, es crear una Página, la cual manejaremos desde nuestra cuenta personal.

2. Elegí cuidadosamente el contenido

Publicar y republicar el mismo anuncio o posteo hasta el cansancio es un gran ¡NO! Esto no hace más que cansar a la gente hasta lograr que abandone tu página. A nadie le gusta entrar a su muro de Facebook y encontrarlo lleno de publicidad.

No hace falta todos los días subir el mismo banner publicitario donde describís lo que hacés y publicás tu teléfono. No aporta nada. Perdés clientes.

Lo que queremos es mantener el interés del público de nuestra página, aunque no se conviertan en clientes YA. Para esto, el tipo de contenido que podés publicar puede estar relacionado con lo que hacés.

¿Das clases de música? Linkeá videos de YouTube que estén buenos, publicá fotos nuevas cada tanto de tu trabajo con tus alumnos. ¿Sos especialista en alguna tecnología? Escribí algún comentario relevante sobre alguna tecnología novedosa, publicá links de interés para tu público. En fin, mostrá lo que hacés, demostrá lo que sabés.

Si la gente quiere contactarte, en la sección de información de tu página encontrarán tu teléfono o tu email. O te podrán dejar tu comentario.

3. No etiquetes a tus amigos

No sé por qué Facebook pensó que las etiquetas eran una buena idea, a nadie le gusta que lo etiqueten. Pero, que etiquetar a alguien en un anuncio, ya es pasarse de la raya.

Dejá las etiquetas solo para cuando realmente aparezca la foto de esa persona, y asegurate de haber obtenido el consentimiento de esa persona para etiquetarla.

Un caso de especial cuidado debe tenerse cuando se publican fotos de menores. Asegurate de tener el permiso para hacerlo o solo publicá fotos donde no se vean sus rostros para evitarte problemas.

4. Hablá con tus seguidores

No hay nada más decepcionante que una empresa que no responde. Si te hacen una consulta, asegurate de poder responderla en un tiempo razonable.

Las redes sociales son justamente para eso, para estar en contacto permanente con tus seguidores, clientes actuales o que en un futuro podrían serlo.

Por eso, mantenelos actualizados sobre las actividades y novedades de tu negocio y respondé a sus consultas ya que la respuesta para uno puede ser de utilidad para muchos.

5. Entendé las críticas

Es parte del juego, si estás en redes sociales, no va a faltar quien te haga una crítica. Puede ser desde un cliente que, con razón te haga saber que no estuvo conforme con tu servicio, hasta uno realmente quejoso o incluso, un competidor encubierto.

Recordá que esto es parte del juego de estar en las redes sociales. La forma en que vos respondas esa crítica va a ser vista por todos tus seguidores y podrás hacer una diferencia a tu favor o en contra.

Incluso, tené en cuenta que si resolvés el problema del cliente de forma privada, el cliente podrá acudir a las redes sociales para mostrar su descontento o su agrado en la resolución que le diste a su problema.