배타적 논리합(XOR)이 암호화에서 중요한 이유는 무엇입니까?
3436 단어 cryptographyciphergosecurity
암호학에 입문했거나 기본 사항을 이해하려는 경우 배타적 논리합 연산이 특히 암호에서 자주 사용된다는 것을 알아차렸을 것입니다.
XOR( ⊕ )이란?
XOR 또는 "배타적 or"는 이진 데이터에서 작동합니다. 두 입력이 모두 반대이면(하나는 거짓이고 하나는 참) 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
go 코드의 예는 다음과 같습니다.
func exclusiveOr(a bool, b bool) bool {
return a != b
}
XOR 암호 – 완벽한 암호
XOR 연산은 단일 키로 메시지를 암호화하고 해독하기 위한 간단한 암호로 사용할 수 있습니다. 이를 대칭 암호화라고 합니다.
흥미로운 점은 다음과 같습니다.
그러면 암호를 해독할 수 없습니다. 이것은 one time pad로 알려져 있습니다. 그러나 단순 XOR은 키 길이가 너무 길어 실용적이지 않기 때문에 프로덕션 환경에서 사용하면 안 됩니다.
암호 예제
간단한 예로 "hi"라는 단어를 암호화해 보겠습니다.
01101000 01101001
01010010 01000101
01101000 01101001 ("hi") XOR 01010010 01000101 (secret key) = 00111010 00101100 (encrypted message)
00111010 00101100 (encrypted message) XOR 01010010 01000101 (secret key) = 01101000 01101001 ("hi")
왜 작동합니까?
XOR은 그 자체가 역이기 때문에 암호로 작동합니다.
𝑎 = (𝑎 ⊕ 𝑏) ⊕ 𝑏
그리고 예제에서 보여주듯이:
encrypted = message ⊕ key
and
message = encrypted ⊕ key
프로덕션 암호에 XOR이 사용됩니까?
단순 XOR 암호는 메시지 본문과 길이가 같은 키를 사용하는 것이 비실용적이기 때문에 프로덕션에서는 사용되지 않습니다. 그러나 XOR은 여전히 매우 유용합니다. 실제로 거의 모든 대칭 암호화 알고리즘에 사용됩니다. XOR은 “add round key” step of AES-256 에서 기본 연산입니다. DES cipher.에서도 사용됩니다.
읽어 주셔서 감사합니다
레인 트위터:
Dev.to의 레인:
Qvault 다운로드: https://qvault.io
게시물 Why is Exclusive Or (XOR) Important in Cryptography?이 Qvault에 처음 나타났습니다.
Reference
이 문제에 관하여(배타적 논리합(XOR)이 암호화에서 중요한 이유는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wagslane/why-is-exclusive-or-xor-important-in-cryptography-e7b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)