1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xác thực điện tử và ứng dụng trong giao dịch hành chính

100 174 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 3,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong nền hành chính điện tử, vấn đề chứng minh tính hợp pháp của người dùng, đảm bảo an toàn, xác thực nguồn gốc và tính nguyên vẹn của thông tin trong các giao dịch hành chính là một v

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS LÊ PHÊ ĐÔ

Hà Nội - 2015

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 3

LỜI CẢM ƠN

Luận văn Thạc sĩ này được thực hiện tại Đại học Công nghệ - Đại học Quốc gia

Hà Nội dưới sự hướng dẫn của TS Lê Phê Đô Xin được gửi lời cảm ơn sâu sắc đến thầy về định hướng khoa học, liên tục quan tâm, tạo điều kiện thuận lợi trong suốt quá trình nghiên cứu hoàn thành luận văn này Tôi xin được gửi lời cảm ơn đến các thầy, cô trong Bộ môn Công nghệ phần mềm cũng như Khoa Công nghệ Thông tin

đã mang lại cho tôi những kiến thức vô cùng quý giá và bổ ích trong quá trình theo học tại trường

Tôi cũng xin chân thành cảm ơn đến gia đình, bạn bè đã quan tâm và động viên giúp tôi có thêm nghị lực, cố gắng để hoàn thành luận văn này

Do thời gian và kiến thức có hạn nên luận văn chắc chắn không tránh khỏi những thiếu sót nhất định Tôi rất mong nhận được những sự góp ý quý báu của thầy cô, đồng nghiệp và bạn bè

Hà Nội, tháng 10 năm 2015

Trần Xuân Phương

Trang 4

LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Xác thực điện tử và ứng dụng trong giao dịch hành chính” là công trình nghiên cứu của cá nhân tôi dưới sự hướng dẫn của TS Lê

Phê Đô, trung thực và không sao chép của tác giả khác Trong toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ các nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp

Tôi xin chịu mọi trách nhiệm cho lời cam đoan này

Hà Nội, tháng 10 năm 2015

Trần Xuân Phương

Trang 5

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vii

DANH MỤC BẢNG BIỀU viii

DANH MỤC HÌNH VẼ viii

MỞ ĐẦU 1

Chương 1: CƠ SỞ TOÁN HỌC CỦA XÁC THỰC ĐIỆN TỬ 2

1.1 Số nguyên tố 2

1.2 Hai số nguyên tố cùng nhau 5

1.3 Số học modulo 5

1.3.1 Hàm Euler 5

1.3.2 Không gian Zn, Zn 5

1.3.3 Đồng dư thức 5

1.3.4 Giá trị thặng dư bậc hai – Ký hiệu Legendre 6

1.3.5 Ký hiệu Jacobi 6

1.4 Các tiêu chuẩn và phương pháp kiểm tra số nguyên tố 6

1.4.1 Tiêu chuẩn Euler và số giả nguyên tố Euler 6

1.4.2 Định lý nhỏ Fermat và số giả nguyên tố Fermat 7

1.4.3 Số nguyên tố Mersenne 7

1.4.4 Một số phương pháp kiểm tra số nguyên tố 8

1.4.4.1 Thuật toán Soloway - Strassen 8

1.4.4.2 Thuật toán Miler-Rabin 9

1.4.4.3 Thuật toán AKS 10

1.5 Hàm một chiều 12

1.6 Phép chứng minh không tiết lộ tri thức (thông tin) 12

Kết luận chương 1 12

CHƯƠNG 2: CƠ SỞ MẬT MÃ CỦA XÁC THỰC ĐIỆN TỬ 13

2.1 Hệ mã hóa khóa công khai 13

Trang 6

2.2 Hệ mật RSA 14

2.2.1 Giới thiệu hệ mật RSA 14

2.2.2 Độ an toàn của hệ mật RSA 15

2.2.3 Một số phương pháp RSA cải tiến 16

2.2.3.1 RSA với số mũ giải mã lớn 16

2.2.3.2 HE-RSA 17

2.2.3.3 Biến thể RSA của Seema Verman, Deepar Garg 18

2.3 Hệ mật AES 20

2.3.1 Giới thiệu 20

2.3.2 Một số khái niệm, tham số và hàm trong AES 20

2.3.2.1 Input và Output 20

2.3.2.2 Trạng thái (State) 20

2.3.2.3 Khóa 21

2.3.2.4 Phép cộng 21

2.3.2.5 Phép nhân với x 22

2.3.3 Chu trình tạo khóa con AES 23

2.3.4 Quá trình mã hóa AES 24

2.3.4.1 Bước SubBytes 25

2.3.4.2 Bước ShiftRows 26

2.3.4.3 Bước MixColumns 27

2.3.4.4 Bước AddRoundKey 27

2.3.5 Quá trình giải mã 27

2.3.5.1 Bước InvSubBytes 28

2.3.5.2 Bước InvShiftRows 29

2.3.5.3 Bước InvMixColumns 29

2.3.6 Một ví dụ về giải thuật AES 29

2.3.7 Đánh giá giải thuật AES 34

2.4 Hàm băm 35

2.4.1 Hàm băm MD5 36

2.4.2 Chuẩn an toàn SHS 36

Trang 7

2.4.3 Hàm băm SHA-3 36

Kết luận chương 2 38

Chương 3: XÁC THỰC ĐIỆN TỬ 39

3.1 Nguồn gốc, lịch sử ra đời 39

3.2 Các khái niệm cơ bản 40

3.2.1 Xác thực 40

3.2.2 Xác thực điện tử 40

3.2.3 Hệ xác thực 40

3.3 Xác thực thông điệp 40

3.3.1 Khái niệm 40

3.3.2 Xác thực thông điệp bằng thuật toán mã hóa 41

3.3.3 Xác thực thông điệp bằng chữ ký số 42

3.3.3.1 Sơ đồ chữ ký RSA 44

3.3.3.2 Sơ đồ chữ ký Elgamal 46

