문제

누군가 긴 INT에 대한 빠른 2 웨이 암호화 알고리즘을 제안 할 수 있습니까?

내 후보자는 다음과 같습니다.

  • AES : NIST FIPS-197에 의해 지정된 고급 암호화 표준.
  • Blowfish : Bruce Schneier가 정의한 Blowfish 알고리즘.
  • DES : NIST FIPS-46-3에 의해 정의 된 데이터 암호화 표준 알고리즘.
  • DESEDE : NIST FIPS-46-3에 의해 정의 된 "트리플 디스"알고리즘.

편집하다 -

속도는 보안보다 더 많은 요인입니다. 실제 요청은 내부 웹 서비스를 통과하는 ID를 "난독 화"하는 것이 었으므로 ID가 노출되는 경우 1을 추가하여 다른 ID를 추측 할 수 없었습니다 (자동 인익 장기에 대한 UUID 키에 대한 인수?).

도움이 되었습니까?

해결책

AES를 사용하십시오. 속도는 Desede를 대체하기위한 선택의 주요 고려 사항이었습니다. 최신 PC 하드웨어에서는 Blowfish보다 빠른 경향이 있으며 표준으로서 특수 하드웨어 지원을받을 가능성이 높습니다.

그건 그렇고, 모든 암호는 긴 정수를 암호화합니다.

다른 팁

공개 키가 필요하지 않습니다. 요구 사항은 기계가 통과 할 때 데이터베이스의 ID를 암호화하는 것입니다. 두 기계 모두 소금이 있습니다

그 다음에, XOR?

선택의 주요 기준은 무엇입니까? 속도 또는 보안? 이것이 암호화 사업의 기본 트레이드 오프입니다. 여기에 세트가 있습니다 Crypto ++의 벤치 마크 결과. 그들은 당신에게 모든 것을 말하지 않을 것이지만, 어떤 알고리즘이 일반적으로 다른 알고리즘보다 더 빠른지 알 수 있습니다. 여기에 있습니다 백서는 인기있는 알고리즘의 상대적 강점을 논의합니다. 일부 알고리즘은 그들의 강점과 약점이 상당히 잘 알려져 있다는 사실에 충분히주의를 기울이지 않았지만, 강도를 결정하는 것은 일반적인 경우에 매우 어렵습니다 (DES, RSA 등). 기존의 경험 법칙은 더 긴 열쇠가 더 큰 강점을 의미하지만, 당신은 그것에 대해 매우 조심해야한다는 것입니다. 나는 당신의 경우에 AES 또는 Blowfish가 괜찮을 것이라고 생각합니다. AES는 아마도 다소 널리 지원 될 것이지만 실제로는 아마도 그렇게 할 것입니다. 속도가 중요한 요소가 아니라면 DES에서 멀리 떨어져 있습니다.

보안이 주요 관심사라면 AES와 함께 갈 것입니다.

그러나 Ciphertext는 데이터베이스에 비해 너무 클 수 있습니다. IV, 패딩을 추가하면 최소한 16 진수의 64 숯입니다. 해당 한도에 달하는 경우 여기에 게시 한 알고리즘을 사용할 수 있습니다.

Java에서 Long to String (및 Back)의 간단한 대칭 암호화

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