AND 연산 (AND)
AND 연산(논리곱)은 두 입력이 모두 참(1)일 때만 참(1)을 내고, 그 외에는 거짓(0)을 내는 기본 논리 연산입니다. 여러 비트에 자리별로 적용하면 비트 AND가 되며, 수식에서는 ∧ 또는 &로, 디지털 회로에서는 AND 게이트로 표현합니다. 일상 접속사 '그리고'로 옮기면 이 연산을 가리키지 못합니다.
자세히 알아보기
AND의 진리표는 0 AND 0 = 0, 0 AND 1 = 0, 1 AND 0 = 0, 1 AND 1 = 1입니다. 출력이 1인 경우가 네 가지 중 하나뿐이므로 AND는 균형 함수가 아니며, 이진수 0과 1에 대해서는 곱셈과 같습니다. 그래서 GF(2) 위의 대수에서는 AND를 곱셈, XOR을 덧셈으로 취급하고, 모든 부울 함수를 이 둘의 조합(대수적 정규형, ANF)으로 나타낼 수 있습니다.
프로그래밍에서 비트 AND는 '마스킹'에 자주 쓰입니다. 어떤 값과 0x0F를 AND하면 하위 4비트만 남고 나머지는 0이 됩니다. 짝수·홀수 판별(x & 1), 플래그 비트 확인, 주소 범위 계산 등도 AND로 처리합니다. 논리 연산자(&&)는 조건식 전체의 참·거짓을, 비트 연산자(&)는 각 비트를 다룬다는 점이 다릅니다.
블록체인·암호화폐에서는
이더리움 가상 머신(EVM)에는 256비트 값에 대한 AND 명령어(옵코드 0x16)가 있으며, 솔리디티의 & 연산자가 이것으로 컴파일됩니다. 비트코인 스크립트의 OP_AND는 초기 보안 문제로 비활성화되어 있고, 논리값을 다루는 OP_BOOLAND는 사용할 수 있습니다.
암호학에서 AND는 '비싼' 연산입니다. 영지식 증명 회로나 다자간 계산(MPC)에서 XOR은 거의 비용 없이 처리할 수 있지만, AND 게이트 하나하나는 증명 크기나 통신량을 늘립니다. 그래서 회로 기반 프로토콜용 암호(예: MPC·ZK 친화 암호)를 설계할 때는 AND 게이트 수, 즉 곱셈 복잡도를 줄이는 것이 중요한 목표가 됩니다. 반대로 대칭 암호에서 AND는 비선형성을 만들어 내는 핵심 요소이기도 합니다. XOR만으로 만든 암호는 선형이어서 연립방정식으로 쉽게 풀리기 때문입니다.
쉽게 말하면
두 사람의 열쇠가 모두 꽂혀야 열리는 금고처럼, 조건이 전부 맞아야만 '예'가 되는 연산입니다.
예시
- 1100 AND 1010 = 1000
- 0x3C AND 0x0F = 0x0C (상위 비트를 지우고 하위 4비트만 남김)
- x AND 1의 결과가 1이면 x는 홀수입니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.