Bài giảng Phương pháp giải mã vòng Meggitt

• Với quy ước u 1 (x) là quay vòng trái của u(x). • u(x) = u 0 x n-1 + u 1 x n-2 + . + u n-2 x + u n-1 • u 1 (x) = u 1 x n-1 + u 2 x n-2 + . + u n-1 x + u 0 • u 1 (x) mod g(x) = xs(x) mod g(x) = • = x. (u(x) mod g(x)) mod g(x) •  u 1 (x) mod g(x) = x.u(x) mod g(x) • (u 1 x n-1 + u 2 x n-2 + . + u n-1 x + u 0 ) mod g(x) = • = (u 0 x n + u 1 x n-1 + . + u n-2 x 2 + u n-1 x) mod g(x) • => u 0 (x n + 1) mod g(x) =

pdf9 trang | Chia sẻ: nyanko | Lượt xem: 1127 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Phương pháp giải mã vòng Meggitt, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Phương pháp giải mã vòng Meggitt Giáo viên thực hiện: Lê Thị Thanh Định lý Meggitt • Giả sử s(x) là syndrome của: • u(x) = u0xn-1 + u1xn-2 + ... + un-2x + un-1 thì syndrome của u1(x) là s1(x) được tính theo công thức sau: • s1(x) = xs(x) mod g(x) Chứng minh định lý Meggitt • Với quy ước u1(x) là quay vòng trái của u(x). • u(x) = u0xn-1 + u1xn-2 + ... + un-2x + un-1 • u1(x) = u1xn-1 + u2xn-2 + ... + un-1x + u0 • u1(x) mod g(x) = xs(x) mod g(x) = • = x. (u(x) mod g(x)) mod g(x) •  u1(x) mod g(x) = x.u(x) mod g(x) • (u1xn-1 + u2xn-2 + ... + un-1x + u0) mod g(x) = • = (u0xn + u1xn-1 + ... + un-2x2 + un-1x) mod g(x) • => u0(xn + 1) mod g(x) = 0 6.4 Khả năng sửa sai của bộ mã vòng (n,k) • 6.4.1 Độ dài sai • 6.4.2 Khả năng dò sai • 6.4.3 Xác suất không dò được sai của các mẫu sai • 6.4.4 Xác suất không dò được sai của bộ mã vòng 26.4.1 Độ dài sai • Độ dài sai: Giả sử e = e0e1... en-1= • = (e0e1... ei-1 ei ei+1 ... ej-1 ej ej+1 ...en-1) • = (00 ... 0 1 ei+1 ... ej-11 00 ... 0) • Khi đó độ dài sai được định nghĩa là khoảng cách từ bit ei tới bit ej: • độ dài sai = j – i + 1 • Độ dài sai vòng: giả sử e = e0e1... en-1= • = (e0e1... ei-1 ei ei+1 ... ej-1 ej ej+1 ...en-1) • = (e0e1... ei-1 1 0 0 ... 0 1 ej+1 ...en-1) • Độ dài sai vòng được định nghĩa là khoảng cách vòng từ bit ei đến bit ej. • độ dài sai vòng = n – (j – 1 – i – 1 + 1) = • = n – j + i + 1) 6.4.2 Khả năng dò sai (1/3) • Định lý 6.7: Bộ mã vòng (n,k) có thể dò được tất cả các mẫu sai nhỏ hơn hoặc bằng (n-k) bit. (kể cả độ dài sai vòng). • Chứng minh: • Bổ đề: “Nếu bộ mã vòng (n,k) có khả năng phát hiện được đa thức gây sai e(x) thì sẽ phát hiện được tất cả các đa thức gây sai ei(x) là đa thức dịch chuyển vòng i bit của e(x) (i=1,n-1)”. 6.4.2 Khả năng dò sai (2/3) • Giả sử ei(x) là đa thức gây sai không phát hiện được → ei(x) cũng là đa thức mã (mâu thuẫn). Do đó ta chỉ cần chứng minh định lý với độ dài sai tuyệt đối. • Giả sử e(x) = E(x).xi với 0 ≤ i ≤ n-1 → vector sai ứng với E(x) có độ dài ≤ (n-k) → bậc của E(x) ≤ (n-k-1) • Để phát hiện được sai trong mã vòng thì phải chứng minh rằng e(x) không phải từ mã, tức là e(x) không chia hết cho g(x). 36.4.2 Khả năng dò sai (3/3) • Nhận xét: E(x) có bậc nhỏ hơn g(x); E(x) # 0 → E(x) không chia hết cho g(x). • Mặt khác, vì hệ số tự do của g(x) là khác không nên xi sẽ không chức một thừa số nào của g(x). Vậy E(x).xi sẽ không chia hết cho g(x). • Vậy đa thức sai e(x) là dò được. 6.4.3 Xác suất không dò được sai • Định lý 6.8: ”Xác suất không dò được các mẫu sai có độ dài bằng (n-k+1) là 2-(n-k-1)”. • Chứng minh: e(x) = E(x).xi • E(x) có n-k+1 số hạng → E(x) có bậc n-k. • Khi không phát hiện được sai thì E(x) là đa thức mã có bậc n-k, mà đa thức mã bậc n-k duy nhất là g(x). 6.4.3 Xác suất không dò được sai • Có 2(n-k-1) đa thức nhưng chỉ có một đa thức E(x) = g(x) làm cho sai e(x) là không dò được. Vậy xác suất không dò được sai của các mẫu sai có độ dài bằng (n-k+1) là: • Pud = 1/ 2(n-k-1) = 2-(n-k-1) 6.4.4 Định lý 6.9 • Định lý 6.9: xác suất không dò được sai của bộ mã vòng (n,k) là 2(k-n). • Chứng minh: • Số đa thức gây sai: 2n – 1 • Số đa thức mã khác không: 2k – 1 • Vậy xác xuất không dò được sai là: • Pud = 2k – 1 / 2n – 1 = 2k-n 4Phương pháp giải mã vòng Meggitt • Nguyên lý giải mã • Thiết kế mạch thực hiện giải mã Nguyên lý giải mã Meggitt • Phương pháp này sửa sai cho tất cả các mẫu sai 1 bit • Giả sử nhận được đa thức: u(x)=u0xn-1+u1xn-2+...+un-1 • Chọn một mẫu sai có thể sửa sai được e(x)=e0xn-1+e1xn-2+...+en-1 với e0=1 • So sánh syndrome của u(x) và syndrome của e(x): –Không khớp: tính syndrome của u(1)(x) từ syndrome của u(x) –Khớp: sửa sai và tính syndrome của u’(1)(x) từ syndrome của u(x) Syndrome của u(x) không bằng syndrome của e(x) • Quay vòng u(x)=u0xn-1+u1xn-2+...+un-1 để được u(1)(x)=u1xn-1+u2xn-2+...un-1x+u0 Do u0xn+u0=u0(xn+1) chia hết cho g(x) nên: s(1)(x) =dư số[u(1)(x)/g(x)] =dư số[(u(1)(x)+u0xn+u0)/g(x)] =dư số[(u0xn+u(1)(x)+u0)/g(x)] =dư số[(u0xn+u1xn-1+u2xn-2+...+un-1x+u0+u0)/g(x)] Syndrome của u(x) không bằng syndrome của e(x) • Quay vòng u(x)=u0xn-1+u1xn-2+...+un-1 để được u(1)(x)=u1xn-1+u2xn-2+...un-1x+u0 Do u0xn+u0=u0(xn+1) chia hết cho g(x) nên: s(1)(x)=dư số[u(1)(x)/g(x)] =dư số[(u(1)(x)+u0xn+u0)/g(x)] =dư số[(u0xn+u(1)(x)+u0)/g(x)] =dư số[(u0xn+u1xn-1+u2xn-2+...+un- 1x+u0+u0)/g(x)] =dư số[(xu(x)+0)/g(x)] =dư số[xu(x)/g(x)] =dư số[x(kg(x)+dư số[u(x)/g(x)])/g(x)] 5Syndrome của u(x) không bằng syndrome của e(x) =dư số[x(kg(x)+dư số[u(x)/g(x)])/g(x)] =dư số[x(kg(x)+s(x)])/g(x)] =dư số[xkg(x)/g(x)+dư số[xs(x)/g(x)] =0+dư số[xs(x)/g(x)] =dư số[xs(x)/g(x)] • Do đó khi đã có syndrome của u(x) là s(x) thì có thể tính syndrome s(1)(x) của u(1)(x) bằng cách dịch trái s(x) Syndrome của u(x) bằng syndrome của e(x) • Sửa sai bit đầu tiên: u(x) sửa sai bit đầu (cộng với e0=1) được u’(x) u’(x)=(u0+e0)xn-1+u1xn-2+...+un-1=u(x)+e0xn-1 Lúc đó syndrome của u’(x) là: s’(x) =dư số[u’(x)/g(x)]=dư số[(u(x)+e0xn-1)/g(x)] =dư số[u(x)/g(x)]+dư số[xn-1/g(x)] =s(x)+dư số[xn-1/g(x)] Syndrome của u(x) bằng syndrome của e(x) • Quay vòng trái u’(x) và tính syndrome của nó: u’(1)(x)=u1xn-1+u2xn-2+...+un-1x+(u0+e0)=u(1)(x)+e0 s’(1)(x) =dư số[u’(1)(x)/g(x)] =dư số[(u(1)(x)+e0)/g(x)] =dư số[(u(1)(x)/g(x)]+dư số[e0/g(x)] =dư số[xs(x)/g(x)]+dư số[e0/g(x)] =dư số[(xs(x)+e0)/g(x)] • Do đó khi đã có syndrome của u(x) là s(x) thì có thể tính syndrome s’(1)(x) của u’(1)(x) bằng cách dịch trái s(x) và cộng thêm e0 vào bit trọng số thấp nhất Thiết kế mạch giải mã Meggitt Thanh ghi syndrome So sánh mẫu sai Bộ đệm + + u(x) 1: khớp, 0: không khớp Đóng từ xung n 6Thiết kế mạch giải mã Meggitt • Giả sử bộ mã vòng có ma trận sinh là: g(x)=x3+x+1 với n=7, k=4, n-k=3 • Mẫu sai sửa được là: 1000000 có syndrome là (101) • Các bit mang tin là 1101 thì tính được dư của 1101000 chia cho 1011 là 001 từ đó ta có từ mã là 1101001 • Giả sử sai bit thứ 5 thành 1101101 • Mạch giải mã sẽ sửa bit thứ 5 từ 1 thành 0 và chuyển tổ hợp 1101101 thành từ mã 1101001 Thiết kế mạch giải mã Meggitt sửa sai 1 bit cho bộ mã vòng có g(x)=x3+x+1 3 2 1++ 7 6 5 4 3 2 1 + Mạch chia lấy số dư Mạch so sánh với 101 Ngõ vào Ngõ ra =101 1 ≠101 0 Đóng từ xung thứ 7 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 0 3 2 1++ 7 6 5 4 3 2 1 + 1 0 1 1 0 1 1 0000000 000 0 0 010 1 0 0 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 1 3 2 1++ 7 6 5 4 3 2 1 + 1 0 1 1 0 1 0000001 001 0 0 011 1 1 0 0x2 x3x1x0 7Hoạt động mạch giải mã Meggitt – xung 2 3 2 1++ 7 6 5 4 3 2 1 + 1 0 1 1 0 0000011 011 0 0 001 0 1 1 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 3 3 2 1++ 7 6 5 4 3 2 1 + 1 0 1 1 0000110 110 0 0 100 0 1 1 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 4 3 2 1++ 7 6 5 4 3 2 1 + 1 0 1 0001101 110 0 0 100 0 1 1 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 5 3 2 1++ 7 6 5 4 3 2 1 + 1 0 0011011 110 0 0 100 1 1 1 0x2 x3x1x0 8Hoạt động mạch giải mã Meggitt – xung 6 3 2 1++ 7 6 5 4 3 2 1 + 1 0110110 111 0 0 101 0 0 1 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 7 3 2 1++ 7 6 5 4 3 2 1 + 1101101 100 1 0 110 1 1 0 0x2 x3x1x0 Hoạt động mạch giải mã Meggitt – xung 8 3 2 1++ 7 6 5 4 3 2 1 + 1011010 011 1 0 001 0 1 1 0x2 x3x1x0 1 Hoạt động mạch giải mã Meggitt – xung 9 3 2 1++ 7 6 5 4 3 2 1 + 0110100 110 11 0 100 1 1 1 0x2 x3x1x0 0 9Hoạt động mạch giải mã Meggitt – xung 10 3 2 1++ 7 6 5 4 3 2 1 + 1101000 111 011 0 101 1 0 1 0x2 x3x1x0 1 Hoạt động mạch giải mã Meggitt – xung 11 3 2 1++ 7 6 5 4 3 2 1 + 1010000 101 1011 1 111 0 0 0 0x2 x3x1x0 0 Hoạt động mạch giải mã Meggitt – xung 12 3 2 1++ 7 6 5 4 3 2 1 + 0100000 000 01011 0 010 0 0 0 0x2 x3x1x0 0 Hoạt động mạch giải mã Meggitt – xung 13 3 2 1++ 7 6 5 4 3 2 1 + 1000000 000 001011 0 010 0 0 1 0x2 x3x1x0 1
Tài liệu liên quan