Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Machine Translated by Google

SƠ LƯỢC VỀ KỸ THUẬT

Cáchmã mã
Cách hóa hóa
số
thẻ tín dụng Một số
Tìm hiểu
Tìm hiểu sâu
sâu về
về công
công nghệ
nghệ khiến
khiến nó
nó xảy
xảy ra
ra

Sự ra đời của Tiêu chuẩn bảo mật dữ liệu PCI đã thúc đẩy nhiều tổ chức xem xét các phương pháp mã hóa CCN và dữ liệu nhạy cảm khác trong cơ sở

dữ liệu nội bộ. Mặc dù điều này có vẻ giống như một ứng dụng đơn giản của các thuật toán mã hóa, nhưng dữ liệu được mã hóa thường có định dạng

khác với văn bản rõ ràng, điều này đòi hỏi các thay đổi đối với lược đồ cơ sở dữ liệu và làm lại các ứng dụng kinh doanh để chúng nhận biết được

định dạng dữ liệu được mã hóa mới.

Có lẽ phản bác bằng trực giác, hóa ra có những kỹ thuật mật mã nổi tiếng giúp mã hóa dữ liệu có cấu trúc như CCN mà không cần thay đổi định dạng

mà vẫn giữ được mức độ bảo mật cao liên quan đến mật mã khối tiêu chuẩn như AES.

Bản tóm tắt kỹ thuật này sẽ mô tả cách thức hoạt động của các kỹ thuật này (được gọi là thuật toán Mã hóa bảo quản định dạng điện áp ™) và cách

chúng có thể duy trì bảo mật mật mã mà không cần mở rộng dữ liệu. Mục tiêu của tài liệu này là trình bày tổng quan về mô hình bảo mật FPE và phác

thảo các kỹ thuật thuật toán được sử dụng để đạt được các mục tiêu bảo mật. Để biết thêm chi tiết kỹ thuật, vui lòng tham khảo đặc tả FFX và Tóm

tắt về Mã hóa Bảo quản Định dạng của Phil Rogaway, Khoa Khoa học Máy tính, Đại học California, Davis, Hoa Kỳ.

Mô hình bảo mật mã hóa


Mục tiêu của việc mã hóa dữ liệu là lấy một số thông tin bản rõ và làm cho nó trở nên vô dụng đối với kẻ tấn công. Có nghĩa là, kẻ tấn công

đánh cắp dữ liệu được mã hóa sẽ không nhận được nhiều giá trị hơn từ dữ liệu bị đánh cắp so với việc chúng chỉ tạo ra một số dữ liệu ngẫu nhiên

của riêng mình. Tất cả các thuật toán mã hóa đều không hoàn hảo, ở chỗ chúng sử dụng các số nhị phân lớn nhưng có độ dài hữu hạn làm khóa mã hóa

và kẻ tấn công có thể đoán bằng cách nào đó các khóa mật mã có thể khôi phục bản rõ. Sức mạnh của thuật toán mã hóa sau đó làm bật lên một yếu tố

chính: kẻ tấn công phải thử bao nhiêu khóa mật mã trước khi truy cập vào bản rõ.

Các thuật toán mã hóa thường được phân loại theo số lượng bit nhị phân được sử dụng để xây dựng khóa mật mã. Thuật toán mã hóa “128 bit” sẽ sử

dụng các số nhị phân dài 128 bit làm khóa và kẻ tấn công (trừ khi thuật toán có một số điểm yếu) sẽ cần phải kiểm tra tất cả hoặc gần như tất cả

các khóa này để tìm ra bản rõ. Tầm quan trọng của nhiệm vụ này là rõ ràng khi bạn nhận ra rằng việc này đòi hỏi phải nhìn lên đến 34

0,282.366.920.938.463.463.374.607.431.768.211.456 phím. Nếu kẻ tấn công có thể xem một tỷ phím mỗi giây, kẻ tấn công đang xem xét tới

10,790,283,070,806,014,188,970 NĂM nỗ lực; Các thuật toán 256-bit làm cho vấn đề này trở nên nan giải hơn theo cấp số nhân. Trên thực tế, không

