1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo Cáo Bài Tập Lớn môn : Thông Tin Di Động - Đề Tài : Thiết Kế Phần Mềm Thu Thập, Xử Lý, Đóng Gói Dữ Liệu Để Truyền Qua Module Sim Về Server

17 10 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

Tiêu đề Thiết Kế Phần Mềm Thu Thập, Xử Lý, Đóng Gói Dữ Liệu Để Truyền Qua Module Sim Về Server
Tác giả Nhóm 10
Người hướng dẫn TS.Trần Quang Vinh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Thông Tin Di Động
Thể loại Báo Cáo Bài Tập Lớn
Năm xuất bản 2015
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 591,79 KB

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

Nội dung

1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ TRUYỀN THÔNG Báo Cáo Bài Tập Lớn Nhóm 10 Thông Tin Di Động ĐỀ TÀI Thiết kế phần mềm thu thập, xử lý, đóng gói dữ liệu để truyền qua module SIM về server[.]

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ TRUYỀN THÔNG

Thông Tin Di Động

ĐỀ TÀI:

Thiết kế phần mềm thu thập, xử lý, đóng gói dữ

liệu để truyền qua module SIM về server

SVTH: Nguyễn Sĩ Anh ĐT1-K56 20111124

Nguyễn Việt Đức CNĐT1-K56 20115524

Nguyễn Tuấn Anh CNĐT1-K56 20115445

Giang Quang Đạt 20111371

Trịnh Văn Minh 20101899 GVHD: TS.Trần Quang Vinh

Hà Nội 12/2015

Trang 2

Table of Contents

I TỔNG QUAN ĐỀ TÀI 3

1.1 Lời nói đầu 3

1.2 Giới thiệu hệ thống 3

II YÊU CẦU HỆ THỐNG VÀ KẾ HOẠCH THỰC HIỆN 4

2.1 Yêu cầu chức năng 4

2.2 Yêu cầu phi chức năng 5

2.3 Sơ đồ khối 5

2.4 Phân công nhiệm vụ thực hiện đề tài .6

III SƠ LƯỢC VỀ LẬP TRÌNH SOCKET TRÊN LINUX 7

3.1 Mô hình client – server 7

3.2 Các bước thiết lập socket 7

3.2.1 Phía Client 7

3.2.2 Phía Server 7

IV PHÂN TÍCH CHI TIẾT CÁC KHỐI 8

4.1 Định dạng bản tin giao tiếp giữa thiết bị và Server 8

4.2 Thuật toán mã hoá bảo mật DES 11

4.2.1 Giới thiệu 11

4.2.2 Mô tả thuật toán 11

4.2.3 Ưu nhược điểm 15

V THỰC HIỆN VÀ KẾT QUẢ 16

VI KẾT LUẬN 16

TÀI LIỆU THAM KHẢO 17

Trang 3

I TỔNG QUAN ĐỀ TÀI

1.1 Lời nói đầu

Hệ thống thông tin di động là một trọng những hệ thống viễn thông phát triển nhanh và mạnh nhất hiện nay Qua từng thế hệ mạng di động, sự phát triển của cơ sở

hạ tầng mạng, sự hiện đại của các thiết bị di động, số lượng người dùng đã phát triển rất nhanh chóng Chất lượng hệ thống mạng di động cũng ngày càng được nâng cao Thông tin di động là môn học cung cấp cho sinh viên những kiến thức nền tảng nhất về hệ thống thông tin di động và những hiểu biết quan trọng trong việc tìm hiểu

và nghiên cứu những công nghệ mạng thông tin di động tiên tiến

Hiện nay, các ứng dụng khai thác hạ tầng mạng thông tin di động và mạng Internet sẵn có đang phát triển mạnh mẽ Một số ứng dụng thực tế có thể kể ra như: Hệ thống thu thập dữ liệu từ môi trường, hệ thống điều khiển thiết bị, hệ thống giám sát, cảnh báo từ xa,… Trong các ứng dụng này thường sử dụng modul SIM để truyền dữ liệu (SMS/DATA) qua hạ tầng mạng thông tin di động Bài tập lớn môn Thông tin di động yêu cầu sinh viên tìm hiểu, thiết kế và thực hiện một phần công việc trong các hệ thống nêu trên, nhằm củng cố và nắm chắc kiến thức chung về hệ thống thông tin di động, áp dụng kiến thức đã học vào giải quyết một bài toán cụ thể trong thực tế

