BCH 코드

BCH code

부호화 이론에서, BCH 코드 또는 Bose-Chaudhuri-Hocquenghem 코드유한 필드(Galois 필드라고도 함)에 대한 다항식을 사용하여 구성된 순환 오류 수정 코드의 한 부류를 형성한다. BCH 코드는 1959년 프랑스의 수학자 알렉시스 호크켄헴에 의해 발명되었고, 1960년 라지 보세D. K. 레이-하우드후리에 의해 독자적으로 발명되었다.[1][2][3] 보세-하우드후리-호켄헴(및 약자 BCH)은 발명가 성(레이-하우드후리의 경우 잘못)의 이니셜에서 유래한다.

BCH 코드의 주요 특징 중 하나는 코드 설계 중에 코드로 교정 가능한 기호 오류의 수를 정밀하게 제어한다는 것이다. 특히 다중 비트 오류를 수정할 수 있는 바이너리 BCH 코드 설계가 가능하다. BCH 코드의 또 다른 장점은 디코딩이 쉽다는 것, 즉 디코딩이라고 알려진 대수적 방법을 통해 디코딩할 수 있다는 것이다. 이것은 소형 저전력 전자 하드웨어를 사용하여 이러한 코드의 디코더 설계를 단순화한다.

BCH 코드는 위성 통신,[4] 컴팩트 디스크 플레이어, DVD, 디스크 드라이브, 솔리드 스테이트 드라이브,[5] 양자 내성 암호[6]2차원 바코드 등의 응용 프로그램에 사용된다.

정의 및 일러스트레이션

원시 협센스 BCH 코드

dqm - 1과 같은 양의 정수 md를 가진 prime number qprime power qm 가진 경우, 코드 길이 n = qm - 1을 가진 유한장(또는 Galois field) GF(q)에 대한 원시 좁은 의미의 BCH 코드는 다음과 같은 방법으로 구성된다.

αGF(qm)의 원시 원소로 한다. 모든 양의 정수 i의 경우, mi(x)αi GF(q)로 계수를 갖는 최소 다항식이 되게 한다. BCH 코드의 발생기 다항식최소공통 복수 g(x) = lcm(m1(x), …,md − 1(x)로 정의된다. g(x)GF(q)에 계수가 있는 다항식이고 xn - 1을 나눈다는 것을 알 수 있다. 따라서 g(x)에 의해 정의된 다항식 코드는 순환 코드다.

q = 2m = 4(따라서 n = 15)로 한다. 원시 원소 α(z) = z를 사용하여 감소하는 다항식4 z + z + 1에 기초한 GF(2)4 대한 d 을 다르게 고려한다. GF(2) 만족 계수를 갖는 최소 다항식 mi(x)이 14개 있다.

최소 다항식은

= , 을(를) 사용하는 BCH 코드에는 제너레이터 다항식이 있음

해밍 거리는 최소 3개 이상이며 최대 1개의 오차를 보정한다. 제너레이터 다항식이 도 4이므로 이 코드는 11개의 데이터 비트와 4개의 체크섬 비트를 가진다.

= , 의 BCH 코드에는 제너레이터 다항식이 있음

해밍 거리는 최소 5개, 최대 2개의 오류를 보정한다. 제너레이터 다항식이 도 8이므로 이 코드는 7개의 데이터 비트와 8개의 체크섬 비트를 가진다.

= , 의 BCH 코드에는 제너레이터 다항식이 있음

해밍 거리는 최소 7개, 오류는 최대 3개까지 교정한다. 제너레이터 다항식이 도 10이기 때문에 이 코드는 5개의 데이터 비트와 10개의 체크섬 비트가 있다. (이 특정 제너레이터 다항식에는 QR 코드의 형식 패턴으로 실제 응용 프로그램이 있다.)

= 이상의 BCH 코드에는 제너레이터 다항식이 있음

이 코드는 해밍 거리 15를 최소화하고 7개의 오류를 수정한다. 1개의 데이터 비트와 14개의 체크섬 비트를 가지고 있다. 실제로 이 코드에는 000000000000000과 11111111111111111111의 두 가지 암호만 있다.

일반 BCH 코드

일반 BCH 코드는 두 가지 측면에서 원시적인 좁은 의미의 BCH 코드와 다르다.

첫째, 이(가) F( m) 의 원시 요소라는 요건은 완화할 수 있다. 이 요구 사항을 완화함으로써 코드 길이는 -1 에서 r ), ), 원소의 순서 변경된다.

