문제

나는하고 싶다 징후 장치에 서명을 저장할 64 비트가 있습니다. 이 장치에는 MAC 주소와 다른 세부 사항 (약 30 바이트 가치)이 있습니다.

가능하면 방법이 편도가되기를 원하므로 유효한 서명을 만드는 방법을 모르고 서명이 유효한지 확인할 수 있습니다. 대부분의 공공-민간 키에는이 기능이 있지만 48 바이트 길이의 서명을 생성합니다 (8 바이트 만 있습니다).

Python의 구현은 플러스입니다.

감사

편집하다: 모두에게 감사합니다. 아니오가있는 것 같습니다 안전한 이를 수행하는 방법, 공격자에게는 적당히 불편한 방법입니다. 아마 비밀 비트 셔플 링과 결합 된 암호화 해시를 사용하겠습니다. 이것은 내 (매우 약한) '보안'의 다른 링크만큼 안전합니다.

도움이 되었습니까?

해결책

해시 기능 및 디지털 서명이 있습니다 매우 다른 것들.

디지털 서명의 크기는 기본 해시 함수와 키 길이에 따라 다릅니다. 따라서 이론적으로 64 비트 서명을 생성하는 RSA 구현을 만들 수 있지만 이는 매우 약한 서명이 될 수 있습니다.

키 길이가 작은 경우 타원 곡선 암호화를보고 싶을 수도 있습니다.

편집하다: 예, 저는 암호 검사 자입니다.

편집 2 : 그러나 해시 기능 만 필요하면 Fernando Miguélez가 제안한대로 ELF64 또는 RIPEMD-64를 볼 수 있습니다.

편집 3 : 수학을하면 ECC에서 16 비트 키를 사용하여 64 비트 서명을 생성해야합니다. ECC의 경우 128 비트 미만의 비트가 약한 것으로 간주 될 수 있습니다. RSA의 경우 이것은 1024 비트입니다.

다른 팁

기본적으로 필요한 것은 64 비트입니다 암호화 해시 기능, Ripemd-64 또는 ELF-64와 같은. 그런 다음 암호화 방법으로 해시를 암호화하고 64 비트 서명을 얻었습니다. 유일한 문제는 비 크립토 분석가의 관점에서 64 비트가 일반적인 128 개 이상의 비트 해시보다 훨씬 약한 시그니처를 제공한다는 것입니다. 그럼에도 불구하고 여전히 응용 프로그램에 적합 할 수 있습니다.

표준 해싱 함수 (MD5 SHA1) 만 사용하고 첫 번째 또는 마지막 30 바이트 만 사용할 수 있습니다.
해싱 함수가 생성하는 바이트의 수는 상당히 임의적입니다. 분명히 우주와 독창성 사이의 트레이드 오프입니다. 그들이 사용하는 서명의 렌트에는 특별한 것이 없습니다.

편집 - 죄송합니다. MD5가 32BYTES를 반환했다고 생각하고 있었는데, Actaulyl은 16 바퀴를 반환하지만 20 개의 32HEX 자리로 작성되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top