비밀 공유

Secret sharing

비밀공유(비밀분할이라고도 함)는 참가자들 사이에 비밀을 분배하는 방법을 말하며, 참가자들에게 각각 비밀의 몫이 할당된다.비밀은 충분한 수의 서로 다른 유형의 주식을 결합해야만 재구성할 수 있다. 개별 주식은 그 자체로 아무런 쓸모가 없다.

한 종류의 비밀 공유 계획에는 한 의 딜러와 n명의 플레이어가 있다.딜러는 선수들에게 비밀의 몫을 나눠주지만 구체적인 조건이 충족돼야 선수들이 지분의 비밀을 재구성할 수 있다.딜러는 t(임계점용) 이상의 플레이어가 함께 비밀을 재구성할 수 있지만 t 플레이어보다 적은 그룹도 이를 재구성할 수 없는 방식으로 각 플레이어에 공유를 부여함으로써 이를 달성한다.그러한 시스템을 (t, n)-임계(streshold) 체계라고 한다(때로는 (n, t)임계(streshold scheme)로 표기하기도 한다).

비밀 공유는 1979년 Adi[1] Shamir와 George Blakley[2] 의해 독자적으로 발명되었다.

중요도

비밀 공유 체계는 매우 민감하고 중요한 정보를 저장하는데 이상적이다.예를 들어 암호화 키, 미사일 발사 코드, 번호가 매겨진 은행 계좌 등이 있다.이 정보들은 노출이 끔찍할 수 있기 때문에 매우 기밀로 유지되어야 하지만, 분실되어서는 안 되는 것 또한 중요하다.기존의 암호화 방법은 높은 수준의 기밀성과 신뢰성을 동시에 달성하는 데 적합하지 않다.암호키를 보관할 때는 비밀성을 극대화하기 위해 키의 단일 복사본을 한 곳에 보관하거나, 신뢰도를 높이기 위해 여러 개의 복사본을 서로 다른 위치에 보관하는 방법 중 하나를 선택해야 하기 때문이다.여러 개의 복사본을 저장하여 키의 신뢰성을 높이면 공격 벡터를 추가로 생성하여 기밀성을 떨어뜨릴 수 있으며, 복사본이 잘못된 손에 넘어갈 기회가 더 많다.비밀 공유 체계는 이 문제를 다루며, 임의로 높은 수준의 기밀성과 신뢰성이 달성될 수 있도록 한다.

비밀 공유 체계는 클라우드 컴퓨팅 환경에서 중요하다.그러므로 키는 임계값 비밀 공유 메커니즘에 의해 많은 서버에 분산될 수 있다.그런 다음 필요할 때 키를 재구성한다.데이터를 공유로 전송해 링크를 도청하기 쉬운 센서 네트워크에도 비밀 공유가 제안돼 도청자의 업무가 더 어려워지고 있다.그러한 환경에서의 보안은 주식의 구성 방식을 지속적으로 변경함으로써 더 크게 이루어질 수 있다.

"보안" 대 "보안되지 않은" 비밀 공유

안전한 비밀 공유 체계는 공유가 0개인 사람보다 T개 미만인 사람은 비밀에 대한 정보가 더 이상 없도록 공유를 분배한다.

예를 들어 "비밀번호"가 "pa––––," "–ss–––," "––––," "–––-wo–," 그리고 "––––-rd"로 구분되는 비밀 공유 체계를 생각해 보자.공유가 0인 사람은 비밀번호가 8개의 문자로 구성되어 있다는 것만 알고 있기 때문에 268 = 2080억 개의 가능한 조합에서 비밀번호를 추측해야 한다.그러나 1개의 몫을 가진 사람은 266 = 3억 8천만 개의 조합에서 6개의 문자만 추측하면 된다.따라서, 비밀주식이 t 미만인 플레이어는 우선 필요한 주식을 모두 얻을 필요 없이 내부 비밀을 획득하는 문제를 줄일 수 있기 때문에, 이 시스템은 "보안된" 비밀 공유 체계가 아니다.

