Khái niệm số nguyên tố cùng nhau

Phân phối khóa mật: Nghiên cứu & ứng dụng

Thông tin tài liệu

instructor Thầy Trịnh Nhật Tiến - Giáo viên hướng dẫn
Trường học

Đại học Dân lập Hải Phòng

Chuyên ngành Tin học
Loại tài liệu Đồ án tốt nghiệp
Địa điểm Hải Phòng
Ngôn ngữ Vietnamese
Định dạng | PDF
Dung lượng 738.12 KB

Tóm tắt

I.Số nguyên tố và vai trò trong mật mã

Phần này giới thiệu khái niệm số nguyên tố, nhấn mạnh tầm quan trọng của chúng trong thuật toánlý thuyết mật mã. Việc kiểm tra tính nguyên tố và phân tích ra thừa số nguyên tố là những bài toán then chốt trong lĩnh vực này.

1. Định nghĩa số nguyên tố

Đoạn văn bản định nghĩa số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có hai ước số là 1 và chính nó. Một số ví dụ về số nguyên tố được đưa ra: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 43… Đặc biệt, số 2 được nhấn mạnh là số nguyên tố chẵn duy nhất. Phần này đặt nền tảng cho việc hiểu về tầm quan trọng của số nguyên tố trong các ứng dụng toán học và mật mã học, làm tiền đề cho các phần tiếp theo.

2. Vai trò của số nguyên tố trong mật mã

Tầm quan trọng của số nguyên tố trong số học và lý thuyết mật mã được khẳng định. Văn bản chỉ rõ hai bài toán liên quan đến số nguyên tố rất được quan tâm: bài toán kiểm tra tính nguyên tố của một số nguyên dương n và bài toán phân tích một số n ra thừa số nguyên tố. Điều này cho thấy việc hiểu và giải quyết các bài toán liên quan đến số nguyên tố là cốt lõi trong việc thiết kế và phân tích các hệ thống mật mã. Khả năng phân tích một số lớn thành thừa số nguyên tố, độ khó của việc tìm ra các thừa số đó, chính là nền tảng đảm bảo tính an toàn của nhiều hệ thống mã hóa hiện đại. Vì vậy, sự hiểu biết sâu sắc về số nguyên tố là điều kiện tiên quyết cho việc nghiên cứu và phát triển các thuật toán mật mã hiện đại.

II.Khái niệm và độ phức tạp của thuật toán

Tài liệu định nghĩa thuật toán một cách trực giác và hình thức, phân loại thành thuật toán đơn định và không đơn định. Một phần quan trọng tập trung vào độ phức tạp của thuật toán, bao gồm chi phí thời gianchi phí bộ nhớ, được đo lường dựa trên các phép tính cơ bản và số ô nhớ cần thiết. Các mô hình ứng dụng được trình bày, bao gồm sử dụng ngôn ngữ tựa Algol và máy Turing.

1. Khái niệm thuật toán

Văn bản cung cấp hai cách hiểu về thuật toán: trực giác và hình thức. Theo cách hiểu trực giác, thuật toán được mô tả là một dãy hữu hạn các qui tắc, chỉ thị hay mệnh lệnh, mô tả một quá trình tính toán chuyển đổi dữ liệu đầu vào (Input) thành dữ liệu đầu ra (Output). Quan niệm hình thức hơn thì định nghĩa thuật toán là một máy tính Turing. Đây là một khái niệm quan trọng trong khoa học máy tính và mật mã học, tạo nền tảng cho việc phân tích độ phức tạp và hiệu quả của các thuật toán.

2. Phân loại thuật toán

Thuật toán được phân loại thành hai loại chính: đơn định và không đơn định. Thuật toán đơn định (Deterministic) là thuật toán mà kết quả của mọi phép toán đều được xác định duy nhất, tức là cho cùng một dữ liệu đầu vào, thuật toán luôn cho ra cùng một kết quả đầu ra. Sự phân loại này giúp hiểu rõ hơn về tính chất và khả năng ứng dụng của các thuật toán trong các bài toán khác nhau. Việc hiểu rõ loại thuật toán sẽ giúp ta chọn lựa thuật toán phù hợp cho từng bài toán cụ thể, và từ đó đánh giá hiệu quả của thuật toán đó.

3. Độ phức tạp của thuật toán