3.3.4 Xác thực thông điệp bằng mã xác thực (MAC - Message Authentication Code) 48

3.3.5 Xác thực thông điệp bằng hàm băm 49

3.4 Xác thực thực thể 50

3.4.1 Khái niệm 50

3.4.2 Xác thực dựa vào những cái mà thực thể sở hữu bẩm sinh (xác thực bằng sinh trắc học) 50

3.4.2.1 Nhận dạng sinh trắc học 51

3.4.2.2 Mật mã sinh trắc học 52

3.4.2.3 Ứng dụng của sinh trắc học trong xác thực 55

3.4.3 Xác thực dựa vào những cái thực thể (đối tượng) có 56

3.4.4 Xác thực dựa vào những cái thực thể (đối tượng) biết 56

3.5 Xác thực 2 yếu tố (Two Factor Authentication - 2FA) 57

3.5.1 Đặc điểm của xác thực hai yếu tố 58

3.5.2 Một số công nghệ sử dụng cho xác thực hai yếu tố 58

3.5.2.1 Mật khẩu một lần (One Time Password - OTP) 58

3.5.2.2 Xác thực bằng cuộc gọi 61

Trang 8

3.5.2.3 Xác thực qua địa điểm 62

3.5.2.4 Yếu tố sinh trắc học 62

3.5.2.5 Các loại thẻ thông minh (smart card) 62

Kết luận chương 3 62

Chương 4: ỨNG DỤNG XÁC THỰC ĐIỆN TỬ TRONG GIAO DỊCH HÀNH CHÍNH 63

4.1 Hành chính điện tử 63

4.1.1 Lịch sử phát triển của hành chính điện tử 63

4.1.2 Chính phủ điện tử và giao dịch điện tử 63

4.1.2.1 Chính phủ điện tử 63

4.1.2.2 Giao dịch điện tử 64

4.1.3 Hành chính điện tử trên thế giới 64

4.1.4 Hành chính điện tử ở Việt Nam 66

4.2 Xác thực điện tử trong các giao dịch hành chính điện tử 67

4.3 Ứng dụng xác thực điện tử trong quản lý, gửi nhận văn bản trường cao đẳng nghề Cơ khí nông nghiệp 68

4.3.1 Thực trạng quản lý văn bản tại trường cao đẳng nghề Cơ khí nông nghiệp 68 4.3.2 Hệ thống quản lý gửi nhận văn bản trường CĐN Cơ khí nông nghiệp 69

4.3.2.1 Đặc tả hệ thống 69

4.3.2.2 Các yêu cầu của hệ thống 71

4.3.2.3 Phân tích hệ thống 71

4.3.2.4 Vấn đề ký số và mã hóa trong hệ thống 77

4.3.2.5 Triển khai hệ thống 79

Kết luận chương 4 81

KẾT LUẬN 82

TÀI LIỆU THAM KHẢO 83

PHỤ LỤC 84

Trang 9

DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

3 NIST National Institute of Standards and Technology

4 NBS National Bureau of Standards

5 RSA Ron Rivest, Adi Shamir, Len Adleman

7 Verk Thao tác kiểm tra chữ ký

Trang 10

DANH MỤC BẢNG BIỀU

Bảng 1.1 Bảng 10 số nguyên tố lớn nhất 2

Bảng 1.2 Bảng 10 số nguyên tố sinh đôi lớn nhất 2

Bảng 1.3 Bảng 10 số nguyên tố dạng p#1 3

Bảng 1.4 Bảng 10 số nguyên tố lớn nhất dạng n! + 1 4

Bảng 1.5 Bảng 10 số nguyên tố dạng Sophie German lớn nhất 4

Bảng 2.1 Bảng hằng số mở rộng Rcon của AES - 128 23

Bảng 2.2 Bảng khóa mở rộng AES – 128 23

Bảng 2.3 Mối liên hệ giữa Nk, Nb và Nr 24

Bảng 2.4 Bảng thay thế S-box 25

Bảng 2.5 Bảng giá trị Shift(r, Nb) 26

Bảng 2.6 Bảng thay thế S-box-1 28

Bảng 3.1 Mật khẩu OTP cho các phiên làm việc 60

Bảng 4.1 Xếp hạng chính phủ điện tử năm 2015 65

DANH MỤC HÌNH VẼ Hình 2.1 Sơ đồ hệ mã hóa khóa công khai 14

Hình 2.2 Biểu diễn ma trận đầu vào và ma trận đầu ra 20

Hình 2.3 Biểu diễn quá trình biến đối từ input  state -> output 21

Hình 2.4 Biểu diễn khóa K = 128 bit 21

Hình 2.5 Quy trình mã hóa AES 25

Hình 2.6 Quá trình biến đổi SubByte 26

Hình 2.7 Quy trình giải mã AES 28

Hình 2.8 Sơ đồ hàm băm 35

Hình 2.9 Input và output của SHA-3 37

Hình 2.10 Cấu trúc Sponge 37

Hình 2.11 Hàm lặp f của SHA – 3 38

Hình 3.1 Xác thực thông điệp bằng mật mã 42

Hình 3.2 Sơ đồ tạo chữ ký số 43

Hình 3.3 Sơ đồ xác thực chữ ký số 44

Hình 3.4 Xác thực thông điệp bằng mã xác thực (MAC) 48

Hình 3.5 Xác thực thông điệp bằng hàm băm 49

Trang 11

Hình 3.6 Các đặc trưng sinh trắc phổ biến 50

Hình 3.7 Quá trình lấy mẫu của mật mã sinh trắc học 53

Hình 3.8 Quá trình xác thực của mật mã sinh trắc học 54

Hình 3.9 Sơ đồ mật mã sinh trắc học 54

Hình 3.10 Sử dụng OTP trong giao dịch ngân hàng 59

Hình 3.11 Thiết bị OTP - Token 61

Hình 3.12 Phần mềm OTP 61

Hình 4.1 Mối quan hệ giữa cơ sở hạ tầng và các dịch vụ trực tuyến [4] 65

