Deep Learning có thể được sử dụng để bẻ khóa mã hóa?


10

Giả sử bạn có bộ dữ liệu với hàng triệu hàng và thuộc tính Văn bản thuần túy, Khóa và Bản mã đầu ra. Về mặt lý thuyết, Deep Learning có thể được sử dụng để tìm các mẫu trong các kết quả đầu ra giúp giải mã bản mã không? Có cách tiếp cận tiềm năng nào khác không?

Câu trả lời:


10

Chắc là không. Các hệ thống mã hóa hiện đại được thiết kế xung quanh các bộ tạo số ngẫu nhiên mật mã, đầu ra của chúng được thiết kế để không thể phân biệt được về mặt thống kê với tính ngẫu nhiên thực sự. Học máy nói chung dựa trên việc khám phá các mẫu thống kê trong dữ liệu và với dữ liệu thực sự ngẫu nhiên thì không có. Ngay cả đối với tiền điện tử không hoàn hảo, nơi có một số mẫu nhỏ được tìm thấy, số lượng lớn ngẫu nhiên trong đầu vào sẽ áp đảo bất kỳ nỗ lực trực tiếp nào để giải mã bản mã.

Ngoài ra, không có heuristic nào bạn có thể sử dụng để biết liệu bạn có đang tiến gần đến một giải mã chính xác hay không - một ví dụ trong một lần đoán tại một khóa chẳng hạn sẽ làm xáo trộn hoàn toàn đầu ra (đổ lỗi cho Hollywood khi nó hiển thị giải mã trên màn hình như một số câu đố ô chữ trong đó các chữ cái chính xác rơi vào vị trí). Rằng tất cả hoặc không có gì loại trừ việc khám phá các thuật toán thông qua quy trình học máy, ngay cả khi bạn có khóa mã hóa. Điều tốt nhất bạn có thể làm là vũ phu tất cả các thuật toán đã biết. Nếu bạn không có chìa khóa, thì bạn cũng phải vũ phu tất cả các phím có thể.

Bạn có thể khám phá mức độ khó của vấn đề bằng cách cố gắng đoán giá trị hạt giống được sử dụng cho trình tạo số ngẫu nhiên. Sử dụng Mersenne Twister RNG (tiêu chuẩn được sử dụng trong ví dụ Python), thì đầu vào có thể là mẫu bit cho 624 số nguyên không dấu 32 bit và đầu ra có thể là 32 bit của hạt giống được sử dụng để tạo chuỗi đó. Lý do tôi đề nghị những con số cụ thể là bởi vì nó trong thực tế có thể để crack Mersenne Twister với nhiều dữ liệu. Tuy nhiên, tôi vẫn nghĩ rằng các phương pháp ML sẽ hoàn toàn là công cụ sai lầm để làm điều đó.

Một biến thể đơn giản khác là để xem liệu bạn có thể dạy một mạng để sản xuất hoặc đảo ngược hàm băm mật mã hay không. Bạn có thể bắt đầu với một cái bị hỏng đã biết, chẳng hạn như MD5. Đầu vào và đầu ra có thể là 80 bit, giúp đơn giản hóa kiến ​​trúc và đường ống đủ để bạn có thể kết hợp thử nghiệm này trong vài giờ. Mặc dù MD5 được biết là bị xâm phạm, tôi nghĩ không có cơ hội nào bạn có thể dạy một mạng lưới thần kinh để tìm bất kỳ mẫu nào.


Một chi tiết quan trọng: Nếu bạn muốn "bẻ khóa" mã hóa, bạn sẽ không thể sử dụng khóa làm giá trị đã biết. Tuy nhiên, rất có thể, ngay cả khi bạn cung cấp chìa khóa cho quy trình ML, nó sẽ không thể học cách giải mã.


2

Như đã đề xuất trong một câu trả lời trước đó , có thể rất khó để các kỹ thuật ML phá vỡ mã hóa trực tiếp.

Nhưng có nhiều cách mà ML và các kỹ thuật mạng thần kinh có thể được sử dụng để phá vỡ mã hóa (đặc biệt là AES vì tôi đã làm việc với nó, nhưng cũng có thể được sử dụng cho những người khác).

Tôi đang tập trung vào mã hóa AES trong các thiết bị nhúng. Khi một thiết bị đang mã hóa (hoặc giải mã), nó thường rò rỉ thông tin dưới dạng bức xạ điện hoặc điện từ. Chúng được gọi là 'rò rỉ kênh bên'. Nghiên cứu đã chỉ ra rằng những rò rỉ này tương quan với khóa bí mật được sử dụng trong quá trình mã hóa (hoặc giải mã). Và nếu có mối tương quan, các kỹ thuật mạng ML / nơ ron có thể được sử dụng để lấy khóa bí mật đang được sử dụng. Kiểm tra các giấy tờ đã sử dụng mạng ML / nơ ron để lấy (một phần) khóa bí mật được sử dụng trong quá trình mã hóa AES: Ref2 Ref3

Nghiên cứu trong lĩnh vực này vẫn đang được thực hiện và vẫn còn rất nhiều việc phải hoàn thành. Nhưng tất cả không bị mất và vẫn còn hy vọng trong việc sử dụng học tập sâu để phá vỡ mật mã hoặc một phần của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.