Nhóm xin cảm ơn TS Trần Quang Vinh đã hướng dẫn chúng em hoàn thành bài tập lớn môn học này!

1.2 Giới thiệu hệ thống

Bài toán thiết kế, chế tạo hệ thống giám sát, thu thập, và xử lí thông tin sử dụng modul SIM

Trang 4

Hình 1 Bài toán thông tin di động trong thực tế

Hình vẽ trên mô tả một hệ thống thông tin di động có tính ứng dụng và điển hình trong thực tế Trọng tâm của bài toán là giao tiếp cảm biến – Server – người dùng thông qua hệ thống thông di động

Nội dung bài toán bao gồm nhiều mảng kiến thức, từ thu thập đóng gói dữ liệu, thiết kế phần cứng, lập trình server, android, bảo mật thông tin…

Dựa trên gợi ý đề tài của giảng viên, nhóm đã chọn đề tài 1: (Protocol) Thiết kế

phần mềm thu thập, xử lý, đóng gói dữ liệu để truyền qua module SIM về server

Nhóm có kết hợp và sử dụng server của nhóm làm Thiết kế phần mềm nhận và

xử lý gói dữ liệu từ module SIM về server để hoàn thành đề tài

II YÊU CẦU HỆ THỐNG VÀ KẾ HOẠCH THỰC HIỆN

2.1 Yêu cầu chức năng

• Thiết kế phần mềm thu thập xử lý và định dạng dữ liệu

Trang 5

• Phát triển giao thức truyền thông phù hợp với thiết bị định vị giám sát công suất thấp

• Viết phần mềm gửi dữ liệu (client), giả lập server hoặc sử dụng server ở đề tài 3

2.2 Yêu cầu phi chức năng

• Đảm bảo đúng khuôn dạng gói tin theo chuẩn dữ GPRS

• Hệ thống đảm bảo chuẩn xác tính xác thực của thiết bị (Client) và của Server bằng việc kiểm tra mã xác thực của thiết bị và Server

• Sử dụng lập trình C Socket trên nền tảng Linux (Ubuntu) để mô phỏng quá trình đóng gói và gửi giữ liệu từ module SIM về server

• Hệ thống đảm bảo tính an toàn bảo mật thông tin khi truyền nhận dữ liệu giữa thiết bị và server

• Trong đề tài, nhóm đã sử dụng thuật toán mã hoá DES cho việc mã hoá bảo mật dữ liệu

2.3 Sơ đồ khối

Hình 2 Sơ đồ khối hệ thống

Trang 6

• Trước khi được gửi về Server, dữ liệu được đóng gói theo chuẩn của gói tin GPRS và được mã hoá bằng thuật toán mã hoá bảo mật DES

• Dữ liệu sau mã hoá được gửi về Server, đầu tiên là bản tin xác thực Server xác thực thiết bị và gửi lại bản tin xác thực Server cho thiết bị

• Thiết bị gửi bản tin dữ liệu về Server, Server nhận và xử lí bản tin

2.4 Phân công nhiệm vụ thực hiện đề tài

Bảng 1 Kế hoạch thực hiện đề tài

Nội dung Thành viên Cài đặt hệ điều hành Linux (Ubuntu), tìm hiểu

lập trình C Socket trên GNU Linux

Sĩ Anh, Đức, Tuấn Anh, Minh , Đạt

Xây dựng sơ đồ khối, phân chia công việc,ghép

Tìm hiểu thuật toán mã hoá dữ liệu và thuật toán

mã hoá bảo mật DES Sĩ Anh, Việt, Tuấn Anh Tìm hiểu và xây dựng định dạng cấu trúc gói tin

theo chuẩn GPSR Minh , Đạt

Trang 7

III SƠ LƯỢC VỀ LẬP TRÌNH SOCKET TRÊN LINUX

3.1 Mô hình client – server

3.2 Các bước thiết lập socket

3.2.1 Phía Client

• Tạo một socket bằng hàm socket()

• Kết nối socket đến địa chỉ của server bằng hàm connect()

• Gửi và nhận dữ liệu: Có một số cách khác nhau, đơn giản nhất là sử dụng

các hàm read() và write()

• Đóng kết nối bằng hàm close()