Hình 4.2 Mô hình xác thực hai yếu tố của hệ thống SingPass 67

Hình 4.3 Ứng dụng hệ mật RSA, AES trong giao dịch hành chính 68

Hình 4.4 Quá trình nhận văn bản thủ công 69

Hình 4.5 Quá trình gửi văn bản nội bộ thủ công 69

Hình 4.6 Sơ đồ hoạt động hệ thống gửi nhận văn bản 70

Hình 4.7 Quá trình xử lý văn bản đến 70

Hình 4.8 Quá trình xử lý văn bản nội bộ 70

Hình 4.9 Quá trình nhận văn bản 71

Hình 4.10 Sơ đồ ca sử dụng tổng quát 71

Hình 4.11 Sơ đồ ca sử dụng của tác nhân Quan_Tri_He_Thong 72

Hình 4.12 Sơ đồ ca sử dụng của tác nhân Nguoi_Dung 72

Hình 4.13 Biểu đồ tuần tự chức năng gửi văn bản 76

Hình 4.14 Biểu đồ tuần tự chức năng ký văn bản 76

Hình 4.15 Biểu đồ tuần tự chức năng nhận văn bản 77

Hình 4.16 Lưu đồ hoạt động chức năng gửi văn bản 78

Hình 4.17 Lưu đồ hoạt động chức năng nhận văn bản 78

Hình 4.18 Cửa sổ gửi văn bản 79

Hình 4.19 Cửa sổ ký và mã hóa văn bản 80

Hình 4.20 Cửa sổ hiển thị thông tin chi tiết của văn bản 80

Hình 4.21 Cửa sổ xác thực văn bản 81

Hình 4.22 Cửa sổ tạo mới người dùng 81

Trang 12

MỞ ĐẦU

Hành chính điện tử đang phát triển mạnh mẽ ở nhiều quốc gia trên thế giới trong đó

có Việt Nam Với hành chính điện tử, người dân và các doanh nghiệp dễ dàng tiếp cận, trao đổi công việc với các cơ quan nhà nước Đồng thời thúc đẩy công cuộc cải cách hành chính nhằm giảm thiểu sự cồng kềnh của bộ máy tổ chức, nâng cao hiệu quả làm việc, đáp ứng nhu cầu công khai và minh bạch trong công tác quản lý cũng như giảm thiểu số lượng và thời gian cho các hoạt động thủ tục hành chính

Trên thế giới, hành chính điện tử được nhiều quốc gia bắt tay xây dựng từ sớm và đạt được những thành quả nhất định như: Singapore, Anh, Hàn Quốc… Đặc biệt, tại Singapore hàng ngàn dịch vụ công được cung cấp đến người dân và doanh nghiệp thông mạng internet, máy tính và các thiết bị di động Người dân có thể truy cập tất cả các dịch vụ công thông qua một cổng thông tin quốc gia duy nhất

Tại Việt Nam, nền hành chính điện tử cũng từng bước phát triển và đạt được nhiều thành tựu Nhiều cơ quan nhà nước, các tỉnh thành đã triển khai các dịch vụ công trực tuyến Có thể kể đến như tổng cục Hải quan, tổng cục thuế, thành phố Đà Nẵng… được người dân và các doanh nghiệp đánh giá cao

Trong nền hành chính điện tử, vấn đề chứng minh tính hợp pháp của người dùng, đảm bảo an toàn, xác thực nguồn gốc và tính nguyên vẹn của thông tin trong các giao dịch hành chính là một việc hết sức quan trọng và cần thiết Trên thế giới và tại Việt Nam đã áp dụng nhiều phương pháp bảo mật và xác thực như sử dụng một mật khẩu chung duy nhất cho các dịch vụ, sử dụng mã xác thực OTP, các thuật toán mã hóa và chữ ký số… Trong luận văn này, tôi sẽ tìm hiểu, nghiên cứu một số thuật toán nền tảng trong xác thực điện tử, nghiên cứu về các phương pháp xác thực phổ biến hiện nay, đồng thời ứng dụng chữ ký số RSA và thuật toán mã hóa AES, xây dựng ứng dụng hỗ trợ gửi và nhận văn bản tại trường Cao đẳng nghề Cơ khí nông nghiệp

Nội dung của luận văn gồm các chương sau:

Chương 1 Trình bày cơ sở toán học của xác thực điện tử, số nguyên tố, số học

modulo, các phương pháp kiểm tra số nguyên tố

Chương 2 Phân tích các hệ mật mã được sử dụng trong xác thực điện tử: hệ mật

RSA và các biến thể, hệ mật AES, hàm băm SHA-1, SHA-2, SHA-3

Chương 3 Trình bày các vấn đề về xác thực điện tử Xác thực dữ liệu, xác thực

thực thể và xác thực hai yếu tố

Chương 4 Trình bày các vấn đề về giao dịch hành chính điện tử Phân tích, thiết kế

và thử nghiệm chương trình ứng dụng chữ ký số RSA và mã hóa AES trong việc quản

lý, gửi và nhận văn bản tại trường Cao đẳng nghề cơ khí nông nghiệp

Kết luận và hướng phát triển: Rút ra kết luận và hướng phát triển của luận văn

Trang 13

Chương 1: CƠ SỞ TOÁN HỌC CỦA XÁC THỰC ĐIỆN TỬ

Trong chương này, tác giả trình bày các cơ sở toán học của xác thực điện tử Đầu tiên, tác giả trình bày về số nguyên tố, một số dạng số nguyên tố đặc biệt được ứng dụng phổ biến trong các hệ mật mã Tiếp theo, tác giả trình bày một số lý thuyết về số học modulo và các tiêu chuẩn và phương pháp kiểm tra số nguyên tố

1.1 Số nguyên tố

Trong tập các số nguyên Z = {…, - 2, -1, 0, 1, 2, …}, chúng ta xét các số nguyên dương mà chỉ chia hết cho 1 và chính nó Tập các số như vậy được gọi là tập các số nguyên tố

Ví dụ các số nguyên tố: 2, 3, 5, 7, 11, …, 1299827, …