ai mong đợi khóa 128 bit sẽ bị phá vỡ với các máy tính thông thường, và động lực chính để chuyển sang khóa 256 bit là những lo ngại về máy tính

lượng tử có thể được phát minh trong tương lai.

Một cách khác để xem xét mã hóa và khóa là mô hình hóa mã hóa như một quá trình xáo trộn. Một hàm mã hóa nhận vào một tập hợp các giá trị

bản rõ và xáo trộn mỗi giá trị bản rõ thành một giá trị bản mã riêng biệt, với khóa chỉ định chính xác cách thực hiện xáo trộn. Ví dụ: thuật toán

AES với khóa “0000000000000000” tạo ra “bảng xáo trộn” sau đây cho biết giá trị văn bản rõ nhất định được ánh xạ tới: (Lưu ý rằng chúng tôi đang

sử dụng ký hiệu thập lục phân ở đây, ngắn hơn so với việc viết mọi thứ ở dạng nhị phân.)

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact
Machine Translated by Google

Đầu vào Đầu ra


0000 0000 0000 0000 0000 0000 0000 0000 0000 66e9 4bd4 ef8a 2c3b 884c fa59 ca34 2b2e
0000 0000 0000 0000 0000 0000 0000 0000 0001 0143 db63 ee66 b0cd ff9f 6991 7680 151e
0000 0000 0000 0000 0000 0000 0000 0000 0002 f6b7 bdd1 caee bab5 7468 3893 c447 5487
.... ....

Nếu chúng tôi thay đổi khóa thành “00000000000000001”, chúng tôi sẽ nhận được một bảng hoàn toàn khác biệt:

Đầu vào Đầu ra


0000 0000 0000 0000 0000 0000 0000 0000 0000 5c76 002b c720 6560 efe5 50c8 0b8f 12cc
0000 0000 0000 0000 0000 0000 0000 0000 0001 72b4 c1a4 5b14 ec39 a893 456f 2ed1 75a3
0000 0000 0000 0000 0000 0000 0000 0000 0002 ec33 1f5d d1c5 f40e 28ea 541c aec9 13f6
.... ....

Viết hoàn toàn các bảng này về cơ bản là không thể, nhưng ý tưởng quan trọng ở đây là tất cả các thuật toán mã hóa đều tạo ra các bảng như thế này. Bây giờ chúng ta có thể

sử dụng ý tưởng bảng này để xem cách các nhà mật mã học xem xét các thuật toán mã hóa. Các nhà mật mã học sẽ xem xét một thuật toán mã hóa mạnh nếu các điều kiện sau áp dụng:

• Mỗi khóa phải tạo ra một bảng riêng biệt. Nếu điều này không đúng, thì có nhiều khóa tương đương và kích thước khóa của thuật toán nhỏ hơn

đã nêu.

• Ngay cả khi có khả năng xem xét một số lượng lớn các mục trong bảng mà chúng lựa chọn, kẻ tấn công không thể biết khóa nào đã được sử dụng để

tạo ra bảng đó mà về cơ bản không thử tất cả các khóa. Điều này có nghĩa là, cho dù kẻ tấn công có bao nhiêu dữ liệu, chúng cũng không thể sử

dụng bất kỳ phím tắt nào để tìm ra chìa khóa. (Trong tài liệu kỹ thuật, chúng được gọi là bản rõ đã biết, bản mã đã biết, bản rõ được chọn hoặc
các cuộc tấn công bản mã được chọn.)

• Ngay cả khi có khả năng xem xét một số lượng lớn các mục nhập trong bảng, kẻ tấn công không thể dự đoán bất cứ điều gì về mối quan hệ giữa
đầu vào và đầu ra không xác định. Điều này có nghĩa là kẻ tấn công phải thực sự sở hữu chìa khóa để mã hóa hoặc giải mã bất kỳ dữ liệu nào,

thậm chí một phần.

Thuật toán mã hóa thẻ tín dụng hoàn hảo


