블라인딩(크립토그래피)
Blinding (cryptography)암호학에서 블라인딩은 에이전트가 실제 입력이나 실제 출력을 알지 못한 채 암호화된 형태로 클라이언트에 서비스를 제공할 수 있는 기술이다.블라인딩 기법에는 암호화 장치에 대한 측면 채널 공격을 방지하는 응용 프로그램도 있다.
더 정확히 말하면 앨리스는 입력 x와 오스카는 함수 f를 가지고 있다.앨리스는 오스카가 x나 y를 밝히지 않고 y = f(x)를 계산해 주기를 원한다.그녀가 이것을 원하는 이유는 f 함수를 모르거나 f 함수를 계산할 수 있는 자원이 없기 때문일 것이다.앨리스는 메시지를 다른 입력 E(x)로 인코딩하여 "블라인드"한다. 인코딩 E는 f의 입력 공간에 대한 편향이어야 하며, 이상적으로는 임의 순열이어야 한다.오스카는 그녀에게 F(E(x)를 주고, 그녀는 D(f(E(x))) = y를 얻기 위해 디코딩 D를 적용한다.
모든 기능이 블라인드 계산을 허용하는 것은 아니다.다른 때에는 블라인딩이 주의해서 적용되어야 한다.후자의 예는 라빈-윌리엄스의 서명이다.포맷된 메시지에 블라인딩이 적용되지만 임의 값이 p와 q의 자코비 요건을 충족하지 못하면 개인 키 복구로 이어질 수 있다.회복의 시연은 CVE에서 확인할 수 있다.2015-2141년[1] 에브게니 시도로프가 발견했다.
블라인딩의 가장 일반적인 적용은 블라인드 서명이다.맹인 서명 프로토콜에서, 서명자는 메시지의 내용을 배울 수 없는 상태에서 디지털 서명한다.
1회용 패드(OTP)는 그 본질에 따라 보안 통신 문제를 눈감아 주는 응용 프로그램이다.앨리스는 밥에게 남몰래 메시지를 보내고 싶어하지만, 그들의 모든 의사소통은 오스카에 의해 읽힐 수 있다.따라서 앨리스는 밥과 공유하는 비밀키나 OTP로 눈을 감은 후 메시지를 보낸다.밥은 그 메시지를 받은 후 블라인드를 뒤집는다.이 예에서 함수 f는 ID이고 E와 D는 모두 일반적으로 XOR 연산이다.
블라인딩은 비대칭 암호화 방식에 대한 특정 측면 채널 공격을 방지하는 데도 사용할 수 있다.측면 채널 공격은 알고리즘의 결과(예: 전력 소비, 연산 시간 또는 장치에 의한 무선 주파수 방출) 이외의 것을 측정함으로써 적수가 암호작전에 대한 입력 정보를 복구할 수 있게 한다.일반적으로 이러한 공격은 (일부) 입력뿐만 아니라 알고리즘의 특성을 알고 있는 공격자에 따라 달라진다.이 설정에서 블라인딩은 알고리즘의 입력을 예측할 수 없는 상태로 변경하는 역할을 한다.이는 블라인딩 기능의 특성에 따라 유용한 정보의 일부 또는 전부를 누설하는 것을 방지할 수 있다.보안은 측면 채널 공격에 대한 블라인딩 기능 자체의 저항에 따라 결정된다는 점에 유의하십시오.
예를 들어, RSA 블라인딩에서 블라인딩 작업 E(x) = (xr)e mod N의 계산이 수반된다. 여기서 r은 1과 N 사이의 랜덤 정수이며 상대적으로 N에 프라임(gcd(r, N) = 1) x는 일반 텍스트, e는 공개 RSA 지수, N은 RSA 계량이다.평상시처럼 암호 해독 함수 f(z) = zd mod N이 적용되므로 f(E(x) = (xr)ed mod N = xr mod N이 주어진다.마지막으로 D(z) = zr−1 mod N 함수를 사용하여 블라인드를 해제한다.xr mod N에 r−1 mod N을 곱하면 원하는 대로 x가 된다.이러한 방식으로 암호 해독할 때, 이 작전에 의해 소요된 시간을 측정할 수 있는 적수는 일정한 r을 알지 못하기 때문에 (RSA가 취약한 것으로 알려져 있는 타이밍 공격을 적용함으로써) 이 정보를 활용할 수 없을 것이다.