Phần này tập trung vào khái niệm độ phức tạp của thuật toán, được đánh giá thông qua chi phí thời gian và chi phí bộ nhớ. Chi phí thời gian là thời gian cần thiết để thực hiện quá trình tính toán, đối với thuật toán tựa Algol, nó được tính bằng số phép tính cơ bản. Chi phí bộ nhớ là số ô nhớ cần thiết cho quá trình tính toán. Văn bản sử dụng ký hiệu tA(e) cho giá trị thời gian và IA(e) cho giá trị bộ nhớ của thuật toán A với dữ liệu đầu vào e. Hai mô hình được đề cập: mô hình ứng dụng (ngôn ngữ tựa Algol) và mô hình lý thuyết (ngôn ngữ máy Turing), mỗi mô hình có đơn vị nhớ và đơn vị thời gian khác nhau. Việc phân tích độ phức tạp giúp so sánh hiệu quả của các thuật toán khác nhau và chọn lựa thuật toán tối ưu cho một bài toán cụ thể.

III.Hệ mã hóa Mã hóa đối xứng và mã hóa công khai

Phần này thảo luận về hệ mã hóa, tập trung vào hai loại chính: mã hóa khoá đối xứng (hay mã hóa khoá bí mật) và mã hóa khoá công khai. Mã hóa đối xứng đơn giản nhưng độ an toàn thấp, trong khi mã hóa khoá công khai sử dụng cặp khoá (khoá công khaikhoá riêng) để tăng cường bảo mật. Các ví dụ cụ thể về thuật toán mã hóa và hạn chế của chúng được phân tích. Độ an toàn của mỗi hệ thống được đánh giá dựa trên độ khó của việc phá vỡ mã.

1. Mã hóa khóa đối xứng

Văn bản mô tả mã hóa khóa đối xứng (hay mã hóa khóa bí mật) là một hệ mã hóa cổ điển, dễ hiểu và thực hiện. Tuy nhiên, điểm yếu chí mạng là độ an toàn không cao do giới hạn tính toán chỉ trong phạm vi bảng chữ cái (ví dụ Z26). Cả người gửi và người nhận cần thỏa thuận trước về thuật toán mã hóa và khóa chung, khóa này phải được giữ bí mật tuyệt đối. Quản lý khóa chung gặp nhiều khó khăn, việc thay đổi khóa rất phức tạp và dễ bị lộ. Hạn chế lớn nhất là cả người mã hóa và người giải mã cùng biết một khóa bí mật, làm tăng nguy cơ bị phá vỡ. Do đó, hệ thống này không được xem là an toàn trong các ứng dụng đòi hỏi độ bảo mật cao.

2. Mã hóa khóa công khai

Ngược lại với mã hóa khóa đối xứng, mã hóa khóa công khai sử dụng hai khóa: khóa công khai (public key) và khóa riêng (private key). Khóa công khai được công bố rộng rãi, dùng để mã hóa thông tin, trong khi khóa riêng được giữ bí mật, dùng để giải mã. Ai cũng có thể mã hóa thông tin bằng khóa công khai, nhưng chỉ người sở hữu khóa riêng mới giải mã được. Độ an toàn của hệ thống này dựa trên độ khó của việc tìm ra khóa riêng từ khóa công khai. Tuy nhiên, tốc độ mã hóa và giải mã thường chậm hơn so với mã hóa khóa đối xứng, nên thường chỉ được dùng cho việc mã hóa các bản tin ngắn, ví dụ như mã hóa khóa bí mật gửi đi. Khả năng lộ khóa riêng thấp hơn vì chỉ một người nắm giữ.

3. So sánh và ví dụ

Văn bản đưa ra ví dụ về mã dịch chuyển (Caesar cipher) và hệ mã hóa Affine như minh họa cho mã hóa khóa đối xứng, chỉ ra độ an toàn rất thấp của chúng do không gian khóa nhỏ. Mã Vigenère được đề cập đến với độ an toàn cao hơn. Hệ mã hóa Elgamal được nhắc đến như một ví dụ của hệ mã hóa không tất định, có nghĩa là một bản rõ và một khóa bí mật có thể tạo ra nhiều bản mã khác nhau. Sự so sánh này nhấn mạnh sự khác biệt về cơ chế, độ phức tạp và độ an toàn giữa hai loại hệ mã hóa, giúp người đọc hiểu rõ hơn về lựa chọn hệ thống mã hóa phù hợp cho từng ứng dụng cụ thể.

IV.Chữ ký số và ứng dụng