Với những quy tắc này, giờ đây chúng tôi có thể đề xuất một cách mã hóa số thẻ tín dụng hoàn hảo nhưng không thực tế. Thuật toán “hoàn hảo” của chúng tôi sẽ mã hóa số thẻ

tín dụng, giữ nó ở định dạng số thẻ tín dụng và khó bị phá hơn nhiều so với việc sử dụng mã hóa AES-256. Thuật toán "hoàn hảo" của chúng tôi sẽ lưu trữ mọi số thẻ tín dụng trong

bộ nhớ, sau đó trộn chúng một cách ngẫu nhiên cho đến khi chúng tôi tạo ra một bảng trông giống như sau:

Nhập số thẻ tín dụng Đầu ra số thẻ tín dụng


0000 0000 0000 0001 9456 1238 7623 9012
0000 0000 0000 0002 7123 8829 3128 0023
0000 0000 0000 0003 4128 4328 2811 8239
.... ....

Đối với thuật toán Hoàn hảo của chúng tôi, chúng tôi sẽ coi chính bảng đó là chìa khóa. Bảng này cực kỳ lớn (thực tế là 60.000 GB), nhưng nó đáp ứng tất cả các tiêu chí đặt ra

cho một thuật toán mã hóa ở trên:

• Mỗi khóa phải tạo ra một bảng riêng biệt. Mỗi lần xáo trộn, theo định nghĩa, là một bảng riêng biệt. Lưu ý rằng thuật toán Perfect mạnh hơn

nhiều so với mã hóa AES. Trong khi có 2 ^ 128 khóa AES khả thi, thì có 10 ^ 16! bảng hoàn hảo có thể. (Ký hiệu! Ở đây đề cập đến hàm giai
thừa. Để tính giai thừa của n, hãy nhân 1 x 2 x 3 x .... lên đến n. Giai thừa của 10 ^ 16 không chỉ là một con số khổng lồ, nó gần như không thể

tưởng tượng được rất lớn. Con số này sẽ có hơn 80.000.000.000.000.000.000 chữ số nếu viết ra.)

• Ngay cả khi có khả năng xem xét một số lượng lớn các mục trong bảng mà chúng lựa chọn, kẻ tấn công không thể biết khóa nào đã được sử dụng để

tạo ra bảng đó mà về cơ bản không thử tất cả các khóa. Vì chúng tôi xáo trộn bảng hoàn toàn ngẫu nhiên, kẻ tấn công không thể dự đoán phần còn
lại của bảng (chính là chìa khóa) từ những gì họ đã thấy trước đó.

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact
Machine Translated by Google

• Ngay cả khi có khả năng xem xét một số lượng lớn các mục nhập trong bảng, kẻ tấn công không thể dự đoán bất kỳ điều gì về mối quan hệ
giữa một đầu vào và đầu ra không xác định. Một lần nữa, bởi vì xáo trộn là ngẫu nhiên, thuật toán Perfect đã phá hủy bất kỳ mối quan hệ nào giữa

đầu vào và đầu ra.

Kẻ tấn công có quyền truy cập vào cơ sở dữ liệu được mã hóa bằng thuật toán Perfect sẽ phải đối mặt với dữ liệu có giá trị như dữ liệu mà chúng có

thể tự tạo ra bằng cách tạo ngẫu nhiên số thẻ tín dụng. Bây giờ câu hỏi đặt ra là làm thế nào chúng ta có thể tính gần đúng hàm Per fect này. Những gì

chúng tôi muốn là một thuật toán hoạt động giống như thuật toán Hoàn hảo, nhưng thực tế để triển khai và ít nhất là khó bị phá vỡ như một số mật mã

hiện có như AES-128. Câu hỏi này chính là động lực thúc đẩy bài báo nghiên cứu của Black và Rogaway “Mã hóa trong các miền hữu hạn tùy ý” , đây là

nơi chúng ta sẽ tìm thấy các kỹ thuật mà chúng ta sẽ sử dụng.

Phương pháp gần đúng hoàn hảo một: Phương pháp tiền tố