3.2.2 Phía Server

• Tạo một socket bằng hàm socket()

• Gắn (bind) socket đến địa chỉ của server sử dụng hàm bind()

Đối với server trên internet địa chỉ bao gồm địa chỉ ip của máy host + số hiệu cổng dịch vụ (port number)

• Lắng nghe (listen) các kết nối đến từ clients sử dụng hàm listen()

• Chấp nhận các kết nối sử dụng hàm accept() Hàm này sẽ dừng (block) cho

đến khi nhận được một client kết nối đến

• Gửi và nhận dữ liệu với client (hàm read(), write())

• Đóng kết nối bằng hàm close()

Trang 8

IV PHÂN TÍCH CHI TIẾT CÁC KHỐI

4.1 Định dạng bản tin giao tiếp giữa thiết bị và Server

Center và MS trao đổi thông tin với nhau bằng các gói tin Các gói tin có thể là gói TCP/UDP hoặc SMS Các gói tin trao đổi giữa Center và MSID là Text Kích thước toàn bộ gói tin không được lớn hơn 1KB Với gói tin SMS, kích thước tối đa của gói tin SMS là 160 byte

Mỗi gói tin có hai phần, gồm HEADER và phần MESSAGE:

Tranmistion Packet

Header bao gồm:

SIGN: 4bytes kí hiệu bắt đầu gói tin, có giá trị là “TTDD”

SIZE: 3bytes: Tổng kích thước của gói tin, bằng kích thước HEADER cộng với

kích thước của phần dữ liệu

Bảng 2 Cấu trúc gói tin trao đổi giữa thiết bị và Server

STT Tên trường Mô tả Độ dài Giá trị

mặc định

1 SIGN Đánh dấu bắt đầu gói tin 4 “TTDD”

2 SIZE Tổng kích thước gói tin, thể hiện

dưới dạng kí tự HEXA

3

3 MESSAGE Phụ thuộc vào loại dữ liệu Thay đổi

6 Tổng cộng Nội dung của MESSAGE đã được

Encrypt bằng DES Sau khi mã

7+Kích thước

HEADER

MESSAGE (Text Only-AES Encode)

Trang 9

hóa xong thì đã ở dạng text MESSAGE

Sơ đồ xử lí gói tin

Mô tả:

• Secure_encrypt (option): Mã hoá khối DES dữ liệu cần gửi đi với khoá là

“01234567”, khoá mã hoá ở Client và khoá giải mã ở Server phải như nhau Mã này tuỳ thuộc vào đối tượng sử dụng

Trong đề tài, nhóm sử dụng 2 bản tin cho việc truyền nhận dữ liệu: bản tin xác thực và bản tin mang dữ liệu cần gửi đi Về cấu trúc, 2 bản tin này có các trường tương tự nhau nhưng nội dung các trường khác nhau, độ dài tối đa là 1000 bytes

Trang 10

• Bản tin xác thực có SIGN là “REQT” (request) và phần dữ liệu chứa “KEY” đại diện cho thiết bị và là thông tin xác thực thiết bị

4 bytes “REQT” 3 bytes hexa

length of packet KEY

• Bản tin dữ liệu có SIGN là “TTDD” và phần dữ liệu chứa thông tin cần gửi đi

4 bytes “TTDD” length of packet 3 bytes hexa DATA

Sơ đồ thuật toán giao tiếp Socket giữa Client và Server

Hình 3 Sơ đồ thuật toán giao tiếp Socket trong đề tài

Trang 11

• Trong đề tài, khi lâp trình Socket sử dụng giao thức TCP đã được hỗ trợ bảo giao thức mạng, ngôn ngữ lập trình C trên Linux(Ubuntu) đã hỗ trợ sẵn giai đoạn bắt tay ba bước khi kết nối Client Server

• Để xác thực được thiết bị và Server, nhóm đã gửi đi bản tin xác thực (sau khi đã được mã hoá với thuật toán DES) Server sẽ kiểm tra ID của thiết bị và gửi lại bản tin xác thực Server cho thiết bị

• Sau khi tính xác thực của cả Client và Server được đảm bảo, 2 bên sẽ tiến hành truyền nhận dữ liệu

4.2 Thuật toán mã hoá bảo mật DES

4.2.1 Giới thiệu