둘째, 발전기 다항식의 연속 루트는 ,, c , , α + + 2 ^{ . . . .}에서 실행될 수 있다

정의. 이(가) 기본 전원인 유한 필드 , 를 수정하십시오. Choose positive integers such that and is the multiplicative order of modulo

As before, let be a primitive th root of unity in and let be the minimal polynomial over of for all BCH 코드의 발생기 다항식은 최소공통 복수 )= l (x),+ - (x). 로 정의된다.

Note: if as in the simplified definition, then is 1, and the order of modulo is Therefore, the simplified definition is indeed a special case of the gen에를 바르다

특례

  • = }을를) 가진 BCH 코드를 좁은 의미의 BCH 코드라고 한다.
  • = - }을를) 갖는 BCH 코드를 primary라고 한다.

BCH 코드의 제너레이터 x) ). )의 계수가 있다 일반적으로 G ( ) 를 g( ) (를) 사용한 순환 코드를 F ( ) . (라고 한다. The BCH code over and generator polynomial with successive powers of as roots is one type of Reed–Solomon code where the decoder (syndromes) alphabet is the same as the channel (data and generator polynomial) alpHabet, ( m) 의 모든 요소.[7] 리드 솔로몬 코드의 다른 유형은 BCH 코드가 아닌 원래리드 솔로몬 코드다.

특성.

BCH 코드의 제너레이터 다항식은 최대(- 1) 을(를) 가지고 있다 더욱이 = 2 = 일 경우 제너레이터 다항식은 최대 }을(를한다

증명

최소 다항식 m ( x) 는 최대 의 학위를 가지고 있다 Therefore, the least common multiple of of them has degree at most . Moreover, if then for all . 따라서 ( ) 은(는) 홀수 i 대해 각각 d / {\}개의 최소 m 중에서 최소 공통 배수인 것이다

BCH 코드는 최소 해밍 거리를 가지고 있다. 적어도 .

증명

( ) 이(가) non-zero 항보다 작은 코드 단어라고 가정해 보십시오. 그러면

Recall that are roots of hence of . This implies that satisfy the following equations, for each + - } :

매트릭스 형태로는

이 행렬의 결정 요인은 동일하다.

매트릭스 은(는) 밴더몬드 매트릭스로 보이며, 그 결정 요소는

0이 아닌 것 같아. 따라서 , -= 0 따라서 ( x)= . {\displaystyp px)=0.

BCH 코드는 주기적이다.

증명

A polynomial code of length is cyclic if and only if its generator polynomial divides Since is the minimal polynomial with roots it suffices to check that each of is a root of This follows immediately from the fact that is, by definition, an th root of unity.

인코딩

발전기 다항식의 배수인 모든 다항식은 유효한 BCH 코드 워드이기 때문에, BCH 인코딩은 발전기를 인자로 하는 일부 다항식을 찾는 과정일 뿐이다.

BCH 코드 자체는 다항식 계수의 의미에 대해 규범적이지 않다. 개념적으로, BCH 디코딩 알고리즘의 유일한 관심사는 수신된 코드 워드에 대한 최소 해밍 거리를 가진 유효한 코드 워드를 찾는 것이다. 따라서 BCH 코드는 구현자가 인코딩된 다항식 안에 메시지를 포함하도록 선택하는 방법에 따라 체계적인 코드로 구현될 수도 있고 그렇지 않을 수도 있다.

비시스템적 인코딩: 요소로서의 메시지

제너레이터의 배수인 다항식을 찾는 가장 간단한 방법은 일부 임의 다항식과 제너레이터의 곱을 계산하는 것이다. 이 경우 메시지 기호를 계수로 사용하여 임의 다항식을 선택할 수 있다.

예를 들어 제너레이터 다항식 = + + + x + + x + 를 고려하십시오. POCSAG 등이 사용하는 (31, 21) 바이너리 BCH 코드에 사용하기 위해 선택됨 21비트 메시지 {101011101111011101101}을(를) 인코딩하려면 먼저 ) 을(를) 통한 다항식으로 표시한다

그런 다음( F( ) 을(를) 통해 계산하십시오.

따라서 전송된 암호어는 {1100111010010111101110101010101010101010101010101010101}이다.

수신기는 이러한 비트를 ( ) 의 계수로 사용할 수 있으며, 오류 수정 후 유효한 코드 워드를 확인하기 위해 ( )= s( )/ g( ) 을(x)})를 다시 계산할 수 있다.