Để tìm một giá trị gần đúng tốt cho phương pháp Perfect, chúng ta sẽ bắt đầu với một bài toán nhỏ hơn, đơn giản hơn, sau đó xem xét các kỹ thuật sẽ hoạt

động cho các trường hợp lớn hơn. Trường hợp mà chúng ta sẽ bắt đầu (và so sánh với AES để có biện pháp tốt) là mã hóa một trường có chứa hai chữ số thập phân.

Phương pháp Perfect tốt như thế nào trong trường hợp này? Có vẻ như xáo trộn một bảng có 100 phần tử sẽ yếu hơn AES, vì nó tạo ra kết quả đầu ra

rất lớn so với khi so sánh. Nó chỉ ra rằng, thậm chí chỉ với hai chữ số, phương pháp Hoàn hảo có thể tạo ra 9 x 10 ^ 157 bảng. Điều này tương đương

với 364 bit nhị phân của khóa, mạnh hơn cả AES-256, do đó, chiến lược xấp xỉ phương pháp Perfect vẫn là một kỹ thuật an toàn tiềm năng.

Hóa ra là đối với những trường hợp nhỏ như thế này, về cơ bản chúng ta có thể sử dụng AES trực tiếp để xáo trộn một bảng, sau đó sử dụng bảng để mã hóa và giải

mã. Thay vì lưu trữ bảng, bây giờ chúng ta có thể chỉ cần lưu trữ khóa AES được sử dụng để tạo bảng.

Phương thức tiền tố tạo bảng bằng thuật toán sau:

1. Ghi lại từng giá trị đầu vào có thể và mã hóa nó bằng AES.

2. Sắp xếp bảng bằng cách sử dụng đầu ra AES làm phím sắp xếp.

3. Thứ tự của các giá trị đầu vào hiện là cột đầu ra của bảng.

Chúng tôi tạo một bảng ví dụ cho 10 mục bằng cách sử dụng khóa AES ngẫu nhiên để minh họa cách hoạt động của thuật toán. Điều này mã hóa một chữ số duy

nhất, nhưng trường hợp chữ số kép hoạt động theo cùng một cách, với một bảng lớn hơn. Đây là bước đầu tiên, đó là một bảng bao gồm các đầu vào có

thể có và kết quả đầu ra mã hóa AES:

Đầu vào Đầu ra AES


0 ec331f5dd1c5f40e28ea541caec913f6
1 932c6dbf69255cf13edcdb72233acea3
2 6d5c3e022e5a6f7be663b9e69bcea443
3 e013d7f4fa7abd93a7b85db9cfff9b14
4 f0a2a65d245dd6199dc70951c2478b65
5 e7f1b82cadc53a648798945b34efeff2
6 fb759742d93ac3c0ca761d98de09a833
7 df9c0130ac77e7c72c997f587b46dbe0
số 8 a59981cf84c750e4e82b5b8ebfaf75c6
9 a7bd772fabd574bac462273afb906e9a

(Lưu ý rằng chúng tôi có thể sử dụng bảng này để mã hóa các giá trị của chúng tôi với AES, nhưng hiện tại các bản mã của chúng tôi lớn hơn nhiều so với

đầu vào của chúng tôi. Cũng lưu ý rằng các bit bổ sung mà AES đã tạo ra không thực sự mua cho chúng tôi bất kỳ bảo mật nào ở đây. Nếu kẻ tấn công biết

điều đó giá trị từ 0-9 đang được mã hóa, thực tế là đầu ra từ một phạm vi lớn không làm cho vấn đề phá vỡ mật mã khó khăn hơn. Trên thực tế, trong một số

trường hợp, nó có thể làm cho tình hình tồi tệ hơn. Nếu chúng ta mã hóa các giá trị từ 0-9 bằng cách đệm chúng bằng các số không để lấp đầy đầu vào 128 bit

AES, sau đó kẻ tấn công có thể lấy một cặp giá trị duy nhất từ bảng và thử các khóa AES. Nếu kẻ tấn công tìm thấy khóa mà giá trị đầu ra sẽ giải mã với tất

cả các số không cùng với giá trị đầu vào, với xác suất cực cao, anh ta đã tìm thấy khóa được sử dụng để tạo ra toàn bộ bảng.)

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact
Machine Translated by Google

