본문 바로가기
반응형

알고리즘 구상4

[알고리즘] CRC16 테이블을 이용한 데이터 암호화 임베디드 프로젝트를 진행 중 RF LF 통신의 ID값을 암호화해달라는 요청이 있었습니다 일반적으로 많은 암호화 라이브러리가 존재하지만 해당 프로젝트에서 사용된 칩의 사양 자체가 워낙 낮다 보니 새로운 방식의 알고리즘을 통한 방법이 필요했습니다 그래서 기본적으로 사용해 오던 CRC16 테이블 방식에서 알고리즘을 추가하여 전체 ID를 암호화하는 방식을 구상했습니다 기본적으로 암호화가 진행될 아이디는 난수+아이디로 구성됩니다 여기에 사용될 난수는 아이디를 전달하는 입장에서 발생시키고 받는 쪽에서는 해당 난수를 통해 CRC16의 역변환을 실행합니다 static unsigned char auchCRCHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0.. 2022. 9. 19.
[알고리즘] 데이터 Schedule 데이터 스케줄링이란 말 그대로 객체지향 언어에서 하나의 통신 서로를 통해 데이터를 전송할 때 생길수 있는 문제에 대해 통신 교통정리의 생각으로 접근해서 알고리즘을 구상했고 진행했던 프로젝트에 적용하여 상용화까지 성공했습니다. 어떤 시스템에서 사용했냐도 중요할 텐데요 저는 Android 태블릿의 RS232 통신을 사용하는 데 있어 해당 알고리즘을 적용했습니다. 안드로이드 시스템은 객체지향으로 여러 Thread들로부터 RS232 통신을 전송하지만 통 신설 로자 체는 232 포트 하나가 유일하기에 각 Thread 간의 간섭이 생겼습니다. 알고리즘 구상 이 문제에 대해 생각해보던 중 아래와 같은 그림의 현재 시스템에서 각 Thread에서 동시에 RS232쪽으로 데이터를 전송한다고 하면 먼저 전송을 시작한 Thr.. 2021. 12. 28.
[알고리즘] 헥사데이터 문자열 변환 송수신 (문자열에 0x00값 포함) 서버를 개발하다 보면 대부분의 프로그램 구조는 송수신을 처리하는 게 대부분이라고 할 수 있습니다 단연 서버뿐만 아니라 여러 가지 임베디드나 어플 등 모든 통신에서 데이터를 통신할 때 문자열 ASCII로만 송수신을 한다면 크게 문제사항은 없을 것이나 예를 들어 데이터 값에 0x00 값이 들어있는 경우, 이런 경우에는 데이터 전송 시에 0x00 뒤쪽 데이터는 다 날아가는 등의 문제를 겪어보셨을 거예요 A = [ 0x01 0x02 0x00 0x03 0x04 0x05 ] 위와 같은 데이터가 있고 통신을 했을 때 1byte식 직접 전송하고 직접 받는다면 크게 문제는 없지만 예를 들어서 Mysql같은 sql구문에 넣어야 하는 경우 등을 생각해보면 문제는 달라집니다 1) 문제점 고민 자 어떠한 문제가 생기느냐 하면 .. 2021. 3. 12.
[알고리즘] 겹치지 않는 16자리 상품권 코드 만들기 이번에는 회사에서 진행한 상품권 발행 관련 알고리즘에 대한 이야기를 해보려 합니다. 시중에서 많이 접해본 문화 상품권, 백화점 상품권 이러한 상품권을 보면 대게는 16자리로 구성이 되어 있는데 이 16자리 숫자는 어떻게 겹치지 않고 발행이 가능한것일까 라는 생각에서 알고리즘을 생각해보았습니다. 일단 겹치지 않고 발행이라는 전제보다 먼저 생각해볼 문제는 사람들이 임의로 숫자를 넣어서 16자리의 숫자를 모두 맞힐 확률이 얼마나 될까..?? 에대한 고민이 전제가 되어야 합니다. 1) 임의로 숫자를 맞출 확률 상품권의 코드는 16자리로 아래와 같이 나타납니다. 1234-5678-1234-ABCD 자그럼 여기에서 한자리의 숫자는 0~9까지 추가로 A~F까지라고 가정하면 0 1 2 3 4 5 6 7 8 9 A B .. 2020. 8. 12.
반응형