- 질문 게시판입니다.
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 등을 구현하고 여러벙 확인하는 방법밖에 없지 않나 싶읍니다
목록
번호 제목 이름 날짜 조회 추천
15136 IT/컴퓨터주님, 오늘도 정의로운 도둑이 되는 것을 허락해주세요 6 ㅢㅘㅞ 23/08/14 2622 0
15135 IT/컴퓨터에버노트와 유사한 메모 프로그램이 있을까요? 12 눈사람 23/08/14 1996 0
15130 IT/컴퓨터하드디스크를 샀는데 인식을 어중간하게 하는거 같읍니다. 5 카리나남편 23/08/12 2513 0
15126 IT/컴퓨터짧은 길이 데이터에 대한 무결성 보장을 위한 문의 8 ㅢㅘㅞ 23/08/11 2171 1
15125 IT/컴퓨터imgur 말고 뭐 써야 하나요? 14 *alchemist* 23/08/11 2741 0
15118 IT/컴퓨터이동전화기 추천받습니다 31 T.Robin 23/08/09 2838 0
15115 IT/컴퓨터마우스가 너무 잘 망가집니다 18 다람쥐 23/08/08 2817 0
15099 IT/컴퓨터컴퓨터에서 이상하게 영상을 볼때 렉이 심한데.. 2 어둠달골짜기 23/08/01 2398 0
15097 IT/컴퓨터저소음 기계식 키보드가 있을까요? 15 ce525 23/07/31 2456 0
15091 IT/컴퓨터An operating system wasn't found 에러 9 심해냉장고 23/07/29 2742 0
15082 IT/컴퓨터보조 모니터 추천 부탁드려요 4 어둠달골짜기 23/07/26 2107 0
15080 IT/컴퓨터개발에 대해서 체계적으로 배우려면 어떻게 해야 할까요? 13 Shameless 23/07/25 2974 0
15056 IT/컴퓨터크롬 쓰지 말라는데요? 누가요? 2 cummings 23/07/19 2667 0
15036 IT/컴퓨터사용 안 한지 오래된 보조배터리 써도 괜찮을까요? 6 비어-도슨트 23/07/15 4910 0
15034 IT/컴퓨터앱 설치 가능한 iOS 디바이스 버전은? 2 토비 23/07/14 2369 0
15028 IT/컴퓨터포토샵을 배우고 싶습니다 5 [익명] 23/07/13 2107 0
15017 IT/컴퓨터디즈니플러스 관련 4 켈로그김 23/07/11 2664 0
15004 IT/컴퓨터모니터암 추천 13 도리돌이 23/07/07 2294 0
14995 IT/컴퓨터다이슨 공기청정기 전기 관련 문의 wwe13kane 23/07/05 2820 0
14977 IT/컴퓨터갤럭시 S6 Lite 질문입니다. 13 R세제곱인생 23/06/29 3146 0
14967 IT/컴퓨터S10이 운명하셨습니다. 10 레디미르 23/06/26 2647 0
14955 IT/컴퓨터스프레드시트에서 셀 데이터를 대조해서 다른 시트의 맞는 항목을 찾아오는 함수 2 조선전자오락단 23/06/22 2834 0
14949 IT/컴퓨터카카오톡 오픈 톡방, 오픈 프로필 관련 질문 2 토비 23/06/21 3719 0
14919 IT/컴퓨터맥 파이널컷 프로 설치 실용량 .. 4 쥬꾸미 23/06/12 2385 0
14909 IT/컴퓨터윈도우11-아이패드 프로5세대 간 파일전송 3 오디너리안 23/06/10 2952 0
목록

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

댓글
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기
회원정보 보기
닫기