Để tiếp tục, bây giờ chúng ta sắp xếp bảng theo các giá trị đầu ra AES, tạo ra một thứ tự mới của các giá trị đầu vào:

Đầu vào Đầu ra AES


2 6d5c3e022e5a6f7be663b9e69bcea443
1 932c6dbf69255cf13edcdb72233acea3
số 8 a59981cf84c750e4e82b5b8ebfaf75c6
9 a7bd772fabd574bac462273afb906e9a
7 df9c0130ac77e7c72c997f587b46dbe0
3 e013d7f4fa7abd93a7b85db9cfff9b14
5 e7f1b82cadc53a648798945b34efeff2
0 ec331f5dd1c5f40e28ea541caec913f6
4 f0a2a65d245dd6199dc70951c2478b65
6 fb759742d93ac3c0ca761d98de09a833

Bây giờ chúng ta chỉ có thể loại bỏ các giá trị AES và sử dụng thứ tự mới của các giá trị đầu vào làm giá trị đầu ra của bảng mã hóa:

Đầu vào Đầu ra


0 2

1 1

2 số 8

3 9

4 7

5 3

6 5

7 0

số 8 4

9 6

Bây giờ chúng ta có một chức năng mã hóa nhỏ với một số thuộc tính thú vị. Giả sử rằng chúng tôi cung cấp cho kẻ tấn công toàn bộ bảng ngoại trừ hai mục

nhập cuối cùng. Bây giờ chúng tôi hỏi kẻ tấn công giá trị của 8 bản đồ đầu vào. Kẻ tấn công phải chọn giữa các số còn lại, 4 và 6. Hóa ra là chúng ta có

thể chứng minh rằng trừ khi chúng có thể phá vỡ AES hoặc có chìa khóa được sử dụng để tạo bảng, chúng không có lợi thế hơn so với việc lật đồng xu hoàn

toàn ngẫu nhiên để có được điều này. bên phải. Chúng ta cũng có thể chỉ ra rằng kẻ tấn công không có quyền truy cập vào bảng không thể lấy được bất kỳ

thông tin nào từ bản mã thuần túy về khóa hoặc các giá trị bản rõ, ngoại trừ hai bản mã giống hệt nhau tương ứng với các bản rõ giống hệt nhau. Tập hợp

các thuộc tính tương tự này sẽ là trường hợp của AES.

Thông qua bằng chứng này (trên tờ Black and Rogaway), chúng tôi có thể chứng minh rằng chúng tôi hiện có một phương pháp cho phép chúng tôi

tạo ra các hàm mã hóa nhỏ bằng cách sử dụng một mật mã hiện có cho phép chúng tôi giảm vấn đề phá vỡ hàm đó thành phá vỡ mã hóa hiện có chức năng.

Vấn đề là, nó vẫn không thực tế đối với các bảng quá lớn để chứa trong bộ nhớ, vì vậy chúng tôi vẫn không thể mã hóa số thẻ tín dụng. Chúng ta cần

một phương pháp phức tạp hơn.

Phương pháp gần đúng hoàn hảo Hai: Mạng Feistel


Vào đầu những năm 1970, Horst Feistel đã phát minh ra một cấu trúc chung để xây dựng mật mã được gọi là “Mạng Feistel”. Cấu trúc này được sử

dụng làm cơ sở cho một số mật mã, bao gồm DES và Triple-DES. Nó đã được nghiên cứu rộng rãi, và hai nhà nghiên cứu, Michael Luby và Charlie

Rackoff, đã công bố một kết quả quan trọng vào năm 1988. Họ đã chỉ ra rằng kỹ thuật này có thể được sử dụng để xây dựng mật mã từ một hàm một