Số nguyên tố lớn nhất được tìm ra cho đến nay là 257885161 – 1 bao gồm 17425170 chữ số

Theo https://primes.utm.edu/largest.html ta có các kết quả sau:

Bảng 10 số nguyên tố lớn nhất được phát hiện ra cho tới thời điểm này:

Mười số nguyên tố sinh đôi lớn nhất được tìm thấy là:

Bảng 1.2 Bảng 10 số nguyên tố sinh đôi lớn nhất [18]

rank prime digits who when reference

1 3756801695685·2 666669 +1 200700 L1921 2011 Twin (p+2)

Trang 15

239, 251, 281, 293, 359, 419, 431, 443, 491, 509, 593, 641, 653, 659, 683, 719, 743,

761, 809, 911, 953, 1013, 1019, 1031, 1049, 1103, 1223, 1229, 1289, 1409, 1439,

1451, 1481, 1499, 1511,1559

Mười số nguyên tố dạng Sophie German lớn nhất là:

Bảng 1.5 Bảng 10 số nguyên tố dạng Sophie German lớn nhất [18]

rank Prime digits who when reference

Trang 16

8 31737014565·2 140003 -1 42156 L95 2010 Sophie Germain (p)

9 14962863771·2 140001 -1 42155 L95 2010 Sophie Germain (p)

10 33759183·2 123458 -1 37173 L527 2009 Sophie Germain (p)

1.2 Hai số nguyên tố cùng nhau

Hai số m và n được gọi là nguyên tố cùng nhau nếu ước số chung lớn nhất của chúng bằng 1 Ký hiệu gcd(m,n) = 1

Ví dụ: 9 và 14 là nguyên tố cùng nhau vì gcd(9,14) = 1

1.3 Số học modulo

1.3.1 Hàm Euler

Hàm Euler: Cho số nguyên dương n, số lượng các số nguyên dương bé hơn n và

nguyên tố cùng nhau với n ký hiệu ( )n được gọi là hàm Euler

Trang 17

1.3.4 Giá trị thặng dư bậc hai – Ký hiệu Legendre [5]

Cho n là một số nguyên, y thuộc Zn được gọi là thặng dư bậc hai modulo n nếu tồn tại x Zn sao cho y  x2 (modulo n)

Nếu p là số nguyên tố lẻ và a là một số tự nhiên thì kí hiệu Legendre a

p

 

 

  được xác định như sau:

0 nếu a ≡ 0 (mod p)

a p

 

 

  = 1 nếu a là giá trị thặng dư bậc hai của p

-1 nếu a không phải là giá trị thặng dư bậc hai của p

1.4 Các tiêu chuẩn và phương pháp kiểm tra số nguyên tố

1.4.1 Tiêu chuẩn Euler và số giả nguyên tố Euler

Euler chứng minh rằng với mọi số nguyên tố p và số a, 1 a  p thì:

Trang 18

1.4.2 Định lý nhỏ Fermat và số giả nguyên tố Fermat

Định lý Fermat: Nếu p là số nguyên tố, a là số nguyên thì a pa(mod )p

Một cách phát biểu khác của định lý như sau:

Nếu p là số nguyên tố và a là số nguyên tố cùng nhau với p thì ap-1 - 1 sẽ chia hết cho p, nghĩa là:

Rất nhiều số Fermat là số nguyên tố nên một thời người ta cho rằng tất cả các số có

dạng đó đều là số nguyên tố Với n là số không âm Các số Fermat đầu tiên bao gồm:

1.4.3 Số nguyên tố Mersenne

Số nguyên tố Mersenne là một số Mersenne có dạng lũy thừa của 2 trừ 1: 2 n − 1

Một số định nghĩa yêu cầu lũy thừa n phải là số nguyên tố

Điều kiện cần để Mn là số nguyên tố là n là số nguyên tố nhưng ngược lại không đúng

Trang 19

1.4.4 Một số phương pháp kiểm tra số nguyên tố

1.4.4.1 Thuật toán Soloway - Strassen

Giả sử p là số nguyên tố lẻ và a là số nguyên không chia hết cho p Khi đó theo

đúng thì n chắc chắn là hợp số Ngược lại, ta chưa kết luận được chính xác n là số nguyên tố, nhưng nhiều khả năng n là số nguyên tố

Thuật toán Solovay - Strassen:

Input: Số nguyên dương lẻ n và tham số k

Output: Kết luận n là nguyên tố hay hợp số

1 Khi i chạy từ 1 đến k thì tiến hành làm

1.1 Chọn ngẫu nhiên số nguyên a, 1 < a < n – 1

Trang 20

1.4.4.2 Thuật toán Miler-Rabin

* Tiêu chuẩn Miler – Rabin:

Giả sử p là một số nguyên tố lẻ, khi đó p - 1 là số chẵn và ta có thể viết p − 1 dưới dạng: p – 1 = 2 s m, trong đó s là một số tự nhiên >=1 và m là số lẻ

- Điều này nghĩa là ta rút hết các thừa số 2 khỏi p − 1 Lấy số a bất kỳ trong tập {1,2, ,p-1}

1(mod )

s

xp hay

2

1 1(mod )

s

Do đó, hoặc x s1 1(mod )p hoặc x s1 1(mod )p

Nếu x s1  1(mod )p ta dừng lại,

Ngược lại ta tiếp tục với x s2

Sau một số hữu hạn bước:

- hoặc ta có một chỉ số k, 0  k s 1 sao cho x k  1(mod )p ,

- hoặc tới k=0 ta vẫn có x k 1(mod )p

=> Ta có mệnh đề Q(p,a) như sau:

Nếu p là số nguyên tố lẻ và p - 1 = 2 s m thì với mọi a: 0<a<p-1:

1(mod )

k

m k

xa   p

* Thuật toán Miller – Rabin:

INPUT: Số tự nhiên lẻ n

OUTPUT : Kết luận n là nguyên tố hay hợp số

