- 질문 게시판입니다.
Date 23/08/11 17:24:14
Name   ㅢㅘㅞ
Subject   짧은 길이 데이터에 대한 무결성 보장을 위한 문의
8~16 Bytes에 대한 무결성을 보장하려 합니다.
무결성 데이터를 가능하면 최소 길이와 최소 연산력으로 해결하려고 합니다.
이 부분에 대한 요건이나 가이드 같은 것이 있을까요?

환경이 구려서 bit flip이 2회이상 발생할 수도 있습니다 :(



1


아침커피
뻘플입니다만 =_= 최대 8바이트이면 int64형 변수 정도의 크기로 보이는데 그냥 두 번 전송한 뒤에 두 값이 같은지 다른지를 보는 방법은 안 되려나요? 예를 들어 A가 1차 전송, B가 2차 전송일 때 A == B 이면 통과, A != B 이면 3차로 C를 전송한 후 A == C 이면 A값을, B == C 이면 B 값을 사용하는 방식을 생각해 보았습니다 ㅎ
ㅢㅘㅞ
nvm <-> ram 저장, 복원인데요 저장, 복원 모두 hw를 신뢰할 수 없는 상황이 극히 드물게 있어 sw레벨에서 보완을 해야 합니다!
ecc는 미지원이라고 생각해야할 것 같슴다
그런데
이론적으로야 틀리기 시작하면 얼마가 되어도 답은 없겠지요.
확률의 문제이니 데이터의 크기가 작은 대신 반드시 올바른 값을 가져야 한다면
동일한 샘플을 여러 개 저장하는 것이 현실적일 것 같습니다.
전에 무선오디오 만들 때 무조건 7번씩 전송하던 걸 본 적이 있습니다.
2
여러번 보내는 방법만으론 같은 오류가 여러번 날 확률이 0이 아니니 패리티 코드도 있어야 하겠네요.
X = [u32;4];
C = [X[0]^X[1], X[2]^X[3], X[0]^X[2], X[1]^X[3]];
로 해서 받는쪽에서 C를 검증하시면 bitflip 2회까진 버틸겁니다.

아니면 그냥 C = [X[0]^X[1]^X[2]^X[3], X[0]^X[1]^X[2]^X[3]] 하셔도 2회 버티기는 합니다.
그런데
좀 더 생각해 봤는데
통신 프로토콜이나 하드웨어에 따라 특정 번째 bit가 깨지거나 하는 경우가 있을 수 있으므로
data를 n bit shift한 것을 여러 번 보내어
받는 쪽에서 원상복귀한 후 비교하는 식으로 접근할 수 있겠습니다.
이때 n 값은 소수로 하면 중복하여 깨지는 bit가 겹치는 것을 피할 수 있습니다.
보통 ICV를 생성하는 방법은 특정 패턴에 따라 seed를 만들고 그걸 XOR하는 방식인데
그러면 0이나 1로 값이 고정되는 경향이 있을 때 검출이 용이해집니다.
따라서 bit shift, 다양한 패턴 ... 더 보기
좀 더 생각해 봤는데
통신 프로토콜이나 하드웨어에 따라 특정 번째 bit가 깨지거나 하는 경우가 있을 수 있으므로
data를 n bit shift한 것을 여러 번 보내어
받는 쪽에서 원상복귀한 후 비교하는 식으로 접근할 수 있겠습니다.
이때 n 값은 소수로 하면 중복하여 깨지는 bit가 겹치는 것을 피할 수 있습니다.
보통 ICV를 생성하는 방법은 특정 패턴에 따라 seed를 만들고 그걸 XOR하는 방식인데
그러면 0이나 1로 값이 고정되는 경향이 있을 때 검출이 용이해집니다.
따라서 bit shift, 다양한 패턴 XOR 등으로 여러 벌을 보내고
이를 받는 쪽에서 원복한 후
해당 여러 소스를 비교하여 높은 확률인 bit를 채택하는 등을 생각해 볼 수 있겠습니다.
T.Robin
고전적인 접근입니다만, CRC check를 고려해볼 수 있을 것 같습니다.

아니면, 32비트 FNV Hash를 데이터 뒤에 붙여서 확인해 보시면 어떨까 합니다.
http://www.isthe.com/chongo/tech/comp/fnv/index.html

딱히 측정은 안 해봤습니다만, 계산식의 복잡성만 따지고 보면 FNV hash가 CRC보다 더 가볍지 않을까...... 싶습니다.
보이차
재미있는 주제네요. 기본적으로는 소프트웨어단에서 crc 등을 구현하고 여러벙 확인하는 방법밖에 없지 않나 싶읍니다
목록
번호 제목 이름 날짜 조회 추천
15156 IT/컴퓨터애플워치 기기 선택 질문입니다. 10 아저씨무시하지마 23/08/23 3293 0
15153 IT/컴퓨터SKB 인터넷+TV 괜찮나요? 8 물냉과비냉사이 23/08/22 2495 0
15149 IT/컴퓨터랩탑 사서 목요일 새벽에 출국가능할까요..? 9 even&odds 23/08/20 2868 0
15138 IT/컴퓨터일본 여행 시 휴대폰 충전 관련 문의드립니다.(아이폰 충전기) 6 Yossi 23/08/15 6295 0
15137 IT/컴퓨터애플 라이트닝 이어폰 8핀->오디오 변환 잭은 어떻게 찾으면 될까요? 15 다람쥐 23/08/15 4505 0
15136 IT/컴퓨터주님, 오늘도 정의로운 도둑이 되는 것을 허락해주세요 6 ㅢㅘㅞ 23/08/14 3073 0
15135 IT/컴퓨터에버노트와 유사한 메모 프로그램이 있을까요? 12 눈사람 23/08/14 2308 0
15130 IT/컴퓨터하드디스크를 샀는데 인식을 어중간하게 하는거 같읍니다. 5 카리나남편 23/08/12 3016 0
15126 IT/컴퓨터짧은 길이 데이터에 대한 무결성 보장을 위한 문의 8 ㅢㅘㅞ 23/08/11 2527 1
15125 IT/컴퓨터imgur 말고 뭐 써야 하나요? 14 *alchemist* 23/08/11 3407 0
15118 IT/컴퓨터이동전화기 추천받습니다 31 T.Robin 23/08/09 3341 0
15115 IT/컴퓨터마우스가 너무 잘 망가집니다 18 다람쥐 23/08/08 3384 0
15099 IT/컴퓨터컴퓨터에서 이상하게 영상을 볼때 렉이 심한데.. 2 어둠달골짜기 23/08/01 2898 0
15097 IT/컴퓨터저소음 기계식 키보드가 있을까요? 15 ce525 23/07/31 2854 0
15091 IT/컴퓨터An operating system wasn't found 에러 9 심해냉장고 23/07/29 4305 0
15082 IT/컴퓨터보조 모니터 추천 부탁드려요 4 어둠달골짜기 23/07/26 2507 0
15080 IT/컴퓨터개발에 대해서 체계적으로 배우려면 어떻게 해야 할까요? 13 Shameless 23/07/25 5748 0
15056 IT/컴퓨터크롬 쓰지 말라는데요? 누가요? 2 cummings 23/07/19 3355 0
15036 IT/컴퓨터사용 안 한지 오래된 보조배터리 써도 괜찮을까요? 6 비어-도슨트 23/07/15 5565 0
15034 IT/컴퓨터앱 설치 가능한 iOS 디바이스 버전은? 2 토비 23/07/14 2752 0
15028 IT/컴퓨터포토샵을 배우고 싶습니다 5 [익명] 23/07/13 2471 0
15017 IT/컴퓨터디즈니플러스 관련 4 켈로그김 23/07/11 4460 0
15004 IT/컴퓨터모니터암 추천 13 도리돌이 23/07/07 2669 0
14995 IT/컴퓨터다이슨 공기청정기 전기 관련 문의 wwe13kane 23/07/05 3696 0
14977 IT/컴퓨터갤럭시 S6 Lite 질문입니다. 13 R세제곱인생 23/06/29 3650 0
목록

+ : 최근 2시간내에 달린 댓글
+ : 최근 4시간내에 달린 댓글

댓글