기금넷 공식사이트 - 복권 조회 - 비밀 공유 프로토콜은 어떻게 설계합니까?

비밀 공유 프로토콜은 어떻게 설계합니까?

비밀 공유의 사상 비밀 공유의 개념은 Shamir 와 Blakley 가 1979 에서 독립적으로 제기한 것이다. 비밀 공유란 한 키를 여러 부분으로 나눈 다음 일부 관련자에게 비밀리에 배포하여 일부 관련자들이 동시에 자신의 부분을 제공한 후 키를 다시 만들 수 있도록 하는 것이고, 다른 사람들은 자신의 부분을 제공한 후 키를 다시 만들 수 없다는 것이다. (알버트 아인슈타인, 자기관리명언) (윌리엄 셰익스피어, 비밀 공유, 비밀 공유, 비밀 공유, 비밀 공유, 비밀 공유, 비밀 공유)

예를 들어, 한 은행에는 세 개의 출납원이 있어서 매일 금고를 열어야 한다. 모든 계산원이 도둑질하는 것을 막기 위해서, 은행은 최소한 두 명의 계산원이 있어야 금고를 열 수 있다고 규정하고 있다. 비밀 공유 방안을 이용하면 은행 금고를 여는 문제를 실현할 수 있다.

당신이 수십억 개의 복권에 당첨되었다고 가정하면, 당신은 이 재산들을 당신의 친척들에게 물려주고 싶습니다. 당신의 돈은 당신만이 알고 있는 안전한 곳에 잠겨 있습니다. 당신은 이 비밀을 당신에게 알리고 싶지 않습니다. 왜냐하면 그들은 믿을 수 없기 때문입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 돈명언) 너는 비밀을 분해하고 싶어, 이렇게 세 개 모두 함께 넣어 진상을 재건할 수 있다. 이 경우, 누군가가 당신의 유산을 원한다면, 다른 두 아이와 협력해야 합니다.

비밀 공유는 두 가지 문제를 해결합니다. 첫째, 키가 우발적이거나 의도적으로 노출되면 전체 시스템이 쉽게 공격받을 수 있습니다. 둘째, 열쇠가 손실되거나 손상되면 시스템의 모든 정보를 사용할 수 없습니다.

비밀 공유의 기본 사상은 키 K 를 N 개로 나누어 k 1, k2, ... KN 은 다음과 같습니다.

모든 t ki 값은 k 를 쉽게 계산할 수 있다는 것은 잘 알려져 있습니다. 주어진 t–1이하 ki 는 정보 부족으로 k 를 계산할 수 없습니다.

이 스키마는 (t, n) 임계 값 체계라고도합니다. N 개의 공유 k 1, k2, ... kn 을 n 명의 사용자에게 배포합니다. 재구성 키는 적어도 T 부가 필요하고 S (S ≤ T–1) 부를 노출해도 키가 위태롭지 않기 때문에 T 명 미만의 사용자가 공모하여 키를 얻을 수 없습니다. 또한 최소한 T 개의 유효 점유율이 있는 한 하나의 점유율이 손실되거나 파괴될 경우 키를 복구할 수 있습니다. 다음으로 Shamir 의 문 제한 비밀 공유 시나리오를 예로 들어 보겠습니다.

Shamir 문 비밀 공유 체계 Shamir 은 라그랑주 차이 다항식을 기반으로 하는 1979 에서 임계 비밀 공유 체계를 제안했습니다. 구체적인 알고리즘은 다음과 같습니다.

초기화 단계

비밀 배포자 D 는 GF( q) 에서 무작위로 변경됩니다 (Q 는 소수, q >: N). N 개의 다른 0 이 아닌 요소 x 1, x2, ... XN 을 선택합니다. D Xi 는 UI (I = 1, 2, ..., n) 에 할당되고 Xi 의 값은 공용입니다.

비밀 배포 단계

D 가 n 명의 참가자 U 1, U2, ... un 이 비밀 s ∝ GF(q) 를 공유하도록 할 계획이라면 d 는 gf (q) 에서 t–1요소 a/kloc-를 무작위로 선택합니다

F (x) = s+a1x+a2x2+...+at-1XT-1

D 계산 yi=f(xi), 1≤i≤n, yi 를 참가자 Ui 에 안전하게 할당하여 그의 하위 비밀로 삼았다.

비밀 복구 단계

N 개 참가자 중 임의의 T 개 참가자, 우리는 U 1, U2, ... UT 로 설정하고 그 하위 비밀을 표시하여 T-포인트 쌍을 얻습니다: (X 1, Y 1