Phần này giới thiệu về chữ ký số (hay chữ ký điện tử), một công cụ quan trọng để xác thực nguồn gốc và hiệu lực của các tài liệu số. Chữ ký số khắc phục nhược điểm của chữ ký truyền thống trong môi trường số hoá. Các loại chữ ký số, ví dụ như chữ ký Elgamalchữ ký RSA, được đề cập, cùng với các khía cạnh về mức độ an toàn và khả năng phục hồi thông điệp.

1. Giới thiệu về chữ ký số

Phần này so sánh chữ ký số với chữ ký tay truyền thống. Chữ ký tay được sử dụng lâu nay để chứng thực nguồn gốc và hiệu lực của tài liệu, đòi hỏi người ký phải trực tiếp ký vào tài liệu. Chữ ký số ra đời nhằm giải quyết vấn đề chứng thực nguồn gốc và hiệu lực của các tài liệu số hóa. Chữ ký số có ưu điểm vượt trội so với chữ ký tay ở chỗ có thể ký vào tài liệu từ xa trên mạng công khai, sử dụng các thiết bị cầm tay như điện thoại di động, tiết kiệm thời gian, công sức và chi phí. Chữ ký số là một giải pháp tối ưu trong thời đại số hóa, đáp ứng nhu cầu xác thực nguồn gốc tài liệu trong môi trường kỹ thuật số.

2. Phân loại chữ ký số

Văn bản đề cập đến hai cách phân loại chữ ký số: theo mức độ an toàn và theo khả năng khôi phục thông điệp. Về mức độ an toàn, chữ ký “không thể phủ nhận” được nhấn mạnh nhằm tránh việc sao chép và sử dụng nhiều lần, đòi hỏi người gửi phải tham gia trực tiếp vào quá trình kiểm thử. Về khả năng khôi phục thông điệp, có hai loại chữ ký: chữ ký khôi phục thông điệp (ví dụ chữ ký RSA) và chữ ký không khôi phục thông điệp. Trong loại chữ ký không khôi phục thông điệp, người nhận cần cả chữ ký và thông điệp gốc để xác thực. Sự phân loại này giúp hiểu rõ hơn về đặc điểm và ứng dụng của từng loại chữ ký số trong các hệ thống bảo mật khác nhau.

3. Ví dụ về chữ ký số và độ an toàn

Chữ ký Elgamal được đưa ra làm ví dụ về chữ ký đi kèm thông điệp. Độ an toàn của chữ ký số nói chung, và cụ thể là chữ ký Elgamal, thường phụ thuộc vào độ khó của việc giải bài toán logarit rời rạc. Văn bản cũng đề cập đến việc chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó, với điều kiện p = 2*q + 1, trong đó q cũng là số nguyên tố. Điều này nhấn mạnh vai trò quan trọng của số nguyên tố trong việc đảm bảo tính an toàn của chữ ký số. Độ an toàn của các hệ thống chữ ký số là yếu tố quyết định trong việc ứng dụng chúng vào thực tiễn, bảo vệ thông tin khỏi các mối đe dọa an ninh mạng.

V.Giao thức phân phối khoá mật

Phần này tập trung vào phân phối khoá mật, một cơ chế quan trọng trong bảo mật thông tin. Nó trình bày hai phương pháp chính: phương pháp thông thường và phương pháp hiệu quả. Phương pháp hiệu quả sử dụng thuật toán để tạo khoá mật giữa các bên mà không cần truyền trực tiếp khoá trên mạng công khai, giảm nguy cơ bị thám mã. Giao thức Diffie-Hellman được đề cập như một ví dụ của phương pháp hiệu quả. Các vấn đề về an toàn thông tinxác thực danh tính được thảo luận.

1. Khái niệm phân phối khóa mật

Phần này định nghĩa phân phối khóa mật là cơ chế cho phép một tổ chức chọn khóa mật và truyền khóa đó, hoặc chỉ truyền vật liệu công khai và cách thức tạo khóa mật, đến các cặp người dùng muốn có chung khóa mật. Mục tiêu là đảm bảo rằng kẻ tấn công khó có thể khám phá hoặc thay đổi khóa mật. Phương pháp hiệu quả hướng đến việc giảm lượng thông tin cần truyền đi và lưu trữ, trong khi vẫn cho phép mỗi cặp người dùng tính toán được khóa mật của riêng họ. Đây là một vấn đề quan trọng trong bảo mật thông tin, đặc biệt trong môi trường mạng, nơi việc truyền thông tin thường không an toàn tuyệt đối.

2. Phương pháp phân phối khóa mật