DES (Data Encryption Standard- Chuẩn mã hoá dữ liệu) là một phương pháp mật

mã hóa được FIPS (Chuẩn Xử lý thông tin Liên bang Hoa Kỳ) chọn làm tiêu chuẩn chính thức vào năm 1976 Sau đó tiêu chuẩn này được sử dụng rộng rãi trên phạm vi toàn thế giới

• Đây là chuẩn mã hóa đầu tiên, được sử dụng rộng rãi trên phạm vi toàn thế giới, làm nền tảng cho các thuật toán mã hóa về sau như Triple DES, AES …

• Nhóm đánh giá giá trị thông tin trong đề tài là phù hợp với thuật toán

4.2.2 Mô tả thuật toán

DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin của bản rõ có độ dài xác định – 64 bit và biến đổi theo những quá trình phức tạp để trở thành khối thông tin của bản mã có độ dài không thay đổi DES cũng sử dụng khóa để cá biệt hóa quá trình chuyển đổi Nhờ vậy, chỉ khi biết khóa mới có thể giải mã được văn bản mã Khóa dùng trong DES có độ dài 64 bit nhưng chỉ có 56 bit được sử dụng để thực hiện tính toán giá trị khóa vòng Khóa được chia làm 8 byte Các bit ở vị trí 8, 16, 32, 40,

48, 56 và 64 được sử dụng để kiểm tra độ chính xác của khóa theo từng byte vì khi khóa được phân phối trên đường truyền đến bộ mã hóa giải mã thì có thể xảy ra lỗi

Trang 12

a) Sơ đồ khối

Sơ đồ khối tổng quát của thuật toán được thể hiện ở Hình 4: có 16 chu trình giống

nhau trong quá trình xử lý Ngoài ra còn có hai lần hoán vị đầu và cuối (Initial and Final Permutation – IP & FP) Hai quá trình này có tính chất đối nhau, trong quá trình

mã hóa thì IP trước FP, khi giải mã thì ngược lại IP và FP không có vai trò xét về mật

mã học và việc sử dụng chúng chỉ có ý nghĩa đáp ứng cho quá trình đưa thông tin vào

và lấy thông tin ra từ các khối phần cứng Trước khi đi vào 16 chu trình chính, khối thông tin 64 bit được chia làm hai phần 32 bit và mỗi phần sẽ được xử lý tuần tự ( quá trình này được gọi là mạng Feistel)

Trang 13

Hình 4 Sơ đồ khối thuật toán mã hoá DES

Thuật toán đảm bảo rằng quá trình mã hóa và giải mã diễn ra tương tự Điểmkhác nhau chỉ ở chỗ các khóa con được sử dụng theo trình tự ngược nhau Điều này giúp cho việc thực hiện thuật toán trở nên đơn giản, đặc biệt khi thiết kế phần cứng

Ký hiệu thể hiện phép toán XOR Hàm F làm biến đổi một nửa của khối đang xử lý với một khóa con Đầu ra sau hàm F được kết hợp với nửa còn lại của khối

và hai phần được tráo đổi để xử lý trong chu trình kế tiếp Sau chu trình cuối cùng thì

2 nửa không bị tráo đổi; đây là đặc điểm của cấu trúc Feistel khiến cho quá trình mã hóa và giải mã trở nên giống nhau

b) Hàm Feistel (F):

Hình 5 Hàm F dùng trong DES

Hàm F, như được miêu tả tron hình 2, hoạt động trên khối 32 bit và bao gồm 4 giai đoạn:

Trang 14

1 Mở rộng: 32 bit đầu vào được mở rộng thành 48 bit sử dụng thuật toán hoán vị

mở rộng với việc nhân đôi một số bit Giai đoạn này được kí hiệu la E trong sơ

đồ

2 Trộn khóa: 48 bit thu được sau quá trình mở rộng được XOR với khóa con 16 khóa con 48 bit được tạo ra từ khóa chính 56 bit theo một chu trình tạo khóa con

3 Thay thế: 48 bit sau khi trộn được chia làm 8 khối con 6 bit và được xử lý qua hộp thay thế S-box Đầu ra của mỗi khối 6 bit là một khối 4 bit theo một chuyển đổi phi tuyến được thực hiện bằng một bảng tra Khối S-box đảm bảo phần quan trọng cho độ an toàn của DES Nếu không có S-box thì quá trình sẽ

