Concept of Communication

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Stack.
Advertisements

List ADTs By Pantharee S..
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
Programming & Algorithm
Mr. Winai Purikasem. Introduction  Hypertext model  Use of hypertext in World Wide Web (WWW)  WWW client-server model  Use of TCP/IP protocols in.
CHAPTER 1 INTRODUCTION TO JAVA WEB PROGRAMMING Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of.
อสมการเชิงเส้นตัวแปรเดียว
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
การเพิ่ม ลบ จำกัดสิทธิ์ User จัดทำโดย 1. นายธัชนนท์ ต๊ะต้องใจ 1-B เลขที่ 4 2. นาย ไพบูรณ์ อินทะซาว 1-B เลขที่ 23.
คณิตศาสตร์พื้นฐาน ค ชั้นมัธยมศึกษาปีที่ 3 โดย ครูชำนาญ ยันต์ทอง
Starting fire with water การทำให้เกิดไฟด้วยน้ำ Or how I nearly burnt my car down หรือ ฉันทำให้รถเกือบจะลุกไหม้ได้อย่างไร.
OSI 7 LAYER.
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
Introduction to Computer Organization and Architecture
Database & DBMS Architecture วรวิทย์ พูลสวัสดิ์. 2 2 ฐานข้อมูล (Database) - Data and its relation - Databases are designed to offer an organized mechanism.
เทคโนโลยีสำหรับ โปรแกรมประยุกต์บนเว็บ ตอนที่ 2
PHP FRAMEWORK – Web Programming and Web Database Asst. Prof. Dr. Choopan Rattanapoka.
Timed Math Quiz. โปรแกรมสุ่มคำนวณเลขแข่งกับ เวลา.
Eigenvalue & Eigenvector. 1. Get to know: Eigenvalue & Eigenvector 2. Estimation of Eigenvalue & Eigenvector 3. Theorem.
1 exit() and break C++ provides a way to leave a program early (before its natural finish) with the exit() function. The format of exit() is as follows:
Collections. Data structures Data Structures ( โครงสร้างข้อมูล ) เกิดจากการ นำข้อมูลขั้นพื้นฐานที่แบ่งแยกไม่ได้ (atomic data type) เช่น int, char, double.
Practice File. Our Executive Coaching Program is proven effective. Our customer survey show ROI of coaching can be as high as 3 times the investment value.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
Internet Programming  .
Chapter 8 WWW.
C# Communication
Confidentiality อาจารย์ ธนัญชัย ตรีภาค ภาควิชาวิศวกรรมคอมพิวเตอร์
SQL Structured Query Language.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 8 : TCP/IP และอินเทอร์เน็ต Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
IP-Addressing and Subneting
IP-Addressing and Subneting
เครือข่ายคอมพิวเตอร์
Toward National Health Information System
C# Part 0: Introduction to Revision Control
อาจารย์อภิพงศ์ ปิงยศ บทที่ 7 : TCP/IP และอินเทอร์เน็ต Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
การพัฒนาการใช้งานในระบบเว็บ
สมการเชิงเส้น (Linear equation)
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
นำเสนอเรื่อง Adjective clause
อาจารย์อภิพงศ์ ปิงยศ บทที่ 5 : การตรวจจับข้อผิดพลาด การควบคุมการไหลของข้อมูล และการควบคุมข้อผิดพลาด Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
การออกแบบระบบ System Design.
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
บทที่ 1 ความรู้เบื้องต้น เกี่ยวกับระบบสารสนเทศ
อาจารย์อภิพงศ์ ปิงยศ บทที่ 4 : Cryptography & Steganography Part2 สธ412 ความมั่นคงของระบบสารสนเทศ อาจารย์อภิพงศ์ ปิงยศ
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
Asst.Prof. Dr.Surasak Mungsing
JSON API Pentaho User Manual.
Software Engineering ( )
คำสั่ง Create , Insert, Delete, Update
The Collections Framework
Data storage II Introduction to Computer Science ( )
Binary Numbers Hexadecimal Numbers
Method and Encapsulation
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
Data storage II Introduction to Computer Science ( )
บทที่ 2 ทฤษฎีบทพีทาโกรัส.
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
“เคลื่อนไปสู่ชีวิตใหม่ ตอนที่ 2” Moving Into the Newness of Life
Injection.
OPERATOR ภาษาปาสคาล (Pascal)
2 โครงสร้างข้อมูลแบบสแตก (STACK).
ตัวแบบข้อมูล (Data Modeling)
ฟังก์ชันของโปรแกรม Computer Game Programming
Decision: Single and Double Selection (if and if-else statement)
การวิเคราะห์และออกแบบขั้นตอนวิธี
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 12: เทคนิคการออกแบบขั้นตอนวิธีตอนวิธี Dynamic.
Computer Game Programming
ใบสำเนางานนำเสนอ:

Concept of Communication โดย อาจารย์อัครเดช วัชระภูพงษ์ สาขาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ สถานบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง

HTTP HTTP: Hypertext Transfer Protocol - Web’s application layer protocol - Client/Server Model - Client : browser that requests, receives, “displays” Web objects - Server : Web server sends objects in response to requests

HTTP(CONTINUED) USES TCP - Client initiates TCP connection (creates socket) to server, port 80 - Server accepts TCP connection from client - HTTP messages (application layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) - TCP connection closed HTTP is “stateless” - Server maintains no information about past client requests

HTTP REQUEST MESSAGE - Two types of HTTP message: request, response - ASCII (human-readable format)

HTTP REQUEST MESSAGE(CONTINUED)

HTTP METHOD TYPES - Get : retrieve data identified by request URL, submit form data to server - Post : send data to the server - Head : like Get method but server returns only header - Put : uploads file in entity body to path specified in URL field - Delete : deletes file specified in the URL field

HTTP RESPONSE MESSAGE

HTTP METHOD TYPES(CONTINUED) HTTP VERSION 1.0 - GET - POST - HEAD HTTP VERSION 1.1 - GET - POST - HEAD - PUT - DELETE

Web API Web Application Programming Interface a defined set of HTTP request messages along with a definition of the structure of response messages, typically expressed in JSON or XML While "web API" is sometimes considered a synonym for web service, the Web 2.0 applications typically have moved away from SOAP-based web services towards more direct REST-style communications.

REST REpresentational State Transfer a style of software architecture for distributed systems

Key goals Scalability of component interactions Generality of interfaces Independent deployment of components Intermediary components to reduce latency, enforce security and encapsulate legacy systems

Constraints The REST architectural style describes the following six constraints applied to the architecture, while leaving the implementation of the individual components free to design

Constraints Client-server Stateless Cacheable Layered System Code on demand (optional) Uniform interface

It is a collection of resources, with four defined aspects: RESTful Web APIs a web API implemented using HTTP and the principles of REST. It is a collection of resources, with four defined aspects:

the base URI for the web service, such as  http://example.com/resources/the  Internet media type of the data supported by the web service. This is often XML but can be any other valid Internet media type providing that it is a valid hypertext standard. the set of operations supported by the web service using  HTTP methods (e.g., GET, PUT, POST, or DELETE). The API must be hypertext driven.

RESTful Web Service HTTP methods Resource GET PUT POST DELETE Collection URI, such as http://example.com/resources/ List the URIs and perhaps other details of the collection's members. Replace the entire collection with another collection. Create a new entry in the collection. The new entry's URL is assigned automatically and is usually returned by the operation. Delete the entire collection. Element URI, such ashttp://example.com/resources/item17 Retrieve a representation of the addressed member of the collection, expressed in an appropriate Internet media type. Replace the addressed member of the collection, or if it doesn't exist,create it. Treat the addressed member as a collection in its own right and create a new entry in it. Delete the addressed member of the collection.

JSON JavaScript Object Notation a text-based open standard designed for  human-readable data interchange

MIME Type "application/json"