chiều, nơi phá vỡ mật mã dẫn xuất (trong một số ràng buộc) cũng khó như phá vỡ chức năng mà nó dựa trên. Cụ thể, nó có thể được sử dụng để xây

dựng một mật mã có kích thước tùy ý từ một mật mã có kích thước cố định khác, đó chính là những gì chúng ta đang tìm kiếm.

Mạng Feistel là một cấu trúc đơn giản và trang nhã. Nó dựa trên thuật toán đơn giản sau:

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact
Machine Translated by Google

1. Tách đầu vào thành nửa bên phải và nửa bên trái. (Nếu chúng tôi đang mã hóa số thẻ tín dụng, điều này có thể đơn giản như lấy

tám chữ số đầu tiên ở nửa bên trái và tám chữ số cuối cùng ở nửa bên phải.)

2. Nửa bên trái của đầu ra chỉ là nửa bên phải của đầu vào.

3. Thêm đầu ra của hàm một chiều chạy ở nửa bên phải của đầu ra vào nửa bên trái của đầu vào. Đây là một nửa bên phải của

đầu ra.

Chúng ta có thể diễn đạt điều này một cách ngắn gọn hơn trong ký hiệu toán học. Nếu R và L là đầu vào của chúng ta, R 'và L' là đầu ra và F (x, key) là hàm một

chiều của chúng ta, thì vòng Feistel được tính là:

L '= R

R '= L + F (R, phím)

Hàm vòng này, trong khi rất đơn giản, có một số đặc tính thú vị. Nó chỉ mã hóa một nửa đầu vào, nhưng hãy quan sát rằng chúng ta có thể giải mã rất đơn giản

bằng cách thực hiện như sau:

R = L '

L = R '- F (L', phím)

Bây giờ, nếu chúng ta chạy hàm vòng này nhiều lần, nó sẽ mã hóa toàn bộ đầu vào. Vòng đầu tiên sẽ mã hóa nửa bên phải và vòng thứ hai sẽ mã hóa nửa bên trái, vì nó

đã được hoán đổi trong chức năng của vòng đầu tiên. Chúng ta có thể chạy các vòng này bao nhiêu lần tùy thích mà vẫn giải mã bằng cách đảo ngược các bước. Tuy

nhiên, hãy quan sát rằng chúng ta chỉ cần cùng một hàm một chiều để mã hóa và giải mã. Điều này có nghĩa là chúng ta cần một hàm một chiều mạnh, nhưng không cần phải

có khả năng đảo ngược hàm đó. Đây là thuộc tính quan trọng sẽ cho phép chúng tôi sử dụng AES để thực hiện mã hóa này.

Lý do mà chúng ta không thể đơn giản sử dụng AES để mã hóa, và sau đó rút ngắn đầu ra AES là AES là một hàm khối. Nó yêu cầu 128 bit đầu vào và tạo ra 128 bit đầu ra.

Để giải mã, tất cả 128 bit của bản mã phải được cung cấp:

Mặt khác, nếu chúng ta không cần giải mã, AES hoạt động khá tốt như một chức năng một chiều. (Có một số giấy tờ mật mã

điều đó chứng minh rằng việc lấy một tập hợp con của đầu ra của mật mã khối mạnh sẽ tạo ra một hàm một chiều mạnh.) Chúng ta có thể xây dựng hàm một chiều của mình bằng

cách sử dụng dữ liệu bên phải của chúng tôi như trong đầu vào cho AES và cắt bớt đầu ra để có được nhiều dữ liệu như chúng ta cần thực hiện thêm vào

phía tay trái.

Hàm tròn của chúng ta bây giờ trông như thế này:

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact
Machine Translated by Google

L '= R

R '= L + AES-mã hóa (R, khóa)

Để thực sự mã hóa, chúng tôi sẽ chạy hàm vòng đó một số lần. Chúng tôi vẫn có thể giải mã bằng cách:

R = L '

L = R '- mã hóa AES (L', khóa)

nhiều lần khi chúng tôi chạy chức năng vòng mã hóa. Mật mã kết quả, nếu chạy trong ba vòng sẽ trông giống như sau:

Nhược điểm duy nhất ở đây từ quan điểm hiệu suất là chúng ta cần chạy AES một lần cho mỗi vòng. Chạy tám vòng sẽ

chẳng hạn như yêu cầu tám lệnh gọi AES. AES trên hầu hết các bộ vi xử lý hiện đại chạy với tốc độ khoảng 200 triệu lệnh gọi mỗi giây, vì vậy đối với hầu hết các

ứng dụng, điều này sẽ không phải là vấn đề đáng lo ngại. Câu hỏi còn lại duy nhất của chúng ta là, liệu chúng ta có thể tranh luận rằng hàm này là một xấp xỉ tốt

của Perfect hay ít nhất là một xấp xỉ tốt như AES không?

Các bằng chứng trong bài báo Luby-Rackoff và bài báo Black-Rogaway xác định mức độ mạnh mẽ của cấu trúc này trong trường hợp sử dụng ba hoặc bốn vòng. Những

gì họ cho thấy là nếu bạn cung cấp cho kẻ tấn công một phần của bảng xáo trộn từ mạng Feistel và một phần của bảng từ thuật toán Hoàn hảo, ngay cả với tài nguyên

tính toán vô hạn, họ không thể biết bảng nào là bảng Hoàn hảo và bảng nào là Bàn Feistel. (Tất nhiên, với điều kiện mà kẻ tấn công phá vỡ chức năng một chiều có

thể biết.) Nếu bạn không thể cho một bảng Hoàn hảo từ một bảng Feis tel, bạn cũng không thể lấy bất kỳ thông tin nào khác về bảng Feistel. Nếu có thể, bạn có thể

sử dụng thông tin đó để phân biệt bảng Feistel với bảng Perfect.

Jacques Patarin đã cải thiện kết quả này trong một loạt bài báo được xuất bản vào khoảng năm 2004. Những gì ông ấy cho thấy là nếu bạn chạy một mạng Feistel

ở sáu vòng trở lên, về cơ bản bạn mạnh mẽ chống lại cả tưởng tượng (sức mạnh vô hạn) và thực tế (sức mạnh tính toán có giới hạn) đối thủ. Đặc tính đáng yên

tâm khác của mạng Feistel là chúng là một cấu trúc mật mã rất lâu đời và được nghiên cứu rất kỹ lưỡng. Những bài báo này chỉ là một phần nhỏ của các bài báo

học thuật được xuất bản về chủ đề này. Thực tế là DES dựa trên Feistel

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact
Machine Translated by Google

mạng đã phơi bày cấu trúc đó trong nhiều thập kỷ kiểm tra kỹ lưỡng về mật mã.

Kết quả cuối cùng là chúng ta có thể sử dụng cấu trúc này làm cơ sở của thuật toán Mã hóa Bảo tồn Định dạng cho phép chúng tôi chỉ ra rằng con đường

dễ dàng nhất mà kẻ tấn công có để phá vỡ mã hóa kết quả là phá vỡ mật mã cơ bản, đó là AES. Kỹ thuật Feistel được nêu ở đây là cơ sở cho thuật toán FPE

FFX hiện đang được NIST xem xét.

Phần kết luận

Mặc dù có vẻ phản trực giác khi nghĩ rằng một mật mã có đầu ra nhỏ có thể an toàn như mật mã có đầu ra lớn, nhưng trong một số trường hợp nhất định, điều

này có thể đúng. Mật mã như AES được thiết kế để mã hóa một lượng lớn dữ liệu rất hiệu quả. Khi mã hóa các tệp lớn hoặc các lĩnh vực đĩa, kích thước khối

lớn của AES là một tài sản quan trọng. Mặt khác, nó cản trở việc sử dụng mã hóa cho các mục dữ liệu nhỏ. Nếu chúng ta có mục đích xây dựng mật mã cho các

loại dữ liệu cụ thể, chúng ta có thể nhận được kết quả bảo mật cực kỳ tốt cho các mật mã không yêu cầu mở rộng dữ liệu do mã hóa AES “vani” áp đặt.