이와는 대조적으로, X는 공유해야 할 비밀이고, Pi 공개 비대칭 암호화 키이며, Qi 해당 개인 키인 비밀 공유 방식을 고려한다.각 플레이어 J에는 {P1(P2(...(PN(X)))), Qj. 이 방식에서 개인 키 1을 가진 플레이어는 암호화의 외부 레이어를 제거할 수 있고, 키 1과 키 2를 가진 플레이어는 첫 번째 레이어와 두 번째 레이어를 제거할 수 있다.N키 미만을 가진 플레이어는 현재 계산상 불가능하다고 여겨지는 문제인 해당 개인키가 없는 공개키 암호화된 blob을 먼저 해독할 필요가 없이 비밀 X에 도달할 수 없다.또한 우리는 모든 N개의 개인 키를 가진 모든 사용자가 비밀인 X를 얻기 위해 모든 외부 층을 해독할 수 있다는 것을 알 수 있으며, 결과적으로 이 시스템은 안전한 비밀 분배 시스템이다.

제한 사항

몇몇 비밀 공유 체계는 정보-이론적으로 안전하며 증명될 수 있다고 하는 반면, 다른 것들은 효율 향상을 위해 이러한 무조건적인 보안을 포기하는 동시에 다른 일반적인 암호 원소만큼 안전하다고 간주될 수 있을 만큼 충분한 보안을 유지한다.예를 들어, 그들은 각각 128비트 엔트로피가 있는 주식으로 비밀이 보호되도록 허용할 수 있다. 각 주식은 평균 크기 2의127 흉포한 무력 공격을 요구하면서 상상할 수 있는 현재의 적수를 충분히 막을 수 있기 때문이다.

모든 사람이 무조건적으로 보안을 유지하는 비밀 공유 체계에는 다음과 같은 제한이 있다.

  • 비밀의 각 공유는 적어도 비밀 그 자체만큼 커야 한다.이 결과는 정보 이론에 근거하지만 직관적으로 이해할 수 있다.t - 1 공유가 주어지면 비밀에 대한 어떠한 정보도 파악할 수 없다.따라서 최종 공유는 비밀 그 자체만큼이나 많은 정보를 포함해야 한다.비밀(예: 키)을 공유하기 전에 먼저 압축함으로써 이러한 제한에 대한 해결책이 있을 때도 있지만, 많은 비밀(예: 키)이 고품질의 무작위 데이터처럼 보여서 압축하기 어렵기 때문에 이것이 가능하지 않는 경우가 많다.
  • 모든 비밀 공유 체계는 무작위 비트를 사용한다.임계값 t 사람들 사이에 1비트 비밀을 배포하려면 t - 1 무작위 비트가 필요하다.임의 길이 b 비트의 비밀을 배포하기 위해서는 (t - 1) × b 비트의 엔트로피가 필요하다.

사소한 비밀 공유

t = 1

t = 1 비밀 공유는 사소한 것이다.그 비밀은 간단히 모든 참가자들에게 배포될 수 있다.

t = n

비밀 복구하기 위해 모든 공유가 필요한 경우 t = n에 대한 몇 가지 (t, n) 비밀 공유 체계가 있다.

  1. 암호를 임의 길이의 이진수 s로 인코딩하십시오.각 선수에게 s와 같은 길이의 p를 임의i 부여한다.마지막 플레이어에게 XOR p1 XOR p2 XOR ... XOR pn−1 결과를 주십시요. 여기XOR비트로 배타적이다.비밀은 모든 선수의 숫자(p) 중 약간 현명한 XOR이다.
  2. 또한 (1)은 모든 분야의 선형 연산자를 사용하여 수행할 수 있다.예를 들어 기능적으로 (1)과 동등한 대안이 여기에 있다.오버플로 의미론(즉, 정답은 보존, modulo 232)이 잘 정의된 32비트 정수를 선택하자.첫째, sv라고secret 하는 M 32비트 정수의 벡터로 나눌 수 있다.그러면 (n - 1) 플레이어에는 각각 M 랜덤 정수 벡터가 주어지고, vi 받는다.나머지 선수에게는 vn = (vsecret - v1 - v - v2 - ... - vn−1)가 주어진다.그러면 비밀 벡터는 플레이어의 모든 벡터를 종합하여 복구할 수 있다.

1 < t < n, 그리고 보다 일반적으로 {1,2, ...,n}의 원하는 하위 집합.

문제는 여전히 안전하지만 모든 n주를 필요로 하지 않는 계획을 만드는 데 있다.예를 들어, 한 회사의 이사회가 그들의 비밀 공식을 보호하고 싶어한다고 상상해보라.회사 사장은 필요할 때 이 공식에 접근할 수 있어야 하지만 비상시에는 이사 12명 중 3명이라도 비밀 공식의 문을 함께 열 수 있을 것이다.이는 사장에게 3주를 주고 각 이사에게 1주를 주는 t = 3과 n = 15와 비밀 공유 방식으로 이루어질 수 있다.

공간 효율성이 문제가 되지 않는 경우, 사소한 t = n 체계는 각 서브셋에 대한 체계를 적용함으로써 플레이어의 원하는 하위 집합에 대한 비밀을 밝히는 데 사용될 수 있다.예를 들어 앨리스, 밥, 캐롤 세 명의 플레이어 중 두 명에게 비밀의 s를 공개하려면 세 의 ( (( 2 ) 다른 = 비밀 공유를 생성하여 앨리스와 밥, 캐롤, 그리고 밥과 캐롤에게 두 몫의 세 세트를 준다.

효율적인 비밀 공유

예를 들어( ) 1. 계획을 만들고 각 플레이어가 유지하도록 하는 (99 ) 등의 하위 집합 수가 증가함에 따라 사소한 접근은 빠르게 비현실적이 된다 각 구성표에 대한 고유한 공유 집합.최악의 경우 그 증가폭은 기하급수적이다.이로 인해 플레이어들의 문턱에서 비밀을 효율적으로 공유할 수 있는 계략을 모색하게 되었다.

샤미르의 계책

이 계획에서, n개의 주식 중 t를 비밀의 회수에 사용할 수 있다.이 시스템은 다항식에 놓여 있는 모든 t 포인트 집합에 도 t - 1의 고유한 다항식을 적합시킬 수 있다는 생각에 의존한다.직선을 정의하는 데는 두 점, 이차선을 완전히 정의하는 데는 세 점, 입방 곡선을 정의하는 데는 네 점 등이 필요하다., t - 1의 다항식을 정의하기 위해서는 t 포인트가 필요하다.첫 번째 계수와 나머지 계수를 무작위로 선택한 비밀로 도 t - 1의 다항식을 만드는 방식이다.다음으로 커브에서 n점을 찾아 각 선수에게 하나씩 준다.n명 선수 중 적어도 t자가 자신의 포인트를 밝힐 경우, 1차 계수가 비밀인 a(t - 1)도 다항식을 그들에게 맞추기에 충분한 정보가 있다.

블래클리의 계책

동일한 평면의 두 비병렬 선은 정확히 한 점에서 교차한다.공간의 세 개의 평행하지 않은 평면이 정확히 한 지점에서 교차한다.보다 일반적으로 n개의 비병렬(n - 1)차원 하이퍼플레인이 특정 지점에서 교차한다.비밀은 교차점의 어떤 단일 좌표로 암호화될 수 있다.임의의 좌표라도 모든 좌표를 사용하여 비밀이 암호화되면 내부자(n - 1)는 비밀이 비행기에 놓여 있어야 한다는 것을 알기 때문에 비밀에 대한 정보를 얻는다.만약 내부자가 외부인이 할 수 있는 것보다 더 많은 비밀에 대한 지식을 얻을 수 있다면, 시스템은 더 이상 정보 이론적 보안을 가지고 있지 않다.n좌표 중 하나만 사용한다면 내부자는 외부인(즉, 2차원 시스템을 위해서는 비밀이 x축에 있어야 한다는 것)에 지나지 않는다.각 플레이어는 하이퍼플레인을 정의할 수 있는 충분한 정보를 제공받는다. 비밀은 평면의 교차점을 계산한 다음 그 교차점의 지정된 좌표를 취함으로써 회복된다.

One share Two shares intersecting on a line Three shares intersecting at a point
Blakley의 3차원의 계획은 각 공유는 평면이며, 비밀은 세 공유가 교차하는 지점이다.두 공유는 두 평면이 교차하는 까지 좁힐 수 있는 충분한 정보를 제공하지만 비밀을 결정하기에 부족하다.

블래클리의 계획은 샤미르보다 공간 효율성이 떨어진다. 샤미르의 주식은 각각 원래 비밀의 크기만큼 크지만 블래클리의 주식은 t 더 크다. 여기서 t는 선수 수 기준이다.어떤 비행기를 주식으로 사용할 수 있는지에 대한 제한을 추가함으로써 블레이클리의 계획을 강화할 수 있다.결과적인 계획은 샤미르의 다항식 시스템과 동일하다.

중국 나머지 정리 사용

The Chinese remainder theorem can also be used in secret sharing, for it provides us with a method to uniquely determine a number S modulo k many pairwise coprime integers , given that .중국 나머지 정리인 미그노트의 계략과 아스무트블룸의 계략을 활용한 두 가지 비밀 공유 계책이 있다.그것들은 한계점 비밀 공유 계획으로, i을 축소하여, 그 비밀은 중국 잔여 정리를 이용하여 본질적으로 일치의 체계를 해결함으로써 회복된다.

사전 예방적 비밀 공유

플레이어가 자신의 주식을 안전하지 않은 컴퓨터 서버에 저장하면 공격자가 끼어들어 주식을 훔칠 수 있다.비법을 바꾸는 것이 현실적이지 않으면 타협하지 않은 (샤미르식) 주식을 갱신할 수 있다.딜러는 항 0이 일정한 새로운 랜덤 다항식을 생성하고 남은 각 플레이어에 대해 새 순서 쌍을 계산하며, 여기서 이전 쌍과 새 쌍의 x 좌표가 같다.그런 다음 각 플레이어는 예전과 새로운 y 좌표를 서로 추가하고 그 결과를 비밀의 새로운 y 좌표로 유지한다.

공격자가 축적한 미업데이트 주식은 모두 무용지물이 된다.공격자는 임계값에 도달하기에 충분한 다른 업데이트되지 않은 공유를 찾을 수 있는 경우에만 비밀을 복구할 수 있다.선수들이 옛 지분을 삭제했기 때문에 이런 상황이 벌어져서는 안 된다.또한 공격자는 업데이트 파일에는 임의의 정보만 포함되기 때문에 원본 비밀에 대한 정보를 복구할 수 없다.

딜러점은 업데이트를 배포하는 동안 임계값을 변경할 수 있지만 만료된 주식을 보유하는 플레이어에 대해서는 항상 주의를 기울여야 한다.

검증 가능한 비밀 공유

플레이어는 다른 공유에 접근하기 위해 자신의 공유에 대해 거짓말을 할 수 있다.검증 가능한 비밀공유(VSS) 방식을 통해 다른 플레이어가 자기 몫의 내용에 대해 거짓말을 하지 않는다는 것을 합리적인 오류 확률까지 확신할 수 있다.그러한 계획은 관습적으로 계산될 수 없다; 선수들은 정확히 무엇이 추가되고 증식되고 있는지 아무도 알지 못하는 사이에 집단적으로 숫자를 더하고 곱해야 한다.탈 라빈과 마이클 벤-오어는 어떤 정보가 재조명되었는지에 따라 실시간으로 전략을 변경할 수 있는 '적응형' 공격자가 조정하더라도 플레이어가 딜러 부분이나 선수 기준치의 3분의 1까지 부정직을 감지할 수 있는 다중 컴퓨터(MPC) 시스템을 고안했다.베일을 씌운

컴퓨팅적으로 안전한 비밀 공유

무조건적인 비밀공유제 확보의 단점은 주식의 저장과 전송에 비밀번호의 크기에 준하는 양의 저장과 대역폭 자원이 필요하다는 점이다.비밀의 크기가 유의미하고, 예를 들어 1GB, 주식수가 10개였다면 10GB의 데이터를 주주들이 저장해야 한다.무조건적인 보안의 요건을 포기함으로써 비밀 공유 계획의 효율성을 크게 높이기 위한 대체 기법이 제안되어 왔다.

짧게 만든 비밀 공유로 알려진 이 기술 중 하나는 샤미르의 비밀 공유와 라빈의 정보 분산 알고리즘[4](IDA)을 결합한 것이다.[3]데이터는 대칭 암호화 알고리즘을 사용하여 무작위로 생성된 키로 먼저 암호화된다.다음으로 이 데이터는 라빈의 IDA를 사용하여 N 조각으로 나뉜다.이 IDA는 비밀 공유 방식과 유사한 방식으로 임계값으로 구성되지만, 비밀 공유 방식과는 달리 결과 데이터의 크기는 (조각 수/임계값)의 한 배씩 증가한다.예를 들어 문턱이 10개, IDA가 생산한 파편 수가 15개라면 모든 파편의 총 크기는 (15/10) 또는 원래 입력 크기의 1.5배가 된다.이 경우 샤미르의 계획이 데이터에 직접 적용되었을 때보다 10배 더 효율적이다.짧게 한 비밀 공유의 마지막 단계는 샤미르 비밀 공유를 사용하여 임의로 생성된 대칭 키(일반적으로 16–32바이트 순서)의 주식을 생산한 다음 각 주주에게 1주 1주 1주 1주 1조각을 주는 것이다.

AONT-RS라고 알려진 관련 접근방식은 IDA에 대한 사전 처리 단계로서 데이터에 모두 또는 무(無) 변환을 적용한다.[5]All-Nothing 변환은 임계값보다 적은 수의 공유가 데이터를 해독하기에 불충분함을 보장한다.

멀티 비밀 및 공간 효율적인(배치된) 비밀 공유

정보-이론적으로 안전한 k-of-n 비밀 공유 체계는 각각의 비밀 그 자체의 크기만큼 n개의 공유를 생성하며, 따라서 필요한 총 스토리지가 비밀의 최소한 n배는 커지게 된다.Matthew K가 디자인한 다중 비밀 공유에서. 프랭클린모티 영은 다항식 호스트 비밀의 여러 지점들;[6] 이 방법은 코딩에서 다항식 계산에 이르기까지 수많은 응용 분야에서 유용하게 발견되었다.아비셰크 파라흐와 수바쉬 카크가 고안한 공간 효율적인 비밀 공유에서 각각의 공유는 대략 비밀 크기의 분수(k-1)이다.[7]

이 계획은 반복적인 다항식 보간법을 사용하며 웹과 센서 네트워크의 보안 정보 분산에 잠재적인 응용 프로그램을 가지고 있다.이 방법은 유한 분야의 다항식의 루트를 포함하는 데이터 분할에 기초한다.[8]관련 공간 효율적 비밀 공유 체계의 일부 취약성은 나중에 지적되었다.[9]그들은 분배될 k 비밀이 k - 1 이하의 다항식으로부터 본질적으로 생성되고, 공유할 비밀이 모두 같을 경우 그 계획이 효과가 없을 때 보간법에 근거한 체계를 사용하여 (k, n) 계획을 실행할 수 없다는 것을 보여준다.[10]

기타 용도 및 응용 프로그램

비밀 공유 체계는 여러 서버에 대한 비밀을 보호할 수 있으며, 여러 서버에 장애가 발생하더라도 복구할 수 있는 상태를 유지할 수 있다.딜러는 참가자들 사이에 주식을 분배하면서 몇 개의 뚜렷한 참여자 역할을 할 수 있다.각 공유는 다른 서버에 저장될 수 있지만, 적어도 t 공유를 복구할 수 있는 한 여러 서버가 고장나더라도 딜러는 비밀을 복구할 수 있다. 그러나, 한 서버에 침입한 크래커는 각 서버에 저장된 공유 수가 t보다 적은 한 여전히 비밀을 알지 못한다.

이것은 워싱턴 대학교바니쉬 컴퓨터 프로젝트의 주요 개념 중 하나로, 임의의 키를 사용하여 데이터를 암호화하고, 키는 P2P 네트워크의 여러 노드에 걸쳐 비밀로 배포된다.메시지의 암호를 해독하기 위해서는 적어도 네트워크의 t 노드에 접근할 수 있어야 한다. 이 특정 프로젝트의 원칙은 네트워크의 비밀 공유 노드 수가 시간이 지남에 따라 자연스럽게 감소하여 결국 비밀이 사라지게 한다는 것이다.그러나 네트워크는 시빌 공격에 취약해 바니쉬를 불안정하게 만든다.[11]

언제든지 내용을 해독하기에 충분한 정보를 가진 주주라면 누구나 X의 사본을 가져다가 저장할 수 있다.결과적으로, Vanish와 같은 도구와 기술은 시간이 지나면 자신의 시스템 내에서 데이터를 복구할 수 없게 만들 수 있지만, 악의적인 사용자가 한번 본 데이터 삭제를 강요하는 것은 불가능하다.이것은 디지털 권리 관리의 대표적인 난제 중 하나이다.

딜러는 원래 비밀을 되찾기 위해 필요한 t 주식을 한 명의 수취인에게 보낼 수 있다.공격자는 비밀을 복구하기 위해 모든 t 공유를 가로채야 하는데, 특히 공유가 다른 미디어(: 인터넷을 통해 전송되는 미디어, CD로 전송되는 미디어)를 사용하여 전송되는 경우, 하나의 파일을 가로채는 것보다 더 어려운 작업이다.

큰 비밀의 경우 비밀을 암호화한 다음 비밀 공유를 사용하여 키를 배포하는 것이 더 효율적일 수 있다.

비밀 공유는 시큐어 멀티파티 계산을 위한 몇 가지 프로토콜에서 중요한 원시적이다.비밀 공유는 시스템의 사용자 인증에도 사용될 수 있다.[12]

참고 항목

참조

  1. ^ Shamir, Adi (1 November 1979). "How to share a secret" (PDF). Communications of the ACM. 22 (11): 612–613. doi:10.1145/359168.359176. S2CID 16321225. Archived (PDF) from the original on 2017-08-10.
  2. ^ Blakley, G.R. (1979). "Safeguarding Cryptographic Keys" (PDF). Managing Requirements Knowledge, International Workshop on (AFIPS). 48: 313–317. doi:10.1109/AFIPS.1979.98. S2CID 38199738. Archived from the original (PDF) on 2018-06-28.
  3. ^ Krawczyk, Hugo (1993). Secret Sharing Made Short (PDF). CRYPTO '93.
  4. ^ Rabin, Michael O. (1989). "Efficient dispersal of information for security, load balancing, and fault tolerance". Journal of the ACM. 36 (2): 335–348. CiteSeerX 10.1.1.116.8657. doi:10.1145/62044.62050. S2CID 13166422.
  5. ^ Resch, Jason; Plank, James (February 15, 2011). AONT-RS: Blending Security and Performance in Dispersed Storage Systems (PDF). Usenix FAST'11.
  6. ^ Franklin, Matthew; Yung, Moti (4 May 1992). "Communication Complexity of Secure Computation (extended abstract)". STOC '92 Proceedings of the Twenty-Fourth Annual ACM Symposium on Theory of Computing. Stoc '92: 699–710. doi:10.1145/129712.129780. ISBN 0897915119. S2CID 7486402. ([1]에서도 사용 가능)
  7. ^ Parakh, Abhishek; Kak, Subhash (January 2011). "Space efficient secret sharing for implicit data security". Information Sciences. 181 (2): 335–341. doi:10.1016/j.ins.2010.09.013.
  8. ^ Parakh, Abhishek; Kak, Subhash (September 2009). "Online data storage using implicit security". Information Sciences. 179 (19): 3323–3331. doi:10.1016/j.ins.2009.05.013.
  9. ^ Sahasranand, K.R.; Nagaraj, N.; Rajan, S. (2010). "How not to share a set of secrets". International Journal of Computer Science and Information Security. 8: 234–237. arXiv:1001.1877. Bibcode:2010arXiv1001.1877S.
  10. ^ Liu, Yanhong; Zhang, Futai; Zhang, Jie (February 2016). "Attacks to some verifiable multi-secret sharing schemes and two improved schemes". Information Sciences. 329: 524–539. doi:10.1016/j.ins.2015.09.040.
  11. ^ "Unvanish: Reconstructing Self-Destructing Data". Archived from the original on 2012-03-20.
  12. ^ 굽타, 키쇼르 다타 등「비밀번호 재구성 없는 인증을 위한 샤미르의 비밀 공유」. 2020년 제10회 컴퓨팅·커뮤니케이션 워크숍·컨퍼런스(CCWC)IEEE, 2020.

외부 링크