체계적 인코딩: 메시지 접두사

체계적 코드는 메시지가 코드 워드 내의 어딘가에서 말 그대로 나타나는 코드다. 따라서 체계적 BCH 인코딩은 먼저 코드워드 다항식 안에 메시지 다항식을 내장한 다음, ( ) 이(가) ({\ g로 구분되도록 나머지 (메시지 이외의) 용어의 계수를 조정하는 것을 포함한다

이 인코딩 방법은 배당금에서 나머지를 빼면 디비저의 배수가 된다는 사실을 활용한다. 따라서 만약 우리가 우리의 메시지 다항식 (을 이전과 같이 취하여 -k x로 곱한다면, (그 메시지를 나머지 방법으로 "전환"하기 위해) 다항식의 유클리드 분할을 사용하여 다음과 같이 산출할 수 있다.

여기서 ( ) g( ) 이(가) 유효한 암호어임을 알 수 있다. As is always of degree less than (which is the degree of ), we can safely subtract it from without altering any of the message coefficients, hence we have our

( ) 즉, 바이너리 BCH 코드가 있는 경우)에 대해 이 프로세스는 주기적 중복성 검사를 추가하는 것과 구별할 수 없으며, 체계적 바이너리 BCH 코드가 오류 검출 목적으로만 사용되는 경우, 우리는 BCH 코드가 주기적 중복성 검사의 수학의 일반화에 불과하다는 것을 알게 된다.

체계적 코딩의 장점은 수신기가 오류 수정을 수행한 후 첫 번째 계수 이후의 모든 것을 버림으로써 원래의 메시지를 복구할 수 있다는 것이다.

디코딩

BCH 코드를 해독하는 알고리즘은 많다. 가장 일반적인 내용은 다음과 같은 일반적인 개요를 따른다.

  1. 수신된 벡터에 대한 신드롬 계산j
  2. syndromes의 오류 수 t 및 오류 로케이터 다항식 λ(x) 결정
  3. 오류 위치 다항식의 루트를 계산하여 오류 위치 X 찾기i
  4. 해당 오류 위치에서 오류 값 Yi 계산하십시오.
  5. 오류 수정

이러한 일부 단계에서 디코딩 알고리즘은 수신된 벡터에 오류가 너무 많아 수정할 수 없다고 판단할 수 있다. 예를 들어, 적절한 t 값을 찾지 못하면 보정이 실패할 것이다. 잘린(원시적이지 않은) 코드에서 오류 위치가 범위를 벗어났을 수 있다. 수신된 벡터에 코드가 수정할 수 있는 오류보다 더 많은 오류가 있는 경우 디코더는 자신도 모르게 전송된 메시지가 아닌 명백한 유효 메시지를 생성할 수 있다.

신드롬 계산

수신된 벡터 (는) 올바른 C (와) 알 수 없는 오류 E. E의 합이다. 신드롬 값은 으로R {\ R}을(를 고려하고 , c+ - .}에서 평가하여 형성된다 따라서 신드롬은[8]

= ~ c+ - 2

Since are the zeros of of which is a multiple, Examining the syndrome values thus isolates the error vector so one can begin to solve for it.

없으면 s = 0 모든 . j 신드롬이 모두 0이면 디코딩이 완료된다.

오류 위치 다항식 계산

만약 0이 아닌 신드롬이 있다면, 오류가 있는 것이다. 디코더는 얼마나 많은 오류와 그 오류의 위치를 알아낼 필요가 있다.

단일 오류가 있는 경우 x)= e 로 입력하십시오. i 오류의 위치이고 e e}은( 입니다. 그럼 처음 두 신드롬은

함께 e 을(를) 계산하고 i 에 대한 정보를 제공할 수 있다(Red-Solomon 코드의 경우 완전히 결정).

오류가 두 개 이상일 경우

미지의 . 에 대해 결과적인 신드롬을 해결하는 방법을 시작하는 방법은 즉시 명확하지 않다.

첫 번째 단계는 가능한 최소 , 로케이터 다항식:

이 작업에 널리 사용되는 알고리즘은 다음과 같다.

  1. 피터슨-고렌슈타인-지얼러 알고리즘
  2. Berlekamp-Massey 알고리즘
  3. 스기야마유클리드 알고리즘

피터슨-고렌슈타인-지얼러 알고리즘

피터슨의 알고리즘은 일반화된 BCH 디코딩 절차의 2단계다. 피터슨의 알고리즘은 다항식의 오차 로케이터 다항계수 , 2, v ,\를 계산하는 데 사용된다.

이제 피터슨-고렌슈타인-지얼러 알고리즘의 절차.[9] 적어도 2tc 신드롬, …, s. letc+2t−1 v = t.

  1. 먼저 신드롬 값인 요소를 사용하여 v 행렬을 생성하십시오.
  2. 요소가 있는 c :1}}벡터 생성
  3. 은(는) 다음에 의해 주어지는 알 수 없는 다항식 계수를 나타내도록 한다.
  4. 행렬 방정식 작성
  5. 행렬 v 의 결정요인이 0이 아니라면, 실제로 이 행렬의 반전을 찾아 알 수 없는 값의 값을 풀 수 있다.
  6. v)= 인 경우 다음 절차를 따르십시오.
           =   경우 빈 오류 로케이터 다항식 중지 Peterson 절차를 선언하십시오.        종료 세트    -  
    더 작은 S v을(를) 만들어 피터슨의 디코딩 시작부터 계속한다.
  7. 값을 가진 후 오류 로케이터 다항식을 갖게 된다
  8. 피터슨 절차를 중지하십시오.

