로컬로 해독 가능한 코드
Locally decodable code로컬로 해독 가능한 코드(LDC)는 손상되었을 가능성이 있는 코드 워드의 소수 비트만 검사(또는 쿼리)하여 원본 메시지의 단일 비트를 높은 확률로 해독할 수 있는 오류 수정 코드다.[1][2][3] 이 속성은, 예를 들어, 시끄러운 채널을 통해 정보가 전송되고 있는 상황에서 유용할 수 있으며, 특정 시간에는 데이터의 작은 부분 집합만이 필요하며, 한 번에 전체 메시지를 해독할 필요가 없다. 로컬로 해독 가능한 코드는 로컬로 테스트할 수 있는 코드의 하위 집합이 아니지만, 두 코드 사이에 일부 중복이 있다.[4]
코드 워드는 코드 워드에 일정량의 중복성을 도입하는 알고리즘을 사용하여 원본 메시지에서 생성되므로 코드 워드는 항상 원본 메시지보다 길다. 이 중복성은 암호어 전반에 걸쳐 분포하며 오류 발생 시에도 원래의 메시지를 좋은 확률로 복구할 수 있다. 코드 워드가 중복될수록 오류에 대한 복원력이 높아지며 원본 메시지를 약간 복구하는 데 필요한 쿼리가 줄어든다.
개요
More formally, a -locally decodable code encodes an -bit message to an -bit codeword such that any bit of the message can be recovered 코드 의 Δ {\displaystyle \ N 위치가 손상되었더라도코드 C( ){\ C(의 displaystyle 비트만 쿼리하는 임의 디코딩 알고리즘을 사용하여 확률 -
더욱이 완벽히 매끄러운 국소 디코더는 손상되지 않은 코드 워드에 대한 접근 권한을 부여한 모든 []{\j\[ i [] [n[n]} h 쿼리에 대해 항상 정확한 출력을 생성하는 디코더로서 h 를 복구한다. 비트는[ [[5]에 걸쳐 균일하다(표기법 [는 {1, y\}). 비공식적으로, 이것은 주어진 비트를 해독하는 데 필요한 쿼리 집합이 암호문 위에 균일하게 분포되어 있다는 것을 의미한다.
지역 리스트 디코더는 지역 디코더의 또 다른 흥미로운 하위 집합이다. 목록 디코딩은 워드가 / 2 개 이상에서 손상된 경우에 유용하며, 여기서 }은두 코드 워드 사이의 최소 해밍 거리입니다. 이 경우 손상된 코드 워드에서 거리 내에 여러 개의 코드 워드가 있을 수 있으므로, 더 이상 어떤 원본 메시지가 인코딩되었는지 정확히 식별할 수 없다. 그러나 반경 을(를) 감안할 때 손상된 코드 워드의 내에 있는 암호 워드에 인코딩되는 메시지 집합을 식별할 수 있다. 메시지 집합의 크기에 대한 상한은 및 에 의해 결정될 수 있다[6]
로컬로 해독 가능한 코드도 연결할 수 있는데, 여기서 메시지는 먼저 하나의 체계를 사용하여 인코딩되고, 결과 코드 워드는 다른 체계를 사용하여 다시 인코딩된다. (이러한 맥락에서 결합은 학자들이 보통 구성이라고 부르는 것을 지칭하기 위해 사용하는 용어라는 점에 유의하십시오. 참조). 예를 들어, 첫 번째 코드가 비율과 관련하여 일부 바람직한 속성을 가지지만, 비이진 알파벳에 대해 코드 단어를 생성하는 것과 같은 바람직하지 않은 속성을 갖는 경우 이 방법은 유용할 수 있다. 그런 다음 두 번째 코드는 비이진 알파벳을 통한 첫 번째 인코딩 결과를 이진 문자로 변환할 수 있다. 최종 인코딩은 여전히 로컬로 해독할 수 있으며, 두 인코딩 층을 모두 디코딩하려면 추가 단계가 필요하다.[7]
코드 워드 길이 및 쿼리 복잡성
코드의 비율은 메시지 와 코드 워드 길이: C( ) 의 비율을 가리키며, 메시지 1비트를 복구하는 데 필요한 쿼리 수를 코드의 쿼리 복잡성이라고 한다.
코드의 비율은 질의 복잡성과 반비례하지만, 이러한 절충의 정확한 형태는 주요한 개방적인 문제다.[8][9] 코드 워드를 한 위치에서만 조회하는 LDC는 없으며, 쿼리 복잡성 2에 대한 최적의 코드 워드 크기는 원본 메시지의 크기가 지수적인 것으로 알려져 있다.[8] 그러나 쿼리 복잡도가 2보다 큰 코드에 대해서는 알려진 엄격한 하한선이 없다. codeword의 길이 쪽에서 절충이 다가오면서,codeword 길이 메시지 길이에 비례로 된 코드ϵ>;쿼리 복잡성 k({\displaystyle k^{\epsilon}}0{\displaystyle \epsilon>0}[8][요구를 업데이트]다.또한 코드 사이에, 원본 메시지 a의 크기에서 codewords 다항식을 가지고 있nd 다logarithmic 쿼리 복잡성.[8]
적용들
국소적으로 해독 가능한 코드는 데이터 전송 및 저장, 복잡성 이론, 데이터 구조, 디랜덤화, 내결함성 계산 이론, 사설 정보 검색 계획에 응용 프로그램을 가지고 있다.[9]
데이터 전송 및 저장
국소적으로 해독 가능한 코드는 노이즈가 많은 채널을 통한 데이터 전송에 특히 유용하다. 하다마드 코드(Red Muller 코드의 특별한 경우)는 1971년 마리너 9호에 의해 화성의 사진을 지구로 다시 전송하기 위해 사용되었다. 5회 반복 코드(각 비트를 5회 반복하는 경우)를 선택했는데, 이는 픽셀당 전송되는 비트 수가 거의 같을 경우 오류 수정을 위한 용량이 더 크기 때문이다. (Hadamard 코드는 전방 오류 보정의 일반적인 우산 아래에 있으며, 우연히 국지적으로 해독할 수 있다; 화성으로부터의 전송을 해독하는 데 사용된 실제 알고리즘은 일반적인 오류 수정 체계였다.)[10]
또한 LDC는 시간이 지남에 따라 미디어가 부분적으로 손상되거나 읽기 장치가 오류에 노출될 수 있는 데이터 저장에도 유용하다. 두 경우 모두 LDC는 상대적으로 적은 수의 경우에 오류에도 불구하고 정보의 복구를 허용한다. 또한 LDC는 전체 원본 메시지를 디코딩할 필요가 없다. 사용자는 전체 메시지를 디코딩할 필요 없이 원본 메시지의 특정 부분을 디코딩할 수 있다.[11]
복잡성 이론
복잡성 이론에서 국소적으로 해독 가능한 코드의 적용 중 하나는 경도 증폭이다. Using LDCs with polynomial codeword length and polylogarithmic query complexity, one can take a function that is hard to solve on worst case inputs and design a function 평균적인 사례 입력으로 계산하기 어려운
을(를) 길이 입력으로만 제한하십시오. Then we can see as a binary string of length , where each bit is for each . We can use a polynomial length locally decodable code with polylogarithmic query complexity that tolerates some constant fraction of errors to encode the string that represents to create a new string of length . We think of this new string as defining a new problem on length 개의 입력. If is easy to solve on average, that is, we can solve correctly on a large fraction of inputs, then by the properties of the LDC used to encode it, we can use to probabilistically compute 입력에 L 따라서 대부분의 입력에 대해 에 대한 솔루션을 사용하면 L 을(를) 모든 입력에 대해 해결할 수 있으며, 이는 이 (가) 최악의 경우 입력에 강하다는 우리의 가정과 모순된다.[5][8][12]
개인 정보 검색 방식
개인 정보 검색 체계는 사용자가 어떤 항목이 검색되는지 밝히지 않고 데이터베이스를 소유한 서버에서 항목을 검색할 수 있도록 한다. 프라이버시를 보장하는 한 가지 일반적인 방법은 데이터베이스 사본이 있는되지 않는 별도의 를 두는 것이다 적절한 계획이 주어지면, 사용자는 각 서버에 쿼리를 할 수 있는데, 이 쿼리는 개별적으로 사용자가 찾고 있는 비트를 밝히지 않지만, 데이터베이스 상의 특정 관심 비트를 결정할 수 있는 충분한 정보를 제공한다.[3][11]
로컬로 해독 가능한 코드가 이 설정에 응용 프로그램이 있음을 쉽게 알 수 있다. 하게 매끄러운 -server 개인 정보 체계를 로컬로 해독 가능한 코드에서 생성하기 위한 일반적인 절차는 다음과 같다.
을(를) -bit 메시지를 N -bit 코드 워드에 인코딩하는 완벽하게 매끄러운 LDC로 설정하십시오. As a preprocessing step, each of the servers encodes the -bit database with the code , so each server now stores the -bit codeword 비트의 x 쿼리 1,… 을로 하는 데 관심이 있는 사용자는 로 k x q}을 생성한다.… ( x) k C C 에 대한 로컬 디코딩 AA}을(를 사용하여 . 사용자는 각 쿼리를 다른 서버로 보내고, 각 서버는 요청된 비트로 응답한다. 그런 다음 사용자는 을 (를) 사용하여 응답으로부터 i 를 계산한다.[8][11] 디코딩 알고리즘은 완벽하게 매끄러우므로, 각각의 쿼리 j{\j}}는 코드 워드로 균일하게 분산되므로, 어떤 개별 서버도 사용자의 의도에 대한 정보를 얻을 수 없으므로, 서버가 통신하지 않는 한 프로토콜은 비공개적이다.[11]
예
하다마드 코드
Hadamard(또는 Walsh-Hadamard) 코드는 k 의 문자열을 길이 2의 코드 워드에 매핑하는 간단한 로컬 해독 가능 코드의 예다 The codeword for a string is constructed as follows: for every , the bit of the codeword is equal to , where x i y\sum \mod 2)). 모든 코드 워드의 해밍 거리가 코드 워드와n 2 {\}{2인 것을 쉽게 알 수 있다.
로컬 디코딩 알고리즘에는 쿼리 복잡성 2가 있으며, 코드 워드가 비트의 미만에서 손상된 경우 전체 원본 메시지를 상당한 확률로 디코딩할 수 있다. < 의 경우 코드 워드가 {\}의 일부분에서 손상된 경우 로컬 디코딩 알고리즘이 1- 의 로 의 i t h 비트를 복구할 수 있다
증명: 코드워드 색인 i에 따라 원본 메시지 비트를 복구하는 알고리즘은 과 같이 작동한다
j {\^{j는j th {\1\}^{k의 벡터를 가리키며, 이 벡터는 j t j 위치에 1이 있고 다른 위치에 0이 있다. , k y ( y) 는 y {\ y에 해당하는 의 단일 비트를 나타낸다 알고리즘은 무작위 y } {\y\\{를 선택하고 y = y i {\i}}}}(여기서\oplaystate \ XOR은 비트 XOR을 의미한다). 알고리즘은 ( ) ( y ) fmod 2)를 출력한다.
정확성: 선형성에 의해,
그러나( e )= 따라서 는 f() = y{\ f ( = x y = 좋은 확률로 보여주기만 하면 된다.
Since and are uniformly distributed (even though they are dependent), the union bound implies that and with probability at least . 참고: 성공 확률을 증폭시키기 위해 다른 무작위 벡터로 절차를 반복하고 대다수의 답변을 취할 수 있다. [13]
리드-뮬러 코드
Reed-Muller 코드의 국부적 해독 뒤에 있는 주요 아이디어는 다항식 보간법이다. Reed-Muller 코드의 핵심 은l {\l} 변수에 의 다변량 다항식이다. 메시지는 미리 정의된 점 집합에서 다항식의 평가로 처리된다. 이러한 값을 인코딩하기 위해, 다항식(다항식)은 그것들로부터 외삽되며, 코드 워드는 가능한 모든 포인트에서 그 다항식의 평가다. 높은 수준에서 이 다항식의 한 점을 디코딩하기 위해 디코딩 알고리즘은 관심 x{\}을 통과하는 선에서 된 S 을(를) 선택한다 그런 다음 의 포인트에 대한 다항식 평가를 위한 코드 워드를 쿼리하고 해당 다항식을 보간한다. 다음 x 을(를) 산출할 지점에서 다항식을 평가하는 것이 간단하다 을(를) 평가하는 이러한 우회적인 방법은 유용하다. (a) 정확성 확률을 개선하기 위해 동일한 지점을 통해 다른 선을 사용하여 알고리즘을 반복할 수 있고, (b) 질의가 코드워드 위에 균일하게 분포되어 있기 때문이다.
d<>를 갖춘 더 공식적으로, F{\displaystyle \mathbb{F}}는 유한 체고, 합시다, d{\displaystyle l,d}숫자들이;F{\displaystyle d<, \mathbb{F}}. 매개 변수와 함께 그 Reed-Muller 코드 F, l, d(,l,d}가 1인 기능 RM:F(는 a=l+dd)→. f that maps every -variable polynomial over of total degree to the values of on all the inputs in . That is, the input is a polynomial of the form specified by the interpolation of the values of the predefined points and the output is the sequence for every [14]
에서의 도 d displaystyle 다항식의 값을 복구하기위해 로컬 디코더는 w 을를) 통해 임의의 아핀 선을 쏜 다음 해당 라인에서 + 1 d점을 선택하고, 이 다항목을 보간 후 e-e에 사용한다.valuate it at the point where the result is . To do so, the algorithm picks a vector uniformly at random and considers the line through . The algorithm picks an arbitrary subset of , where , and queries coordinates of the codeword that correspond to points for all and obtains values{ Then it uses polynomial interpolation to recover the unique univariate polynomial with degree less than or equal to such that for all . Then, to get the value of 그것은 h( ) h 을 평가한다 원본 메시지의 단일 값을 복구하려면 을(를) 다항식을 정의하는 포인트 중 하나로 선택하십시오.[8][14]
각각의 개별 쿼리는 코드 워드에 대해 무작위로 균일하게 분포한다. 따라서 조합 바인딩에 위치의최대 Δ {\displaystyle }부분에서 코드 워드가 손상된 경우 알고리즘이 손상되지 않은 좌표만 샘플링(따라서 비트를 복구)할 은 최소 1- (d+ ) [8] 다른 디코딩 알고리즘은 다음을 참조하십시오.[8]
참고 항목
참조
- ^ Sergey Yekhanin. "Locally decodable codes: a brief survey" (PDF).
- ^ Rafail Ostrovsky; Omkant Pandey; Amit Sahai. "Private Locally Decodable Codes" (PDF).
- ^ a b 세르게이 예카닌. 새로운 로컬 해독 가능한 코드 및 개인 정보 검색 체계인 Technical Report ECCC TR06-127, 2006.
- ^ Tali Kaufman; Michael Viderman. "Locally Testable vs. Locally Decodable Codes".
- ^ a b c Luca Trevisan. "Some Applications of Coding Theory in Computational Complexity" (PDF).
- ^ Arora, Sanjeev; Barak, Boaz (2009). "Section 19.5". Computational Complexity: A Modern Approach. Cambridge. ISBN 978-0-521-42426-4.
- ^ Arora & Barak 2009, 섹션 19.4.3
- ^ a b c d e f g h i Sergey Yekhanin. "Locally Decodable Codes" (PDF).
- ^ a b Sergey Yekhanin. "Locally Decodable Codes" (PDF).
- ^ "Combinatorics in Space The Mariner 9 Telemetry System" (PDF).
- ^ a b c d Sergey Yekhanin. "Private Information retrieval" (PDF).
- ^ Arora & Barak 2009, 섹션 19.4
- ^ Arora & Barak 2009, 섹션 11.5.2
- ^ a b Arora & Barak 2009, 섹션 19.4.2