là tuyến tính và việc thám mã rất đơn giản

4 Hoán vị: Cuối cùng, 32 bit thu được sau S-box sẽ được sắp xếp lại theo 1 thứ

tự cho trước( còn gọi là P-box)

Quá trình luân phiên sử dụng S-box và sự hoán vị các bit cũng như quá trình mở rộng đã thực hiện được tính chất gọi là sự xáo trộn và khuếch tán Đây là yêu cầu cần có của một thuật toán mã hóa

c) Quá trình tạo khoá con

Hình 6 mô tả thuật toán tạo khóa con cho các chu trình Đầu tiên, từ 64 bit ban đầu của khóa, 56 bit được chọn (Permuted Choice 1, PC-1), 8 bit còn lại bị loại bỏ

56 bit thu được được chia làm hai phần bằng nhau, mỗi phần được xử lý độc lập Sau mỗi chu trình, mỗi phần được dịch đi 1 hoặc 2 bit( tùy thuộc từng chu trình, nếu

đó là chu trình 1,2,9,16 thì dịch 1 bit, còn lại sẽ được dịch 2 bit) Các khóa con 48 bit được tạo thành bởi thuật toán lựa chọn 2 ( Permuted Choice 2, PC-2), gồm 24 bit

từ mỗi phần được cho qua một bảng hoán vị Quá trình dịch bit ( được kí hiệu là

“<<<” trong sơ đồ) khiến cho các khóa con sử dụng các bit khác nhau của khóa chính, mỗi bit được sử dụng trung bình ở 14 trong tổng số 16 khóa con

Trang 15

Quá trình tạo khóa con khi thực hiện giải mã cũng diễn ra tương tự nhưng các khóa con được tạo theo thứ tự ngược lại Ngoài ra sau mỗi chu trình, khóa sẽ được dịch phải thay vì dịch trái như khi mã hóa

Hình 6 Quá trình tạo khóa con trong DES

4.2.3 Ưu nhược điểm

a Ưu điểm:

- Có tính bảo mật cao

- Công khai, dễ hiểu

Trang 16

- Có thể triển khai trên các thiết bị điện tử có kích thước nhỏ

b Nhược điểm:

- Tính bù: nếu ta biết được mã y được mã hóa từ thông tin x với khóa k thì suy ra được bản mã 𝑦̅ được mã hóa từ bản rõ 𝑥̅ với khóa 𝑘̅ Tính chất này là một điểm yếu của DES vì qua đó có thể loại bỏ đi một số khóa phải thử khi tiến hành giải mã theo kiểu vét cạn

- Khóa yếu: Khóa yếu là các khóa mà theo thuật toán sinh khóa con thì tất cả

16 khóa con đều như nhau, điều đó khiến cho việc mã hóa và giải mã đối với khóa yếu là giống nhau

- Không gian khóa K là không lớn, có 256=1017 khóa, hoàn toàn có thể tìm khóa bằng phương pháp vét cạn trong thời gian chưa đến 1 ngày, nhất là với tốc độ máy tính ngày càng nhanh như hiện nay

V THỰC HIỆN VÀ KẾT QUẢ

Qua quá trình tìm hiểu và phân tích, nhóm đã thực hiện đề tài trên ngôn ngữ lập trình C trên hệ điều hành Ubuntu, và đạt những kết quả sau:

• Nhóm đã chạy được các thuật toán: mã hoá DES, thuật toán binary-text encoding Base85

• Ghép nối thành công thuật toán mã hoá và giải mã DES vào hệ thống hoàn chỉnh

• Tuy nhiên khi ghép nối Base85 thì quá trình giải mã xảy ra lỗi và chưa giải mã được, vì vậy trong kết quả demo không có sự tham gia của thuật toán này

VI KẾT LUẬN

Mặc dù chưa thể chạy hoàn chỉnh được hệ thống như mong muốn, tuy nhiên nhóm

đã thực hiện được những yêu cầu cơ quan trọng của đề tài là đảm bảo tính xác thực và bảo mật dữ liệu

Do còn chưa có kinh nghiệm và chưa có kiến thức đầy đủ về hệ thống thông tin di động nên việc thực hiện đề tài còn nhiều sai sót, đó là điều không thể tránh khỏi

Ngày đăng: 28/02/2023, 10:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w