Thông tin về các Tác giả

TERENCE SPIES, TRƯỞNG PHÒNG CÔNG NGHỆ, AN NINH ĐIỆN ÁP

Terence Spies có hơn 19 năm kinh nghiệm phát triển phần mềm hệ thống và bảo mật, làm việc với các công ty hàng đầu như Microsoft, Asta Networks và

những công ty khác. Terence hiện là Giám đốc Công nghệ, giám sát việc mở rộng công nghệ Voltage sang các lĩnh vực ứng dụng mới như di động, thanh toán và

các lĩnh vực khác cần bảo mật dữ liệu ứng dụng.

Trước khi gia nhập Voltage, Terence đã làm việc tại Asta Networks với vị trí Giám đốc Phát triển và Phó Giám đốc Kỹ thuật. Trước Asta, Terence đã làm

việc với Microsoft trong gần 9 năm, nơi anh bắt đầu nhóm mật mã khóa công khai và dẫn dắt sự phát triển của Microsoft Crypto API.

Trong thời gian làm việc tại Microsoft, Terence cũng đã thiết kế máy chủ SSL và triển khai phía máy khách cho Microsoft Internet Explorer, tham gia thiết kế

giao thức PCT / TLS, lãnh đạo nhóm phát triển cho Máy chủ chứng chỉ của Microsoft và dẫn đầu việc tích hợp máy chủ chứng chỉ và thư mục hoạt động. Terence

hoạt động tích cực trong cộng đồng tiêu chuẩn và hiện là chủ tịch của X9F1, nhóm Công cụ mật mã của X9 có điều lệ là soạn thảo các tiêu chuẩn thuật toán mật

mã để sử dụng trong ngành tài chính.

Terence tốt nghiệp Cử nhân Khoa học về Logic và Tính toán tại Đại học Carnegie Mellon.

BÀI ĐỌC BỔ SUNG:

Đánh giá kỹ thuật độc lập về mã hóa định dạng điện áp-bảo quản ™ bởi Phil Rogaway, Khoa Khoa học Máy tính,

Đại học California, Davis

GIỚI THIỆU VỀ BẢO MẬT ĐIỆN ÁP

Voltage Security®, Inc. là nhà cung cấp bảo vệ dữ liệu hàng đầu, cung cấp các giải pháp mã hóa và quản lý dữ liệu tập trung vào dữ liệu an toàn, có thể mở

rộng và đã được chứng minh, cho phép khách hàng của chúng tôi chống lại các mối đe dọa bảo mật mới và đang nổi lên một cách hiệu quả. Tận dụng các công

nghệ mã hóa đột phá, các giải pháp bảo vệ dữ liệu mạnh mẽ của chúng tôi cho phép bất kỳ công ty nào bảo mật liền mạch tất cả các loại thông tin nhạy cảm của

công ty và khách hàng, dù họ cư trú ở đâu, đồng thời đáp ứng hiệu quả các yêu cầu về quyền riêng tư và tuân thủ quy định.

Để biết thêm thông tin, vui lòng truy cập www.voltage.com.

Voltage Security, Inc., Mã hóa dựa trên nhận dạng điện áp (IBE), Mã hóa bảo quản định dạng điện áp (FPE), Mã hóa tích hợp trang điện áp (PIE), Mã hóa đối xứng dựa trên nhận
dạng điện áp, Voltage SecureMail, Voltage SecureMail Mobile Edition, Voltage SecureMail Phiên bản ứng dụng, Công cụ tuân thủ điện áp an toàn và Dịch vụ đám mây điện áp là các
nhãn hiệu đã đăng ký của Voltage Security hoặc là nhãn hiệu và nhãn hiệu dịch vụ của Voltage Security, Inc.

Tất cả các nhãn hiệu khác là tài sản của chủ sở hữu tương ứng của họ. v03262013

Voltage Security, Inc. US Tel: +1 (408) 886-3200 EUR Tel: +44 (0) 203 468 0559 www.voltage.com/contact

You might also like