Yo tambien estoy haciendo algo similar, esta es la que entiendo del tema:
Checksum es una suma de verificacion, por ejemplo si estas transmitiendo una palabra, 8 bits, le puedes agregar un bit mas, este bit identifica si la suma de los 8 bits anteriores es par o impar. Creo que tambien se le llama bit de paridad. En el destino al recibir la palabra haces la misma comprobacion, si coincide el dato es valido.
Por lo que supongo estas trabajando con transmision serie asincrona, en la cual hay un bit de arranque y un bit de paro, es aqui donde puedes agregar el bit de paridad, osea quedaria:
1 bit de arranque
bits de caracteres o datos
1 bit de paridad
1 bit de parada
Para la correccion de errores el sistema necesariamente tiene que ser bidireccional, por ejemplo transmites el primer grupo de datos, el transmisor no enviara el siguiente grupo hasta no recibir la conformidad del receptor, el receptor los recibe y chequea el bit de paridad, si coincide envia la conformidad al transmisor, entonces este continua el ciclo. En caso que el bit de paridad no coincida el receptor envia un mensaje de error al transmisor y este vuelve a enviar el dato hasta que el receptor de la conformidad. Este es un sistema simple de deteccion de errores que tiene sus limitaciones, existen otros mucho mas elaborados.
Con respecto a las tarjetas telefonicas por alli creo que tengo un archivo que describe los tiempos de estas tarjetas, si lo quieres lo busco.
Con lo de la codificacion de datos creo estas un poco confundida, una cosa es que la tarjeta posea un unico codigo y otra es que el envio de ese codigo sea encriptado para evitar que sea leido.
Por ejemplo vas a abrir la puerta de tu garaje, tu control remoto emite un codigo unico, si encriptas el codigo de los datos que transmitas la trama sigue siendo unica, ponte que alguien la copia, entonces sabe que esa trama de datos encriptada abre la puerte del garaje. En pocas palabras encriptarlos vale poco.
Una opcion es que cada vez que transmitas un codigo, tanto el emisor y el receptor cambien el codigo para la siguiente vez, por ejemplo el codigo enviado es 4568, la siguiente vez ambos le suman 25 al codigo entonces el unico codigo que aceptara el receptor es 4593.
Espero haberme expresado bien.
Un saludo