Điểm mới nỗi bật của đề tài Mạng xã hội cho phép người dùng có thể tạo nên những cộng đồng riêng cho bản thân mình Cung cấp việc ranking một cách hiệu quả dựa trên nhiều thuật toán khác
Tinh mới/ khác biệt về chức năng của dé tài so với các mạng xã hội khác
Bố cục của khóa luận - :¿+2++2E++vttEEkvrrtrkttrtrrrrrtrtrrrrrtrrrrrrrrrrrrre 3 Chương 2 CƠ SỞ LÍ THUYET .- 2-22 2£22+2EE2EE££EE2EE+EEEEEEE2EEeEEEerxesrxerrxee 5 2.1 Hệ thống gợi ý (Recommendation System - RS) . ¿5 5 s+c++szzs+ 5 2.1.1 Khái niệmfc OF terre rot 1 EĐ Í 2 LH HHHH1.155 5 2.1.1.1 Tổ quanm, ẤP, œý Le
Cosine Similarity G5 S2 3119191 nghiệt 8 2.1.1.4 Root Mean Squared Error (RMSIP) 5-5 ScSĂSssssseereseres 9 2.1.2 Các cách tiếp cận của hệ thống khuyến nghị . - 2 2-5525: 9
Sau khi biểu diễn các rating thành utility matrix, mỗi hang(item) là một vector với độ dai là số lượng user Dé tính độ tương tự giữa các user ta sẽ dùng Cosine similarity.
Dé tính độ tương quan giữa 2 vector, ta thực hiện phép tính tích vô hướng giữa
2 vector, hay nói cách khác là tính giá tri góc cosin được hop bởi 2 vector, với 0° < a
Nếu tích vô hướng cho ra kết quả càng gan về 0, khi đó 2 vector gần như vuông góc với nhau, đồng nghĩa với việc 2 vector không có sự tương đồng với nhau Ngược lại, nếu tích vô hướng càng tiến về 1, khi đó 2 vector gần như trùng nhau, nghĩa là sự tương đồng giữa 2 vector rất cao.
Feature vector 1 Feature vector 2 Feature vector +
Orthogonal Vectors at or near 90 degree
2.1.1.4 Root Mean Squared Error (RMSE)
Sử dụng RootMean Squared Error dé đánh giá hiệu qua của thuật toán, RMSE được tính bằng công thức:
- ru: dự đoán của người dùng u trên item i trên tập kiểm tra
- Ti: dự đoán của người dùng u trên item i theo thuật toán gợi ý.
2.1.2 Các cách tiếp cận của hệ thống khuyến nghị
Phương pháp tiếp cận dựa trên lọc nội dung (Content-based APPTOACH) 01177
Một cách tiếp cận phô biến khi thiết kế hệ thống recommender là loc nội dung Phương pháp lọc dựa trên nội dung dựa trên mô tả về mặt hàng và hồ sơ về các tùy chọn của người dùng.
Trong hệ thống gợi ý dựa trên nội dung, từ khóa được sử dụng dé mô tả các mục và hồ sơ người dùng được xây dựng dé chi ra loại mục mà người dùng này thích. Nói cách khác, các thuật toán này cố gắng đề xuất các mục tương tự với các mục mà người dùng đã thích trong quá khứ (hoặc đang kiểm tra trong hiện tại) Cụ thé, các mục đề cử khác nhau được so sánh với các mục được đánh giá trước đây bởi người dùng và các mục phù hợp nhất được đề xuất Cách tiếp cận này có nguồn gốc từ việc thu thập thông tin và nghiên cứu loc thông tin. Đề tóm tắt các tính năng của các mục trong hệ thống, một thuật toán trình bày mục được áp dụng Một thuật toán được sử dụng rộng rãi là biểu diễn tf — idf (còn được gọi là biểu diễn không gian vecto). Để tạo hồ sơ người dùng, hệ thống chủ yếu tập trung vào hai loại thông tin:
-_ Một mô hình ưu tiên của người dùng.
- Lich sử tương tác của người dùng với hệ thống gợi ý.
Về cơ bản, các phương thức này sử dụng một hồ sơ mặt hàng (ví dụ, một tập hợp các thuộc tính và tính năng rời rạc) mô tả mục trong hệ thống Hệ thống tạo hồ sơ dựa trên nội dung của người dùng dựa trên vectơ trọng số của các đối tượng địa lý Trọng số biéu thị tầm quan trọng của từng tinh năng đối với người dùng và có thé được tính từ các vectơ nội dung được xếp hạng riêng lẻ bằng nhiều kỹ thuật Các phương pháp đơn giản sử dụng các giá tri trung bình của vector hạng mục trong khi các phương pháp phức tạp khác sử dụng các kỹ thuật máy học như Bayesian
Classifiers , phân tích cum , cây quyết định và mang thần kinh nhân tao (artificial neural networks) đê ước tính xác suât người dùng sẽ thích mục đó.
Phản hồi trực tiếp từ người dùng, thường dưới dạng nút thích hoặc không thích , có thê được sử dung dé gán trọng số cao hơn hoặc thấp hơn về tam quan trọng của các thuộc tính nhất định (sử dụng phân loại Rocchio hoặc các kỹ thuật tương tự khác).
Một vấn đề quan trọng với lọc dựa trên nội dung là liệu hệ thống có thé tim hiéu các tùy chọn cua người dùng từ hành động của người dung liên quan đên một
10 nguồn nội dung hay không và sử dụng chúng trên các loại nội dung khác Khi hệ thong bị hạn chế đề xuất nội dung cùng loại với người dùng đang sử dụng, giá trị từ hệ thống đề xuất thấp hơn đáng kế so với các loại nội dung khác từ các dịch vụ khác có thé được đề xuất Ví dụ: giới thiệu các bài viết tin tức dựa trên việc duyệt tin tức hữu ích nhưng sẽ hữu ích hơn nhiều khi chúng ta có thể đề xuất âm nhạc, video, sản phẩm, cuộc thảo luận, v.v từ các dịch vụ khác nhau dựa trên duyệt tin tức.
Pandora Radio là một ví dụ về hệ thống giới thiệu dựa trên nội dung phát nhạc có các đặc điểm tương tự như một bài hát do người dùng cung cấp làm hạt giống ban đầu Ngoài ra còn có một số lượng lớn các hệ thống gợi ý dựa trên nội dung nhằm cung cấp các đề xuất phim, một vài ví dụ như Rotten Tomatoes , Internet Movie Database , Jinni , Rovi Corporation va Jaman Các hệ thống gợi ý giới thiệu tài liệu liên quan nhằm mục đích cung cấp các dé xuất tài liệu cho các nhà nghiên cứu Các chuyên gia y tế công cộng đã nghiên cứu các hệ thống gợi ý dé cá nhân hóa giáo dục sức khỏe và các chiên lược phòng ngừa.
Phương pháp tiếp cận dựa trên lọc cộng tác (Collaborative filtering)
Một cách tiếp cận dé thiết kế các hệ thống recommender khác được sử dụng rộng rãi là lọc cộng tác Các phương pháp lọc cộng tác dựa trên việc thu thập và phân tích một lượng lớn thông tin về hành vi, hoạt động hoặc sở thích của người dùng và dự đoán những gi người dùng sẽ thích dựa trên sự tương đồng của họ với người dùng khác Một lợi thế quan trọng của phương pháp lọc cộng tác là nó không dựa vào nội dung phân tích máy và do đó nó có khả năng đề xuất chính xác các mục phức tạp như phim mà không yêu cầu “hiểu biết” về mục đó Nhiều thuật toán đã được sử dụng dé đo lường sự giống nhau của người dùng hoặc sự tương đồng về mặt hàng trong các hệ thống giới thiệu Ví dụ, cách tiếp cận hàng xóm gan nhất (k-nearest neighbor k- NN) và Pearson Correlation được Allen triển khai lần đầu tiên.
Lọc cộng tác dựa trên giả định rằng những người đã đồng ý trong quá khứ sẽ đồng ý trong tương lai và rằng họ sẽ thích các loại mặt hàng tương tự như họ thích trong quá khứ.
Khi xây dựng mô hình từ hành vi của người dùng, sự phân biệt thường được thực hiện giữa các hình thức thu thập dữ liệu rõ ràng và tiềm an.
Ví dụ về thu thập dữ liệu rõ ràng bao gồm:
- _ Yêu cầu người dùng xếp hang một mục trên thang trượt.
- _ Yêu cầu người dùng tìm kiếm.
- Yêu cẩu người dùng xếp hạng một bộ sưu tập các mục từ yêu thích đến it yêu thích nhất.
- Trinh bày hai mục cho một người dùng và yêu cau anh ta / cô ấy chọn một trong số chúng tốt hơn.
- _ Yêu cẩu người dùng tạo danh sách các mục mà anh / cô ấy thích.
Ví dụ về thu thập dữ liệu ngầm bao gồm:
- Quan sát các mục mà người dùng xem trong cửa hàng trực tuyến.
- Phân tích thời gian xem mục / người ding.
- Luu giữ một bản ghỉ các mục mà người dùng mua trực tuyến.
- Lay danh sách các mục mà người dùng đã nghe hoặc xem trên máy tính của họ.
- Phân tích mang xã hội của người dùng và khám phá những lượt thích và không thích tương tự.
Hệ thong recommender so sánh dữ liệu đã thu thập với dữ liệu tương tự va khác nhau được thu thập từ những người khác và tính toán danh sách các mục được đề xuất cho người dùng Một số ví dụ thương mại và phi thương mại được liệt kê trong bai việt vê các hệ thong lọc cộng tác
Một trong những vi dụ nồi tiếng nhất về lọc cộng tác là lọc cộng tác theo từng mục (những người mua x cũng mua y), một thuật toán được phô biến rộng rãi bởi hệ thống gợi ý của Amazon.com Các ví dụ khác bao gồm:
Như đã dé cập chỉ tiết ở trên, Last fm đề xuất âm nhac dựa trên so sánh thói quen nghe của những người dùng tương tự, trong khi Readgeek so sánh xếp hạng sách cho các dé xuất.
Facebook , MySpace , LinkedIn và các mang xã hội khác sử dụng tính năng lọc cộng tác dé giới thiệu ban bè, nhóm và các kết nối xã hội khác (bằng cách kiểm tra mạng kết nối giữa người dùng và bạn bè của họ) Twitter sử dụng nhiều tín hiệu và tính toán trong bộ nhớ để giới thiệu cho người dùng của họ răng họ nên “theo doi”.
Các phương pháp lọc cộng tác thường gặp phải ba vấn đề: Cold Start, khả năng mở rộng va sự thưa thớt (sparsity):
Cold Start: Các hệ thong này thường yêu cau một lượng lớn dữ liệu hiện có của người dùng dé đưa ra các dé xuất chính xác.
Khả năng mở rộng: Trong nhiều môi trường mà các hệ thống này đưa ra các khuyến nghị, có hàng triệu người dùng và sản phẩm Do đó, một lượng lớn công suất tính toán thường là can thiết dé tính toán các gợi ÿ.
Sparsity: Số lượng các mặt hàng được bán trên các trang web thương mại điện tử lớn là cực kỳ lớn Những người dùng tích cực nhất sẽ chỉ đánh giá một tập con nhỏ của cơ sở dữ liệu tổng thé Do đó, ngay cả những mặt hang phổ biến nhất cũng có rat ít xếp hạng.
Một loại thuật toán lọc cộng tác cụ thể sử dụng hệ số ma trận hóa (matrix factorization), kỹ thuật xấp xi ma trận cấp thấp (low-rank matrix approximation).
Các phương pháp lọc cộng tác được phân loại là bộ lọc cộng tác dựa trên bộ nhớ và dựa trên mô hình Một ví dụ nồi tiếng về các phương pháp dựa trên bộ nhớ là thuật toán dựa trên người dùng và các phương pháp dựa trên mô hình là Kernel-Mapping Recommender.
2.1.2.3 Phương pháp tiếp cận hệ thông gợi ý lai (Hybrid recommender systems)
Nghiên cứu gần đây đã chứng minh răng một phương pháp lai, kết hợp lọc cộng tác và lọc dựa trên nội dung có thê hiệu quả hơn trong một số trường hợp Các phương pháp lai có thê được thực hiện theo nhiều cách:
- Bang cách đưa ra các dự đoản dựa trên nội dung và dựa trên lọc cộng tác riêng biệt và sau đó kết hợp chúng.
- _ Bằng cách thêm các khả năng dựa trên nội dung vào phương pháp cộng tác
- Bang cách thống nhất các phương pháp tiếp cận thành một mô hình.
Một số nghiên cứu thực nghiệm so sánh hiệu suất của phương pháp lai với các phương pháp cộng tác thuần túy và chứng minh răng các phương pháp lai có thể cung cấp các khuyến nghị chính xác hơn các phương pháp thuần túy Những phương pháp này cũng có thé được sử dụng dé khắc phục một số van đề thường gặp trong hệ thống gợi ý như Cold Start và vấn đề thưa thớt.
Netflix là một ví dụ tốt về việc sử dụng các hệ thống hybrid recommender Trang web đưa ra các đề xuất băng cách so sánh thói quen xem và tim kiếm của những người dùng tương tự (ví dụ: lọc cộng tác) cũng như bằng cách cung cấp những bộ phim có chung đặc điểm với những bộ phim mà người dùng đánh giá cao (lọc dựa trên nội dung).
Một loạt các kỹ thuật đã được dé xuất làm cơ sở cho các hệ thống gợi ý: các kỹ thuật hợp tác (collaborative), dựa trên nội dung (content-based), dựa trên kiến thức (knowledge-based) và nhân khẩu học (demographic techniques) Mỗi kỹ thuật này đều có những thiếu sót, như vấn đề Cold Start cho các hệ thống cộng tác và dựa trên nội dung (phải làm gì với người dùng mới với ít xếp hạng) và tắc nghẽn kỹ thuật tri thức (knowledge engineering bottleneck) trong các phương pháp dựa trên tri thức.
Một hệ thống gợi ý lai là một hệ thống trong đó kết hợp nhiều kỹ thuật với nhau dé đạt được một số sức mạnh tông hợp giữa chúng.
Rating prediction 1n
Việc xác định mức độ quan tâm cua 1 user lên 1 item dựa trên các user gần nhất (neighbor user) tương tự phương pháp K-nearest neighbors (KNN) Tương tự như KNN, trong CF, missing rating cũng được xác định dựa trên thông tin về k neighbor user Tất nhiên chúng ta chỉ quan tâm tới các user đã rate item đang xét. Predicted rating thường được xác định là trung bình cộng trọng số của các rating đã chuẩn hoá Có 1 điểm cần lưu ý, trong KNN, các trọng số được xác định dựa trên khoảng cách giữa 2 điểm, và các khoảng cách này là các số không âm Trong khi đó, trong CF, các trong số được xác định dựa trên similarity giữa 2 user, những trọng số này có thé nhỏ hơn 0 như trong hình c).
Công thức phô biến được sử dụng dé dự đoán rating của u cho i là:
3zujeN(u,i) y,„ simu, uj) ujEN(u,t) Bead |
Trong đó N(u, i) là tập hop k user trong neighborhood (tức là có similarity cao nhat) của u va đã rate 1 Hình d) thể hiện việc điền các giá tri còn thiếu trong ma trận chuẩn hoá Các 6 màu nền đỏ thé hiện các giá tri dương, tức các item mà có thể user đó quan tâm Ở đây, ta lay ngưỡng bang 0, ta cũng có thé hoàn toàn chọn các ngưỡng
21 khác 0 Một ví dụ về việc tính normalize rating cua ul cho il được cho trong hình e) với sô nearest neighbors là k = 2 Cac bước thực hiện như sau:
- Xac định các user đã rate il, đó là u0, u3, uS.
- - Xác định similarity của ul và các user này, ta nhận được 0.83, -0.40, - 0.23.
Hai (k=2) giá trị lớn nhất là 0.83 và -0.23 tương ứng với u0 và u5
- - Xác định các normalized rating của u0 và u5 cho il, ta thu được 2 giá tri lần lượt là 0.75 và 0.5
Việc hệ thống quyết định gợi ý item nào cho mỗi user có thé được xác định bằng nhiều cách khác nhau Có thê sắp xếp các unrate item theo thứ tự từ lớn đến bé của các predicted rating, hoặc chỉ chọn các item có normalized predicted rating dương — tương ứng với việc user này có nhiêu khả năng thích hơn.
Hệ thống thông báo (Notification system) .c.ceccscesessessesesesseseesesseesessesseaee 22 2.3 H6 thong Chat 8n 4 ,ÔỎ 23 PA 2n
Django Channels - c2 3c 1321111911 11911 9 11 111 1 111v kg rưy 25 1 Phạm vi va sự kiện (Scope and event) .- ô+ +-<++sxe+sses 26 2 0u on
Channels kết hợp với chế độ xem bat đồng bộ gốc của Django, cho phép các dự án Django xử lý không chỉ HTTP mà còn cả các giao thức yêu cầu kết nối lâu dài
- WebSockets, MQTT, chatbots, amateur radio v.v.
Django channels thực hiện điều nay trong khi van giữ được tính đồng bộ và dễ sử dụng của Django, cho phép tự chọn cách viết mã - đồng bộ theo phong cách như style Django views, hoàn toàn không đồng bộ hoặc kết hợp cả hai Trên hết, Django channels cung cấp tích hợp với hệ thống xác thực của Django, session system và hơn thé nữa, giúp việc mở rộng dự án HTTP — only sang các giao thức khác dễ dàng hơn bao giờ hết.
Channels cũng kết hợp kiến trúc hướng sự kiện này với channel layers, một hệ thống cho phép dễ dàng giao tiếp giữa các quy trình và tách dự án thành các quy trình khác nhau.
VIEW CONSUMER BACKGROUND FUNCTION (WEBSOCKET) PROCESSES
Hinh 2 2 Django channel workflow (https://heroku-blog- files.s3.amazonaws.com/posts/1473343845-django-wsgi.png)
2.3.2.1 Pham vi và sự kiện (Scope and event)
Channels và ASGI (Asynchronous Server Gateway Interface) chia các kết nỗi đến thành hai thành phan: phạm vi va chuỗi sự kiện.
Scope là một tập hợp các chi tiết về một kết nói đến - chăng hạn như đường dẫn mà một yêu cầu web được thực hiện từ đó hoặc địa chỉ IP sốc của WebSocket hoặc người dùng nhắn tin cho một chatbot - và vẫn tồn tại trong suốt kết nối. Đối với HTTP, scope chỉ kéo dài một yêu cầu duy nhất Đối với WebSockets, nó tồn tại trong suốt thời gian tồn tại của socket (nhưng thay đổi nếu socket đóng va kết nối lại). Đối với các giao thức khác, nó thay đôi dựa trên cách viết thông số ASGI của giao thức; ví dụ: có khả năng một giao thức chatbot sẽ mở một phạm vi trong toàn bộ cuộc trò chuyện của người dùng với bot, ngay cả khi giao thức trò chuyện cơ bản là không trạng thái.
Trong suốt thời gian tồn tại của scope này, một loạt các sự kiện xảy ra Chúng đại diện cho các tương tác của người dùng - chăng hạn như thực hiện một yêu cầu
HTTP hoặc gửi một WebSocket frame Channels hoặc ứng dụng ASGI sẽ được khởi tạo một lần cho mỗi phạm vi và sau đó được cung cấp luồng sự kiện xảy ra trong phạm vi đó dé quyết định phải làm gì với phạm vi này.
- Nguoi dùng thực hiện một HTTP request
- Chúng ta mở một phạm vi loại http mới với các chỉ tiết về request’ path, method, headers v.v.
- Ching ta gửi một http.request event với nội dung HTTP body
- Channels hoặc ứng dung ASGI xử lý điều này và tạo sự kiện http.response đề gửi lại trình duyệt và đóng kết nối.
- HTTP request/response đã hoàn thành và scope bị hủy
Một Consumer là một đơn vi cơ bản của Channels code Khi có một request hoặc một socket mới, Channels sẽ tuân theo routing tables — tìm consumer phù hợp cho kêt nôi dén va bat dau một bản sao của nó.
27 Điều này có nghĩa là, không giống như Django view, consumer là long- running Consumer cũng có thể là short-running — xét cho cùng, các http request cũng có thé được xử lý thông qua consumer - nhưng chúng được xây dựng dựa trên ý tưởng tồn tại trong một thời gian ngắn (bằng với thời gian tồn tại của scope như mô tả ở trên)
Message Security trong Chat App dựa trên Massey Omura Algorithm
Chat app là một trong những ứng dụng được người dùng sử dụng thường xuyên nhất hiện nay dé phân phối tin nhắn Tin nhắn được phát tán có thể là tin nhắn bí mật hoặc không Tin nhắn được phát tán có thể là tin nhắn bí mật hoặc không Không phải tất cả các ứng dụng trò chuyện hiện đều có công cụ bảo mật tin nhắn, do đó, các cuộc tấn công và lạm dụng tin nhắn của những người khác không có quyền truy cập xảy ra thường xuyên Sự sử dụng kỹ thuật bảo mật tin nhắn trong ứng dụng trò chuyện là can thiết dé đảm bảo quyền truy cập và tính nguyên bản của tin nhắn Kỹ thuật mật mã là một trong những kỹ thuật phô bién được sử dung trong việc bao mật dữ liệu hoặc thông điệp bang cách mã hóa thông điệp góc thành các ký tự khác có thê ân mẫu và ý nghĩa của thông điệp góc.
Kỹ thuật mật mã dựa trên thuật toán khóa gồm hai loại là mật mã đối xứng và không đối xứng Thuật toán Massey-omura là một trong những thuật toán mật mã không đối xứng, trong đó khóa được sử dụng trong quá trình mã hóa khác với khóa được sử dụng trong quá trình giải mã Thuật toán Massey-omura hoạt động dựa trên khái niệm về giao thức ba bước trong đó khóa được sử dụng trong quá trình mã hóa hoặc giải mã được tạo bởi người gửi và người nhận dựa trên giá trị được cả hai đồng ý Các phép toán modulo hàm mũ và số nguyên tô được ca hai bên sử dụng dé tạo ra các khóa được sử dụng Khái niệm về giao thức ba lần trong thuật toán này có thê duy trì tính bảo mật của các khóa được sử dụng cả trong quá trình mã hóa và giải mã thông điệp Mọi tin nhắn được phân phối qua ứng dụng trò chuyện sẽ được ứng dụng
28 trò chuyện tự động mã hóa bằng cách sử dụng các giá trị chính đã được thiết lập bởi người gửi và người nhận đang giao tiếp Việc triển khai thuật toán này được kỳ vọng sẽ giảm thiêu việc các bên không được cấp quyền truy cập lạm dụng các tin nhắn đã được phân phối thông qua các ứng dụng trò chuyện.
Kỹ thuật mật mã là một kỹ thuật có thể được sử dung dé bảo mật thông tin bí mật Kỹ thuật mật mã bảo mật một thông điệp không được tiết lộ bằng cách mã hóa nó thành một dạng khác mà không còn có thé hiểu được tính nguyên gốc của nó Các mục tiêu cần đạt được khi áp dụng các kỹ thuật mật mã là tính bảo mật (không thể hiểu được thông điệp), tính toàn vẹn (tính xác thực của thông điệp), xác thực (danh tính ban đầu của người gửi hoặc người nhận) và không từ chối (người nhận hoặc người gửi không thê phủ nhận rằng người đó đã gửi hoặc nhận tin nhắn)
2.3.3.3 Asymmetric Key (Khóa bat đối xứng)
Khóa bất đối xứng là một trong những loại khóa nằm trong cryptography algorithm Khóa bat đôi xứng loại thuật toán mã hóa sử dụng các khóa khác nhau trong cả quá trình mã hóa và giải mã Loại khóa đối xứng này thường được biết đến với tên gọi là khóa công khai (hay public - key) Một khóa bất đối xứng sẽ tạo một khóa công khai để mã hóa thông điệp và một khóa bí mật là cặp khóa công khai và có thê sử dụng cho việc giải mã thông điệp Tiến trình tạo khóa của một khóa bất đối xứng liên quan đến các bên giao tiếp, vì vậy có thé đảm bảo rằng khóa bí mật được sử dụng để giải mã sẽ an toàn hơn Các thuật toán khóa bất đối xứng thường được biết đến nhiều như RSA, El-Gamal, Massey-omura, Elliptic Curve, v.v.
Khóa sẽ chỉ được tạo bởi người gửi và người nhận dựa trên một số nguyên tố được cả hai đồng ý Quá trình mã hóa dựa trên khái niệm three-pass sẽ được thực hiện ba lần quá trình trao đồi thông điệp bat đầu từ quá trình mã hóa bởi người gửi, quá trình mã hóa bởi người nhận và quá trình mã hóa lại bởi người gửi Cả hai bên
(người gửi và người nhận) sử dụng khóa riêng của họ trong quá trình mã hóa và giải ma
Massey-omura là một thuật toán hoạt động với khóa bắt đối xứng và được phát triển dựa trên khái niệm của Three-pass Protocol Three-pass Protocol hoạt động dựa trên khái niệm rằng mỗi bên (người nhận và người gửi thông điệp) sử dụng khóa riêng của họ để thực hiện quá trình mã hóa và giải mã thông điệp Một trong những ưu điểm của thuật toán massey-omura là độ khó của phép tính logarit rời rạc tương tự như các thuật toán khóa công khai khác như RSA và các thuật toán khác Thuật toán
Massey-omura khiến quá trình mã hóa thông điệp được diễn ra ba lần thông qua Three-pass Protocol Mục đích chính là để người gửi và người nhận có thé đồng bộ hóa các khóa mà họ đang sử dụng quy trình mã hóa và giải mã.
2.3.3.6 Các bước ma hóa và giải ma dựa trên thuật toán Massey Omura
Có 3 tiến trình trong thuật toán Massey Omura đó là quá trình tạo khóa công khai và khóa bí mật, quá trình mã hóa và giải mã Các bước của thuật toán massey-omura là: [3]
1 Người nhận và người gửi đã đồng ý giá trị số nguyên tố lớn hơn (p) lớn hon
2 Người gửi (bước đầu tiên): a Xác định một giá trị được sử dụng dé thực hiện quả trình mã hóa dau tiên Giả sử eA trong đó 1