Văn bản trình bày hai phương pháp chính để phân phối khóa mật: phương pháp thông thường và phương pháp hiệu quả. Trong phương pháp thông thường, trung tâm được ủy quyền trực tiếp truyền khóa mật cho từng cặp người dùng. Phương pháp này đòi hỏi nhiều thông tin truyền đi và lưu trữ, độ an toàn thấp khi truyền khóa trên mạng công khai, và trung tâm cũng biết được khóa mật. Phương pháp hiệu quả hơn, trung tâm chỉ truyền vật liệu công khai và cách thức tạo khóa mật cho các cặp người dùng, giúp giảm thiểu rủi ro và nâng cao độ an toàn. Sự lựa chọn phương pháp phụ thuộc vào yêu cầu về độ an toàn và hiệu quả trong từng trường hợp cụ thể.

3. Sơ đồ Blom và bài toán Logarit rời rạc

Văn bản đề cập đến sơ đồ Blom, cho thấy với k=1, khóa của một cặp đối tác là an toàn không điều kiện trước bất kỳ người dùng thứ ba nào. Trung tâm không thể xác định được thông tin về khóa của hai người dùng khác. Độ an toàn của một số sơ đồ, ví dụ như Diffie-Hellman, phụ thuộc vào độ khó của bài toán Logarit rời rạc. Nếu bài toán Logarit rời rạc khó giải, thì sơ đồ phân phối khóa sẽ an toàn trước các kiểu tấn công nhất định. Điều này cho thấy mối liên hệ chặt chẽ giữa toán học, cụ thể là bài toán Logarit rời rạc, và độ an toàn của các giao thức phân phối khóa mật.

VI.Giao thức thoả thuận khoá trạm tới trạm STS

Phần này trình bày giao thức thoả thuận khoá trạm tới trạm (STS), một cải tiến của giao thức Diffie-Hellman, bổ sung tính năng xác thực danh tính của người dùng. STS tăng cường bảo mật bằng cách ngăn chặn các tấn công chủ động, ví dụ như kẻ xâm nhập vào giữa cuộc. Các bài toán về an toàn thông tin, như bảo mật thông tintoàn vẹn thông tin, được thảo luận.

1. Giao thức thoả thuận khoá Trạm tới Trạm STS

Giao thức thoả thuận khóa Trạm tới Trạm (STS) được giới thiệu như một cải tiến của giao thức phân phối khóa Diffie-Hellman. Điểm khác biệt chính là STS bổ sung cơ chế xác thực danh tính người dùng, nhờ vào sự tham gia của một trung tâm tin cậy (TT). Nhờ vậy, STS được gọi là giao thức thoả thuận khóa có xác thực. Việc bổ sung xác thực danh tính giúp tăng cường đáng kể độ an toàn của giao thức, khắc phục được những điểm yếu của các giao thức đơn thuần chỉ tập trung vào việc chia sẻ khóa mật mà thiếu yếu tố xác thực.

2. Bảo vệ trước tấn công kẻ xâm nhập giữa cuộc

STS được thiết kế để bảo vệ trước tấn công 'kẻ xâm nhập giữa cuộc', một kiểu tấn công thụ động, nơi kẻ tấn công (W) chặn bắt thông tin trao đổi giữa hai bên (U và V) và thay thế bằng thông tin giả mạo của mình. Giống như giao thức Diffie-Hellman, nếu không có xác thực, kẻ tấn công có thể thay thế thông tin trao đổi, dẫn đến việc tạo ra khóa mật chung giả mạo. Tuy nhiên, nhờ cơ chế xác thực danh tính do trung tâm tin cậy cung cấp, STS hạn chế được kiểu tấn công này. Người dùng có dấu xác nhận từ trung tâm, giúp ngăn chặn việc người dùng khác biến đổi thông tin trong quá trình trao đổi.

3. Bài toán an toàn thông tin trong STS

Văn bản nêu lên một số bài toán về an toàn thông tin cần giải quyết trong giao thức phân phối khóa và thỏa thuận khóa mật nói chung, và trong STS nói riêng. Các bài toán này bao gồm bài toán bảo mật thông tin (đảm bảo bí mật khóa mật), bài toán xác thực thông tin (xác minh danh tính của người dùng), và bài toán toàn vẹn thông tin (đảm bảo thông tin không bị thay đổi trong quá trình truyền). Việc tìm ra giải pháp tối ưu cho các bài toán này cần quá trình nghiên cứu lâu dài. Sự phức tạp của các bài toán này nhấn mạnh tầm quan trọng của việc nghiên cứu và phát triển các giao thức an toàn và hiệu quả trong lĩnh vực mật mã học.