Data types, syntax and example Number (double precision floating-point format  String (double-quoted Unicode, with backslash escaping) Boolean (true or false) Array (an ordered sequence of values, comma-separated and enclosed in square brackets

Object (an unordered collection of key:value pairs with the ':' character separating the key and the value, comma-separated and enclosed in curly braces; the keys must be strings and should be distinct from each other) null (empty)

Example { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" },

Example (cont.) "phoneNumber": [ { "type": "home", }, "type": "fax", "number": "646 555-4567" } ]

Rivest, Shamir and Adelman RSA Algorithm Rivest, Shamir and Adelman

. Math Behind RSA

Prime Numbers ... จำนวนเฉพาะคือจำนวนที่นำตัวเลขมาหารได้ลงตัวคือ 1 และตัวมันเอง เท่านั้น เช่น 10 ไม่ใช่จำนวนเฉพาะ เพราะมีตัวเลขที่นำมาหารลงตัวได้คือ 1, 2, 5 and 10 11 เป็นจำนวนเฉพาะ เพราะมีเพียง 1 และ 11 เท่านั้นที่นำมาหารลงตัวได้ ตัวเลขที่นำมาหารลงตัวเรียกว่า ตัวประกอบ (factors) กระบวนการหาตัวประกอบ เรียกว่า Factoring

กระบวนการ Factoring การหาตัวประกอบของ 15 สามารถทำได้โดยง่ายคือ 3 * 5. แต่การหาตัวประกอบของตัวเลขมากๆ เช่น 6,320,491,217 หรือตัวเลขที่มีขนาด มากกว่า 200 digits จะทำอย่างไร ? สำหรับตัวเลขที่มีจำนวนมากๆ จะใช้เวลาในการแยกตัวประกอบนาน

Modular Math Modular math หมายถึงตัวเลขที่เป็นจำนวนเต็มที่ไม่ติดลบ ที่มีค่าน้อยกว่า ตัวหาร ในกรณีของการ mod n, ผลลัพธ์ที่ได้จะมีค่าอยู่ในช่วง 0 ถึง (n - 1)

Modular Arithmetic a = b mod (m) หมายถึง a หารด้วย m แล้วเหลือเศษคือ b. เช่น 11 = 1 mod (5) 20 = 2 mod (6)

Modular Inverse Modular Inverse ของ b mod (m) คือค่า b-1 เมื่อ bb-1 = 1 mod (m) เช่น 7 กับ 343 ในการ mod (2400) 7 * 343 = 2401 7 * 343 = 1 mod (2400)

Relatively Prime ตัวเลข 2 ตัวเป็น relatively prime เมื่อตัวเลขทั้งสองตัวมีตัวประกอบร่วมคือ 1 เช่น 10 กับ 21 เป็น relatively prime รายการตัวประกอบของ 10 คือ 1, 2, 5 และ 10 รายการตัวประกอบของ 21 คือ 1, 3, 7 และ 21 10 และ 21 มีตัวประกอบร่วมคือ 1

เมื่อ p เป็นจำนวนเฉพาะ j(p) = (p ‑ 1). Euler’s phi-function ฟังก์ชั่น j(n) คือจำนวน relatively prime ของตัวเลขที่น้อยกว่า n กับค่า n เช่น j(6) = 2 โดย ตัวเลขที่น้อยกว่า 6 คือ (1, 2, 3, 4 and 5) มีเพียง 1 และ 5 เท่านั้นที่เป็น relatively prime กับ 6 ในกรณีของ j(7) เมื่อ 7 เป็นจำนวนเฉพาะจำนวนที่น้อยกว่า 7 ทุกตัวจึงเป็น relatively prime กับ 7 ดังนั้น j(7) = 6. ในกรณีของจำนวนเฉพาะอื่นๆ จะได้ เมื่อ p เป็นจำนวนเฉพาะ j(p) = (p ‑ 1).

Exponentiation Exponentiation = เลขยกกำลัง 23 = 2 * 2 * 2 = 8. (2 = base, 3 = exponent.) (bx) * (by) = bx+y (bx)y = bxy

Exponential Period modulo n j(n) มีคุณสมบัติเป็น "exponential period" modulo n สำหรับตัวเลขที่เป็น relatively prime กับ n. สำหรับตัวเลข a < n ถ้า a เป็น relatively prime กับ n แล้ว a j(n) mod n = 1. ดังนั้น a j(n) *a = a j(n)+1 mod n = a. เช่น n=5 จะได้ j(5) = 4. กำหนดให้ a = 3 a j(n) mod n = 34 = 3 * 3 * 3 * 3 mod 5 = 1

build our Public Key Cryptosystem กำหนดให้ c = me mod p หลังจากนั้น คำนวณค่า cd mod p จะมีค่าเท่ากับ (me)d mod p ซึ่งเทียบเท่า med mod p สมการดังกล่าวจะนำมาใช้ในกระบวนการเข้ารหัสต่อไป

Using it to build our PK Cryptosystem กรณีที่ 1 : หากมีการกำหนดค่า c, e และ p โดย c = me mod p. ให้หาค่า d ซึ่ง cd mod p = 1.” จะสามารถทำได้โดยง่ายโดยการหา d ที่ทำให้ e * d = j(p). เพราะ cd mod p = (me)d = med = mj(p) = 1 mod p กรณีที่ 2 : หากกำหนดค่า c, e and p โดย c = me mod p โดยให้หาค่า d ซึ่ง cd mod p = m จะสามารถทำได้โดยง่ายโดยการหาe * d = j(p) + 1. เพราะ cd mod p = (me)d = med = mj(p)+1 = m mod p

Using it to build our PK Cryptosystem จากสมการที่ผ่านมา จึงสามารถกำหนดค่าจำนวนเฉพาะ p และเลือก public exponent e เป็น Public Key จาก Euclidian algorithm สามารถกำหนดค่า d ซึ่งเป็น inverse ของ e เมื่อ modulo j(p) คือ (p ‑ 1). และเก็บ d ไว้เป็น private key เมื่อต้องการส่งข้อมูล m สามารถเข้ารหัสข้อมูล c โดย c = me mod p. เมื่อต้องการถอดรหัสหา m สามารถคำนวณโดย m = cd mod p.

One Change ... แต่กระบวนการดังกล่าวมีปัญหาบางอย่างคือ private key (d) ได้จากการคำนวณ (p ‑ 1) เมื่อ p เป็น public ทุกคนจึง สามารถคำนวณ private key ได้. RSA algorithm แก้ปัญหาดังกล่าวโดยใช้คุณสมบัติการคูณของ Euler’s phi‑function. โดย เมื่อ p และ q เป็น relatively primeจะได้ j(pq) = j(p)j(q) ดังนั้นถ้า p และ q เป็นจำนวนเฉพาะ และ n = pq จะได้ j(n) = (p ‑ 1)(q ‑ 1)

Coming to RSA ... กระบวนการก่อนที่จะเป็น RSA เราจะใช้จำนวนเฉพาะ p เป็นตัว modulus. สำหรับ RSA จะหาตัวเลขจำนวนเฉพาะขนาดใหญ่สองตัว (p,q) และใช้ผล คูณของตัวเลขทั้งสอง n=pq เป็น modulus ถึงแม้ว่ารูปสมการจะเปลี่ยนไป แต่ยังสามารถใช้ขั้นตอนเดิมคือ เลือก public exponent e และใช้ extended Euclidian algorithm เพื่อหา d โดย กระบวนการหา inverse ของ e เมื่อ modulo j(n) ซึ่งจะได้ความสัมพันธ์คือ e * d = 1 mod (p ‑ 1)(q ‑ 1) โดยคู่ของ (n, e) จะใช้เป็น public key และ d จะใช้เป็น private key ข้อมูลจำนวนเฉพาะ p และ q ต้องเก็บเป็นความลับหรือทำลายทิ้ง

cd mod n = (me)d = med = m1 = m mod n Coming to RSA ... เมื่อ m คือข้อมูล และ c คือ ciphertext จะได้ c = me mod n m = cd mod n ซึ่งต้องทราบ d จึงถอดรหัสได้ ความสัมพันธ์ของค่าต่างๆ คือ cd mod n = (me)d = med = m1 = m mod n

Coming to RSA ... หากต้องการทราบ private key ต้องทราบ ค่า j(n) แต่การจะทราบ j(n) ได้ต้องทราบ p และ q เมื่อ p และ q เป็นจำนวนเฉพาะขนาดใหญ่มาก ค่าย้อนกลับจึงทำได้ยากมาก

Coming to RSA ... ค่า e จึงต้องเป็น relatively prime กับ (p ‑ 1)(q ‑ 1) เนื่องจากหากไม่ เป็นจะหาค่า modular inverse ไม่ได้ ไม่มีการกำหนดกระบวนการตายตัวสำหรับการหาค่า e ในการทำงานจริง ค่า e ที่นิยมใช้งานคือ 3 และ 65,537

RSA Algorithm เลือกจำนวนเฉพาะขนาดใหญ่ p และ q และคำนวณผลคูณ n คำนวณ z = (p-1)(q-1) เลือก e ที่เป็น relative prime กับ z ซึ่งจะใช้เป็นส่วนของ key. คำนวณค่า d โดยผลคูณของ e และ d จะ สอดคล้องกับ e * d = 1 mod (p ‑ 1)(q ‑ 1)

RSA Algorithm โดยการคาดการณ์ว่า d จะสามารถหาได้จากการทราบ p และ q เท่านั้น และ d ไม่สามารถหาได้จากค่า e ทำให้สรุปได้ว่าค่า private key จะคาดเดา หรือค้นหาได้ยาก แต่ยังคงเป็นการคาดการณ์ที่ต้องหาข้อสรุปในระยะยาว e และ n ถูกใช้เป็น public key ส่วน d และ n ถูกใช้เป็น private key.

RSA Algorithm

RSA Example p = 3 q = 11 n = p X q = 33 -- This is the modulus z = (p-1) X (q -1) = 20 -- This is the totient function (n). There are 20 relative primes to 33. What are they? 1, 2, 4, 5, 7, 8, 10, 13, 14, 16, 17, 19, 20, 23, 25, 26, 28, 29, 31, 32 d = 7 -- 7 and 20 have no common factors but 1 7e = 1 mod 20 e = 3 C = Pe (mod n) P = Cd (mod n)

RSA Example

jQuery JavaScript Library The Write Less, Do More

jQuery a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.

jQuery UI a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.