인자 오류 로케이터 다항식

Now that you have the polynomial, its roots can be found in the form by b예를 들어 Chien 검색 알고리즘을 사용한 rute 힘. 원시 요소 }의 지수적인 힘은 수신된 단어에서 오류가 발생하는 위치를 산출하므로 '오류 로케이터' 다항식 이름이다.

λ(x)의 0은 αi1, …, α이다iv.

오류 값 계산

일단 오류 위치가 알려지면 다음 단계는 해당 위치에서 오류 값을 결정하는 것이다. 그런 다음 오류 값을 사용하여 해당 위치에서 수신된 값을 수정하여 원래 코드 단어를 복구한다.

바이너리 BCH의 경우 (모든 문자를 읽을 수 있는 경우) 이것은 사소한 것이다. 수신된 단어의 비트를 이 위치에서 뒤집기만 하면 수정된 코드 워드가 나온다. 보다 일반적인 경우, 오류 가중치 는 선형 시스템을 풀어서 결정할 수 있다.

포니 알고리즘

그러나, 포니 알고리즘이라고 알려진 더 효율적인 방법이 있다.

내버려두다

그리고 오류 평가자 다항식[10]

마지막으로:

어디에

syndrome이 k {\ 위치에서만 0이 아닐 수 있는 오류 워드로 설명될 수 있는 경우보다, 오류 값은 다음과 같다

좁은 의미의 BCH 코드의 경우 c = 1로 표현하면 다음과 같이 간단해진다.

Forney 알고리즘 계산 설명

라그랑주 보간함수 생성 기법에 근거한다.

Consider and for the sake of simplicity suppose for and for 그러면

알 수 없는 e , (를) 계산하려고 하며 ( ) - )^{ 항을제거하여 컨텍스트를 단순화할 수 있다. 이는 오류 평가자 다항식으로 이어진다.

- 덕분에

라그랑주 보간술) 덕분에 합은 = - k 에 대해 하나의 합계만 변질된다.

를 받으려면 제품을 제거해야 한다. 계산된 루트 - 에서 직접 제품을 계산할 수는 있지만, 더 간단한 형태를 사용할 수는 있다.

형식파생상품으로

우리는 단지 하나의 summand를 다시 얻는다.

그래서 마침내

이 공식은 형식의 공식 파생 모델을 계산할 때 유리하다.

항복:

어디에

확장 유클리드 알고리즘에 기반한 디코딩

다항식 Ⅱ와 오차 로케이터 다항식을 모두 찾는 대체 과정은 스기야마 야스오의 확장 유클리드 알고리즘 적응에 기초한다.[11] 읽을 수 없는 문자의 수정도 알고리즘에 쉽게 통합될 수 있다.

,... . 을(를) 읽을 수 없는 문자의 위치가 되도록 한다. 이러한 위치 )= i= ( - 1). )을 생성한다 읽을 수 없는 위치의 값을 0으로 설정하고 신드롬을 계산한다.

우리가 이미 Forney 공식에 대해 정의한 바와 같이, Let ()= i = d- 2 +