1 Phân tích n – 1 = 2 S m trong đó s >= 1 và m là số tự nhiên lẻ

Trang 21

2 Chọn ngẫu nhiên số tự nhiên a {2, ,n-1}

Độ phức tạp của thuật toán: O (n2)

Ví dụ: Kiểm tra tính nguyên tố của số n = 23:

N = 23 => N – 1 = 22 = 2 1 11

Chọn a = 10

b = am (mod n)  b = 1011 (mod 23) = 22

=> b  1(mod 23) => n là số nguyên tố

1.4.4.3 Thuật toán AKS

Tháng 8 năm 2002, ba tác giả Manindra Agrawal, Neeraj Kayal va Nitin Saxena (Viện công nghệ Kanpur Ấn Độ) công bố thuật toán kiểm tra tính nguyên tố với độ phức tạp đa thức (thường gọi là thuật toán AKS)

Thuật toán xuất phát từ ý tưởng sau:

Một số nguyên n (n>2) là số nguyên tố khi và chỉ khi:

 

Đúng với mọi số nguyên a là số nguyên tố cùng nhau với n (hoặc chỉ cần đúng với

số giá trị của a, đặc biệt khi a = 1)

Với định lý trên, thời gian tính của thuật toán sẽ là một hàm mũ Tiến hành rút gọn hai vế của đẳng thức trên theo modulo xr - 1 Sau đó lại rút gọn các hệ số của kết quả thu được theo modulo n Ta được thức sau:

Trang 22

p r

Trang 23

f(x) được gọi là hàm một phía có cửa sập nếu tính xuôi y = f(x) thì dễ nhưng tính x

= f-1(x) thì khó tuy nhiên nếu có “cửa sập” thì vấn đề tính ngược trở nên dễ dàng Cửa sập đây là một điều kiện nào đó giúp chúng ta dễ dàng tính ngược

Ví dụ:

Trong hệ mật RSA, y = xe mod n tính xuôi thì dễ nhưng tính x = yd mod n là khó vì phải biết d trong đó d thỏa mãn e*d ≡ 1 (mod(ϕ(n)) Nếu biết cửa sập là các giá trị p, q thì việc tính d trở nên dễ dàng

1.6 Phép chứng minh không tiết lộ tri thức (thông tin)[2]

“Chứng minh không tiết lộ thông tin” không có nghĩa là “không để lộ thông tin” mà nghĩa là “để lộ thông tin ở mức ít nhất” về sự vật sự việc cần chứng minh Với những

“thông tin để lộ”, người xác minh không có nhiều hiểu biết (knowledge) về sự vật sự việc, họ chỉ thu được chút ít thông tin (coi như “zero knowledge”) về đặc điểm tính chất của nó

Giao thức ∑ là giao thức “Hỏi - Đáp” 3 bước để P chứng minh cho V một vấn đề nào đó

- P gửi cho V - một giá trị ngẫu nhiên

- V gửi lại P - một giá trị ngẫu nhiên như là giá trị dùng để kiểm thử

- P gửi đáp lại V một giá trị

Kết quả V thừa nhận hoặc bác bỏ vấn đề P chứng minh

Kết luận chương 1

Trong chương này, luận văn đã tìm hiểu, phân tích các cơ sở toán học của xác thực điện tử Luận văn đã trình bày một số vấn đề về số nguyên tố, các khái niệm số học modulo, các phương pháp kiểm tra số nguyên tố, khái niệm hàm một chiều, phép chứng minh không tiết lộ tri thức

Trang 24

CHƯƠNG 2: CƠ SỞ MẬT MÃ CỦA XÁC THỰC ĐIỆN TỬ

Hệ mã hóa khóa công khai ngày càng được ứng dụng rộng rãi, đặc biệt trong lĩnh vực xác thực điện tử Trong các hệ mã hóa khóa công khai, nổi tiếng và phổ biến nhất

đó là hệ mật RSA Kể từ khi ra đời đến nay, RSA luôn được tin tưởng và sử dụng trong các hệ thống đòi hỏi độ bảo mật cao Để đáp ứng được yêu cầu của thực tế, chống lại nhiều phương pháp tấn công, hệ mật RSA được nhiều nhà khoa học nghiên cứu, cải tiến và đề xuất các biến thể mới

Trong thực tế, hệ mã hóa khóa công khai, tiêu biểu là hệ mật RSA được ứng nhiều trong lĩnh vực xác thực điện tử bằng chữ ký số Còn mã hóa dữ liệu thường sử dụng các hệ mã hóa khóa đối xứng để cải thiện tốc độ Một trong những hệ mã hóa khóa đối xứng được sử dụng rộng rãi hiện nay là hệ mật AES (Advanced Encryption Standard) Nội dung chương này, tác giả sẽ phân tích, trình bày các cơ sở mật mã của xác thực điện tử; phân tích hệ mật RSA và một số biến thể mới của RSA, đồng thời tác giả cũng

sẽ phân tích cấu trúc và hoạt động của hệ mật AES; phân tích các hàm băm mật mã được sử dụng trong xác thực điện tử

2.1 Hệ mã hóa khóa công khai

Một hệ mật mà khóa giải mã khác khóa mã hóa với khóa mã hóa được công khai được gọi là mật mã khóa công khai Mỗi khóa K là cặp (Ke,Kd) trong đó khóa mã hóa

là Ke được gọi là khóa công khai (có giá trị mà ai cũng biết), khóa giải mã Kd được gọi

là khóa riêng hay khóa bí mật và đảm bảo rằng khó tính được Kd từ Ke

Hệ mật khóa công khai gồm 5 thành phần:

- Bản rõ: là thông điệp có thể đọc, là đầu vào của giải thuật

- Giải thuật mã hóa

- Khóa công khai và khóa bí mật: một cặp khóa được chọn sao cho một khóa dùng

để mã hóa và một khóa dùng để giải mật

- Bản mật: thông điệp ở đầu ra ở dạng không đọc được, phụ thuộc vào bản rõ và khóa Với cùng một thông điệp, nếu sử dụng 2 khóa khác nhau sẽ sinh ra 2 bản mã khác nhau

- Giải thuật giải mã

Các bước thực hiện:

- Người nhận B tạo một cặp khóa để mã hóa và giải mã là Ke và Kd Lựa chọn một khóa làm khóa công khai (Ke) và một khóa làm khóa bí mật (Kd)

- B gửi khóa công khai Ke cho A Khóa này được công khai và ai cũng có thể biết

- A dùng Ke để mã hóa thông điệp và gửi thông điệp đã mã hóa cho B

- B dùng Kd để giải mã thông điệp đã nhận được từ A

Trang 25

Hình 2.1 Sơ đồ hệ mã hóa khóa công khai

2.2 Hệ mật RSA

2.2.1 Giới thiệu hệ mật RSA

Hệ mật được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm

1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của hệ mật lấy từ 3 chữ cái đầu của tên 3 tác giả

Hệ mật RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải

mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa

bí mật tương ứng Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được

Độ an toàn của RSA dựa trên độ khó của bài toán phân tích ra thừa số nguyên tố của các số nguyên lớn:

"Cho một số nguyên nN, tìm các số nguyên tố Pi, i = 1, 2, ., rN, với

P1<P2< <Pr thỏa mãn n =

1

i

r e i i

P

 , trong đó ei1"

Sinh khóa:

Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh không an toàn (ví

dụ như Internet) Với thuật toán RSA, mỗi người sẽ tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:

- Chọn 2 số nguyên tố lớn p và q với p q

- Tính: n = p*q

- Tính: giá trị hàm số Ơle ∅(n) = (p - 1)*(q - 1)

Trang 26

- Chọn một số tự nhiên e sao cho 1 < e < (n) và là số nguyên tố cùng nhau với

(n)

- Tính: d sao cho de 1 mod (n)

Thành phần công khai (n,e)

Thành phần bí mật (p, q, d)

Mã hóa:

Giả sử A muốn gửi một thông điệp M cho B; B là người nhận và phải giải mã

Người A sẽ làm theo các bước sau:

- Xác thực khóa công khai (n,e) của B

- Biểu diễn thông điệp dưới dạng một số nguyên nằm trong đoạn [0, n-1]

- e = 173 Ta tính được d = e-1 mod ( )n = 173-1 mod 34560 = 2597

Khóa công khai: (173, 34933)

2.2.2 Độ an toàn của hệ mật RSA

RSA là một trong những hệ mật được sử dụng rộng rãi nhất hiện nay; Nó được triển khai và ứng dụng trong nhiều hệ thống thông tin đòi hỏi có độ bảo mật cao như những

hệ thống thông tin thương mại hay các hệ thống thông tin sử dụng trong lĩnh vực hành chính

Trang 27

Sự an toàn của hệ mật RSA hay chính là sự an toàn của thành phần khóa bí mật (private key) phụ thuộc vào tính khó của việc phân tích thừa số nguyên tố của các số lớn

Như đã biết Z = (n, e) là thành phần công khai Nếu biết phân tích thừa số nguyên tố của n là n = p*q thì sẽ tính được ( )n   (p 1)(q 1)  do đó tính được 1

(mod (n))

de  Tuy nhiên nếu không biết trước p, q thì không có một thuật toán hiệu quả nào để phân tích thừa số nguyên tố đối với n, tức là tìm được p, q khi n lớn Nghĩa là không thể tìm được ( )n và do đó không tính được d

Từ khi ra đời đến nay, RSA đã được phân tích và tìm cách tấn công bằng nhiều phương pháp khác nhau Các phương pháp này chủ yếu tập trung vào các kẽ hở của RSA, có nhiều phương pháp tấn công, có thể kể đến là: tấn công cơ bản, tấn công số

mũ công khai nhỏ, tấn công số mũ bí mật nhỏ, tấn công cài đặt

2.2.3 Một số phương pháp RSA cải tiến

2.2.3.1 RSA với số mũ giải mã lớn[15]

Như chúng ta đã biết, hệ mật RSA với số mũ giải mã nhỏ là một kẽ hở dễ dàng bị tấn công theo phương pháp của Wiener Vì vậy, để đảm bảo an toàn cho hệ mật RSA, các tác giả Hernández Encinas, Munoz Masqué và Queiruga Dios đã đề xuất phương

pháp sinh khóa giải mã d lớn có kích thước gần bằng modunlus n cho giải thuật RSA

Giải thuật:

1 Chọn số mũ mã hóa là số nguyên dương e > 2

2 Tạo ngẫu nhiên một số nguyên tố lớn p sao cho r p (r p - 1) *

e

Z

với r p = p (mod e)

3 Tính một số nguyên tố lớn q = r p (r p - 1) -1 (mod e) + ke, với k là một số thuộc N

Trang 28

Giải thuật HE-RSA được Faraz Fatemi Moghaddam, Mean T Alrashdan và Omidrza Karimi công bố tháng 9 năm 2013 Đây là một biến thể của RSA được phát triển dựa trên hệ mật RSA chuẩn, biến thể RSA-Small và biến thể Efficient - RSA Biến thể này được các tác giả đề nghị sử dụng để bảo mật cho công nghệ điện toán đám mây Nó có thể chống lại các cuộc tấn công thời gian, tấn công về toán học cũng như các tấn công cơ bản

5 Tính giá trị e thỏa mãn r.e 1 mod (n) và 1 < e < (n)

6 Tính giá trị d thỏa mãn d.e 1 mod (n,h) và 1 < d < (n,h)

7 Khóa công khai: (e,n)

8 Khóa bí mật: (r,d,n)

Trang 29

Mã hóa:

1 A cần gửi cho B một thông điệp m (m được biểu diễn dưới dạng một số nguyên 0

< M < n)

2 B gửi cho A khóa công khai của mình

3 A thực hiện mã hóa m theo biểu thức sau:

Tháng 7 năm 2014, Seeman Verman và Deepar Garg đã công bố một biến thể mới của RSA, được phát triển từ Dual RSA và DRSA trước đó, nhằm tận dụng những ưu điểm về bộ nhớ và tốc độ của hai phương pháp này

Giải thuật được thực hiện như sau:

* Sinh khóa:

- Lựa chọn khóa bí mật d có độ lớn nd bit (nd > n/2)

- Tính giá trị e là phần tử nghịch đảo của d

- Lựa chọn các giá trị p1, q1, p2, q2 sao cho d và e của cả 2 module N1, N2 là giống

Trang 30

Áp dụng định lý số dư Trung Hoa ta tính được: d = 131

+ Khóa công khai: (e, N1, N2) = (11, 91, 181)

Trang 31

Và được chọn làm chuẩn mã hóa nâng cao – AES – từ 02 tháng 10 năm 2000

AES là phương pháp mã hóa theo khối (block cipher) có kích thước khối dữ liệu đầu vào và đầu ra là 128 bit, độ dài khóa có thể thay đổi linh hoạt với các giá trị 128,

192 hay 256 bit Phương pháp mã hóa này thích hợp ứng dụng trên nhiều hệ thống khác nhau, từ các thẻ thông minh cho đến các máy tính cá nhân

2.3.2 Một số khái niệm, tham số và hàm trong AES

2.3.2.1 Input và Output

Với giải thuật AES, mỗi khối đầu vào và đầu ra có độ dài là 128 bit, tương đương với 16 byte Mỗi khối được biểu diễn dưới dạng một ma trận gồm 4 dòng và 4 cột:

In 1 In 5 In 9 In 13 out 1 out 5 out 9 out 13

In 2 In 6 In 10 In 14 out 2 out 6 out 10 out 14

In 3 In 7 In 11 In 15 out 3 out 7 out 11 out 15

Hình 2.2 Biểu diễn ma trận đầu vào và ma trận đầu ra

2.3.2.2 Trạng thái (State)

Giải thuật AES làm việc trên một mảng byte hai chiều, được gọi là State (trạng

Trang 32

thái) Mỗi State gồm có 4 dòng, mỗi dòng gồm Nb byte, Nb được tính bằng độ dài khối chia 32 Trong mảng trạng thái, mỗi phần tử được ký hiệu là Sr,c

Bắt đầu quá trình mã hóa và giải mã, khối đầu vào được sao chép vào mảng trạng thái Sau khi kết thúc các chu kỳ tính toán, dữ liệu trong mảng trạng thái được sao chép vào khối đầu ra

in 0 in 4 in 8 in 12 S 0,0 S 0,1 S 0,2 S 0,3 out 0 out 4 out 8 out 12

in 1 in 5 in 9 in 13 S 1,0 S 1,1 S 1,2 S 1,3 out 1 out 5 out 9 out 13

in 2 in 6 in 10 in 14 S 2,0 S 2,1 S 2,2 S 2,3 out 2 out 6 out 10 out 14

in 3 in 7 in 11 in 15 S 3,0 S 3,1 S 3,2 S 3,3 out 3 out 7 out 11 out 15

Hình 2.3 Biểu diễn quá trình biến đối từ input  state -> output

Với mỗi trạng thái trong ma trận trạng thái được tính theo công thức sau:

Nếu biểu diễn các phần tử dưới dạng nhị phân, phép cộng 2 byte được biểu diễn như sau:

Trang 33

Khi đó việc thực hiện phép nhân giữa hai phần tử a,b bất kỳ thuộc GF(28) được tiến hành như sau:

1 Phân tích một phần tử (giả sử là b) thành tổng của các lũy thừa bậc 2

2 Tính tổng các kết quả trung gian của phép nhân giữa phần tử còn lại (trường hợp

này là b) với các thành phần là lũy thừa của 2 được phân tích từ b

Tính tương tự ta được:

{23}  {4} = xtime({1D}) = {01}

{23}  {8} = xtime({01}) = {19}

Trang 34

Như vậy:

{23}  {9} = {23}  ({01}  {08})

= {23}  {19} = {3A}

2.3.3 Chu trình tạo khóa con AES

AES thực hiện việc mở rộng khóa dựa trên khóa gốc K, tạo thành chu trình tạo khóa

để sinh ra 10, 12 hoặc 14 khóa con, tương ứng với 10, 12 hoặc 14 chu kỳ lặp của giải thuật AES

Việc mở rộng khóa chính tạo thành bảng khóa mở rộng Bảng khóa mở rộng là

mảng 1 chiều chứa các từ, mỗi từ có độ dài 4 byte, được ký hiệu W[Nb*(Nr+1)] (với

Nb = 4) Việc phát sinh bảng khóa mở rộng phụ thuộc vào độ dài Nk của khóa chính

Chu trình tạo khóa con AES sử dụng hai hàm:

- SubWord() thực thiện việc thay thế từng byte thành phần của từ 4 byte được đưa

vào và trả về kết quả là một từ 4 byte đã được thay thế Việc thay thế này sử dụng bảng thay thế S-box

- RotWord() thực hiện việc dịch chuyển xoay vòng 4 byte thành phần (a, b, c,d) của

từ được đưa vào Kết quả trả về của hàm RotWord là một từ 4 byte đã được dịch chuyển (b, c, d, a)

Các hằng số chu kỳ Rcon[i] được xác định:

Rcon[i] = [xi-1, {00}, {00}, {00}]

Trong đó: xi-1  {02}i-1 trong trường GF(28)

Như vậy ta có bảng hằng số mở rộng với trường hợp Nr = 10 như sau:

Bảng 2.1 Bảng hằng số mở rộng Rcon của AES - 128

Bảng 2.2 Bảng khóa mở rộng AES – 128

Khóa con chu kỳ 0 Khóa con chu kỳ 1 Khóa con chu kỳ 2 …

Trang 35

2.3.4 Quá trình mã hóa AES

Giải thuật AES bao gồm nhiều bước biến đổi được thực hiện tuần tự, kết quả đầu ra của bước biến đổi này sẽ là đầu vào của bước biến đổi kia Kết quả trung gian giữa các bước biến đổi được gọi là trạng thái (State) Độ dài của khối đầu vào, khối đầu ra cũng như độ dài của khối trung gian State là 128 bit Được biểu diễn bằng một ma trận gồm

4 dòng và 4 cột

Độ dài của khóa K trong giải thuật AES có thể là 128, 192 hoặc 256 bit Khóa được biểu diễn bằng một ma trận gồm 4 dòng và Nk cột (Nk = 4, 6 hoặc 8; Nk được tính bằng độ dài của khóa chia 32) Số lượng chu kỳ tính toán trong giải thuật AES được ký hiệu là Nr, độ lớn của Nr phụ thuộc vào độ dài của khóa Nr được xác định theo công thức:

Nr = max{Nb, Nk} + 6

Bảng 2.3 Mối liên hệ giữa Nk, Nb và Nr

Độ dài khóa (Nk words)

Kích thước khối (Nb words)

Số chu kỳ (Nr)

Quá trình mã hóa của giải thuật AES trải qua 10, 12 hoặc 14 chu kỳ, tương ứng với

độ dài của khóa là 128, 192 hoặc 256 bit Mỗi chu kỳ bao gồm 4 bước được thự hiện tuần tự:

Bước 1: AddRoundKey – mỗi byte của khối trạng thái được kết hợp với khóa con Các khóa con này được tạo ra từ quá trình tạo khóa con

Bước 2: SubBytes – mỗi byte trong khối trạng thái được thay thế bằng một byte khác trong bảng tra S-box

Bước 3: ShiftRows – các hàng trong khối được dịch vòng, số lượng vòng dịch phụ thuộc vào thứ tự của hàng

Bước 4: MixColumns – các cột trong khối được trộn theo một phép biến đổi tuyến tính

Các bước của quá trình mã hóa được thực hiện trên trạng thái hiện hành S Kết quả S’ của mỗi bước sẽ trở thành đầu vào của bước tiếp theo

Quy trình hoạt động của giải thuật AES được thực hiện như sau:

- Đầu tiên toàn bộ dữ liệu trong khối đầu vào được sao chép vào mảng trạng thái hiện hành S

- Thực hiện thao tác AddRoundKey đầu tiên trước khi thực các chu kỳ mã hóa

Trang 36

- Mảng trạng thái sau đó sẽ trải qua Nr = 10, 12 hoặc 14 chu kỳ biến đổi (tương ứng với độ dài khóa lần lượt là 128, 192 hoặc 256)

+ Nr -1 chu kỳ đầu tiên: mỗi chu kỳ gồm 4 bước biến đổi liên tiếp nhau

+ Chu kỳ thứ Nr thao tác MixColumns được bỏ qua

- Trải qua Nr chu kỳ biến đổi, dữ liệu trong trạng thái S được sao chép vào mảng đầu ra, kết thúc quá trình mã hóa AES

Ciphertext

Initial round

Final round

Hình 2.5 Quy trình mã hóa AES

Trang 37

Phần tử S’r,c trong trạng thái mới được xác định như sau:

S’ r,c = S r,(c + shift(r,Nb)) mod Nb với 0 < r < 4 và 0 <= c < Nb Giá trị Shift(r,Nb)phụ thuộc vào chỉ số dòng r và kích thước Nb của khối dữ liệu đầu vào

Với giải thuật AES, Nb = 4 ta có:

shift(0,4) = 0; shift(1,4) = 1; shift(2,4) = 2; shift(3,4) = 3

Trang 38

2.3.4.3 Bước MixColumns

Ở bước này, mỗi khối 4 byte trong từng cột được kết hợp lại theo một phép biến đổi tuyến tính Mỗi khối 4 byte đầu vào sẽ cho một khối 4 byte đầu ra với nguyên tắc mỗi byte ở đầu vào đều tác động tới cả 4 byte ở đầu ra Mỗi cột được coi là một đa thức trên trường GF(28) nhân với đa thức a(x) theo modulo x4 + 1

Đa thức a(x) được biểu diễn như sau:

Quá trình giải mã là một quá trình ngược của quá trình mã hóa AES Quá trình giải

mã cũng trải qua 10, 12 hoặc 14 chu kỳ tương ứng với số chu kỳ của quá trình mã hóa Mỗi chu kỳ gồm 4 bước được thực hiện tuần tự với nhau gồm InvSubBytes, InvShiftRows, InvMixColumns (là các phép biến đổi ngược với SubBytes, ShiftRows, MixColumns) và bước AddRoundKey

Quá trình giải mã được thể hiện như lưu đồ dưới đây (hình 2.7):

- Khối dữ liệu đầu vào là Ciphertext được sao chép vào mảng trạng thái S

Trang 39

- Thực hiện thao tác AddRoundKey đầu tiên trước khi thực hiện các chu kỳ mã hóa

Sử dụng khóa ở chu kỳ thứ Nr của chu trình mã hóa

- Mảng trạng thái sau đó sẽ trải qua Nr = 10, 12 hay 14 chu kỳ biến đổi (tương ứng với 10, 12 hay 14 chu kỳ mã hóa)

+ Nr – 1 chu kỳ đầu tiên: mỗi chu kỳ gồm 4 bước biến đổi liên tiếp nhau

+ Chu kỳ thứ Nr, thao tác InvMixColumns được thay thế bằng thao tác AddRoundKey

Plaintext

Initial round

Final round

Hình 2.7 Quy trình giải mã AES

Trang 40

Phần tử Sr,c sẽ được dịch chuyển đến vị trí mới theo công thức sau:

S’r,(c+shift(r,Nb)) mod Nb = Sr,c với 0 < r < 4 và 0  c < Nb Giá trị Shift(r, Nb) tương tự giá trị Shift(r, Nb) trong biến đổi ShiftRows

2.3.6 Một ví dụ về giải thuật AES

Ví dụ dưới đây sẽ mô tả từng bước hoạt động của giải thuật AES

Ngày đăng: 07/12/2017, 16:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w