Let us run extended Euclidean algorithm for locating least common divisor of polynomials and The goal is not to find the least common divisor, but a polynomial of degree at most and polynomials such that Low degree of guarantees, that would satisfy extended ({\)에 대한 정의

( x = ( )( \\Xi)=a 정의하고 Fourney 공식에서 ) 대신 을 사용하면 오류 값이 나온다.

알고리즘의 주요 장점은 한편 Forney 공식에 필요한 ()= ( x) () x - = ( x) d-1}=을 계산한다는 것이다.

디코딩 프로세스에 대한 설명

목표는 수신된 단어와 가능한 한 읽기 쉬운 위치에서 다른 코드 워드를 찾는 것이다. 수신된 단어를 가장 가까운 코드 워드와 오류 워드의 합으로 표현할 때, 가독 가능한 위치에서 0이 아닌 최소 개수의 오류 워드를 찾으려고 노력하고 있다. 신드롬 조건별로 오류 단어 제한

이 조건들을 따로 쓰거나 다항식을 만들 수도 있다.

검정력 가까운 계수를 - 2와 비교하십시오

Suppose there is unreadable letter on position we could replace set of syndromes by set of syndromes defined by equation 오류 워드에 대해 원본 세트{,, s + d- 의한 모든 제한은 다음보다 작다고 가정하십시오.

새로운 신드롬 집합이 오류 벡터를 제한함

the same way the original set of syndromes restricted the error vector Except the coordinate where we have an is zero, if For t그는 오류 위치를 찾는 것을 목표로 우리는 읽을 수 없는 모든 문자를 반영하기 위해 비슷한 방식으로 신드롬 세트를 변경할 수 있다. 이렇게 하면 신드롬 집합이 . {\ k 단축된다.

In polynomial formulation, the replacement of syndromes set by syndromes set leads to

그러므로

( ) S( ) ( x)로 교체한 후에는 power ,, - 2.\에 가까운 계수에 방정식이 필요하다

판독 불가능한 문자와 유사하게 주어진 위치의 영향력을 제거하는 관점에서 오류 위치를 찾는 것을 고려할 수 있다. 위치를 찾은 경우, 이러한 좌표에만 오류가 있는 오류 벡터가 있는 경우보다 모든 0으로 구성된 신드롬 세트를 획득할 수 있다. ( ) 이(가) 이러한 좌표의 영향을 제거하는 다항식을 나타내는 경우, 당사는

유클리드 알고리즘에서는 오류 카운트가 클수록 수신 단어로부터 같은 거리에 더 많은 코드 워드가 있을 수 있기 때문에 최대 (- 1- ) {1}:{1}( 오류(읽을 수 있는 위치에서)를 수정하려고 한다. 따라서, 우리가 찾고 ( ){\의 경우, 방정식은 다음에서 시작하는 역량에 가까운 계수에 대해 유지되어야 한다.

Forney 공식에서 ( x) 에 동일한 결과를 제공하는 스칼라를 곱할 수 있다.

It could happen that the Euclidean algorithm finds of degree higher than having number of different roots equal to its degree, where the Fourney formula would be able to correct errors in all its roots, anyway correcting such many errors는 위험할 수 있다(특히 수신된 단어에 대한 다른 제한이 없다). 보통 ( ) 을(를) 더 높은 등급으로 받은 후에는 오류를 수정하지 않기로 한다. ( ) 이(가) 다중성이 높거나 루트 수가 그 정도보다 작은 경우 보정이 실패할 수 있다. Fail 역시 Forney 수식이 전송된 알파벳 외부의 오류를 반환함으로써 감지될 수 있다.

오류 수정

오류 값과 오류 위치를 사용하여 오류를 수정하고 오류 위치에서 오류 값을 빼서 수정된 코드 벡터를 형성하십시오.

예제 디코딩

읽을 수 없는 문자가 없는 이진 코드 디코딩

Consider a BCH code in GF(24) with and . (This is used in QR codes.) 전송할 메시지를 [1 1 1 1]로 하거나 다항식 표기법으로 x) = + + + 1로 한다 "체크섬" x M ( ){\ x을 g( x ) {\ g(x 나누고 나머지를 취함으로써 되며, x 9 + 4+x 2 {\ x4}+x^{4}+x^{4}+x^{4}+x^{ 된다. 또는 [ 1 0 0 0 0 1 0 0 ] 이것들은 메시지에 첨부되기 때문에, 전송된 코드 워드는 [1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 ]이다.

이제 전송에 두 개의 비트 오류가 있으므로 수신된 코드 워드는 [1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]이라고 상상해 보십시오. 다항식 표기법:

오류를 수정하려면 먼저 신드롬을 계산하십시오. Taking we have = 다음에는 다음의 증강 매트릭스를 줄여서 피터슨 절차를 적용한다.

0행으로 인해 S3×3 단수인데, 단 두 개의 오류만 암호문에 유입되었기 때문에 놀랄 일도 아니다. 그러나 매트릭스의 왼쪽 상단 모서리는 [S2×2 C2×1]와 동일하며, 이로 인해 솔루션 2 = 2}= 1 = 이 발생한다 The resulting error locator polynomial is which has zeros at and The exponents of correspo오류 위치에 연결하십시오. 이 예에서는 유일한 값이 1이므로 오류 값을 계산할 필요가 없다.

읽을 수 없는 문자로 디코딩

동일한 시나리오를 가정하지만 수신된 단어에는 읽을 수 없는 두 개의 문자[1 0 0 ? 1 ? 0 0 1 0 0 0 0 0 0 ? 0 0 0 ]가 있다고 가정하십시오. 읽을 수 없는 문자는 0으로 대체하고 위치 )=( - ). 디스플레이 스타일\(x^{우측좌측(\ We compute the syndromes and (Using log notation which is indeGF(24) 이소모르퍼스(pendent on GF(2) 계산 검사에서 우리는 이전 예제에서 사용된 것과 동일한 표현을 추가에 사용할 수 있다. 의 힘에 대한 16진수 설명은 비트 xor에 기반한 추가와 함께 연속적으로 1,2,4,8,3,6,C,B,5,A,7,E,F,D,9이다.)

신드롬 다항식을 만들자.

계산하다

확장 유클리드 알고리즘 실행:

우리는 다항식 학위학위학위학위학위학위학위학위학위학위학위학위

우리는 얻는다.

그러므로

Let Don't worry that Find by brute force a root of The roots are and 예: 2 }}:(를 해당 모놈(x으로 나눌 수 있으며, 결과 모놈의 뿌리를 쉽게 찾을 수 있다.

내버려두다

공식을 사용하여 오류 값을 찾도록 함

여기서 - i ( ) .)의 루트다 ) = 2 . cHBFFFFF}우리는

사실 = e = ,는 놀랄 일이 아니다.

따라서 수정된 코드는 [1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0]이다.

소수의 오류가 있는 읽을 수 없는 문자로 디코딩

오류 수가 적은 사례에 대한 알고리즘 동작을 보여줍시다. 수신된 단어는 [ 1 0 ? 1 ? 0 0 0 0 0 0 ]으로 한다.

다시, 읽을 수 없는 문자를 0으로 교체하고 위치 )=( - ).(\alpharight)\ Compute the syndromes and Create syndrome polynomial

확장된 유클리드 알고리즘을 실행합시다.

우리는 다항식 학위학위학위학위학위학위학위학위학위학위학위학위

우리는 얻는다.

그러므로

Let Don't worry that The root of is

내버려두다

Let us look for error values using formula where are roots of polynomial

우리는 얻는다.

= 이라는 사실이 놀랍지 않아야 한다.

따라서 수정된 코드는 [1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0]이다.

인용구

  1. ^ 리드 & 첸 1999, 페이지 189
  2. ^ 호크엥헴 1959
  3. ^ 보세&레이-쇼우드후리 1960
  4. ^ "Phobos Lander Coding System: Software and Analysis" (PDF). Retrieved 25 February 2012.
  5. ^ "Sandforce SF-2500/2600 Product Brief". Retrieved 25 February 2012.
  6. ^ http://pqc-hqc.org/doc/hqc-specification_2020-05-29.pdf
  7. ^ N.D., 페이지 3
  8. ^ Lidl & Pilz 1999, 페이지 229
  9. ^ 고렌슈타인, 피터슨 & 지에러 1960
  10. ^ 길 N.D., 페이지 47
  11. ^ 스기야마 야스오, 가사하라 마사오, 히라사와 시게이치, 네임카와 도시히코. Goppa 코드를 해독하기 위한 키 방정식을 푸는 방법. 정보 통제, 1975년 27:87–99.

참조

일차 출처

이차 출처

추가 읽기