Chương 1 Tổng quan Mục tiêu - Trình bay lịch sử phát triển và những thành tựu của máy tính - Mô tả được các thành phần cơ bản của một máy tính - Trình bày các cách biến đổi cơ bản của hệ thống số, các bảng mã thông dụng được dùng để biểu diễn các ký tự - Chủ động và sáng tạo trong học tập 1. Các thế hệ máy tính Thế Khoảng hệ thời gian Công nghệ 1 1940 – 1956 Đèn điện tử chân không(Vacuum Tubes ) 2 1956 – 1963 Transistors 3 1964 – 1971 Mạch tích hợp (Integrated Circuits) 4 1971 – nay Vi xử lý (Microprocessors) 1.Thế hệ 1 Hình 1. Thế hệ máy tính 1 7 a.Máy tính ENIAC Electronic Numerical Integrator and Computer Do John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết kế. Đặc điểm: Dài 20 mét, cao 2,8 mét và rộng vài mét, nặng 30 tấn 18.000 đèn điện tử và 1.500 rơle Tiêu thụ 140KW giờ 5000 phép cộng/giây Xử lý theo số thập phân Lập trình bằng cách thiết lập vị trí của các chuyển mạch và các cáp nối.Máy tính von Neumann Máy tính IAS (Princeton Institute for Advanced Studies) Máy tính von Neumann là cơ sở cho kiến trúc máy tính hiện đại 1.
Thế hệ 2 Hình 1.2 Máy tính Von Neuman 8 Thay thế đèn điện tử bằng transistor lưỡng cực Kích thước máy tính giảm, rẻ tiền hơn, tiêu tốn năng lượng ít hơn Nổi tiếng nhất là máy PDP-1 của DEC IBM 7094 Ngôn ngữ lập trình cấp cao (FORTRAN) và hệ điều hành kiểu tuần tự (Batch Processing) được sử dụng 1. Thế hệ 3 Hình 1.3 máy tính thế hệ 3 Nhiều transistor và các phần tử khác được tích hợp trên một chip bán dẫn Mạch tích hợp mật độ thấp SSI (Small Scale Integration) chứa vài chục transistor 9 Mạch thích hợp mật độ trung bình MSI (Medium Scale Integration) chứa vài trăm transistor Máy tính đa chương trình và hệ điều hành chia thời gian được dùng 1. Máy tính thế hệ 4 Hình 1. máy tính thế hệ 4 Mạch thích hợp mật độ rất cao VLSI (very large scale integrated) có thể sắp xếp hàng triệu transistor Cấu tạo Bộ vi xử lý (microprocessor) chứa cả phần thực hiện và phần điều khiển của bộ xử lý Vi mạch điều khiển tổng hợp (chipset) Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo được dùng rộng rãi Các kỹ thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển: kỹ thuật ống dẫn (pipeline), kỹ thuật vô hướng (super scalar), xử lý song song mức độ cao 1.
Phân loại máy tính - Máy chủ (Server) - Máy để bàn (Desktop) - Máy trạm (Workstation) - Thiết bị di động (Portable Devices) 10 1. Máy chủ Là máy tính có công năng cao (high performance), cung cấp dịch vụ cho nhiều người dùng: mail, web, lưu trữ file, … Máy chủ thường có nhiều vi xử lý (CPU), dung lượng bộ nhớ RAM lớn, ổ đĩa dung lượng lớn Hình 1. Máy để bàn Hỗ trợ nhiều lựa chọn và năng lực khác nhau. Cho phép chọn lựa chọn nhiều loại thùng máy (case), nguồn, đĩa cứng, card màn hình, thiết bị ngoại vi, … Thường được dùng để chạy các ứng dụng như soạn thảo văn bản, bảng tính và các ứng dụng mạng như email, duyệt web Hình 1.
Máy trạm Tương tự như máy tính để bàn nhưng có cấu hình cao hơn Được thiết kế để chạy các ứng dụng đặc biệt như CAD (Computer Aided Design) 11 Thường có khả năng đồ họa cao, có màn hình rộng hoặc nhiều màn hình Hình 1. Thiết bị di động Có nhiều loại thiết bị di động khác nhau về kích thước, khả năng đồ họa và sức mạnh: Máy tính xách tay Máy PDA (Personal Digital Assistant) Điện thoại di động Hình 1.9 Thiết bị di động 1. Thông tin và sự mã hóa thông tin 1.Mã hóa Trong ngành mật mã học, mã hóa là quá trình dùng để biến thông tin từ dạng này sang dạng khác và ngăn những người không phận sự tiếp cận vào thông tin đó. Bản thân việc mã hóa không ngăn chặn việc thông tin bị đánh 12 cắp, có điều thông tin đó lấy về cũng không xài được, không đọc được hay hiểu được vì đã được làm biến dạng đi rồi.
Ví dụ:: bạn có thư tỏ tình muốn gửi cho cô đồng nghiệp ngồi ở phòng bên, nhưng ngặt cái phòng bên có rất nhiều người có thể nhìn thấy bức thư đó trước cả cô gái bạn thích. Ngay cả khi bạn đã giao thư tận tay cho cô ấy rồi thì vẫn có khả năng những người kia sẽ bới móc lại bức thư ra mà đọc. Vì thế để việc tỏ tình diễn ra an toàn và bí mật, bạn mã hóa bức thư tỏ tình theo cách mà chỉ bạn và cô gái kia hiểu, những người khác nhìn vào chỉ thấy một đống kí tự loằng ngoằng, rối rắm. Mã hóa sẽ mang lại tính an toàn cao hơn cho thông tin, đặc biệt là trong thời đại Internet ngày nay, khi mà thông tin phải đi qua nhiều trạm trung chuyển trước khi đến được đích.
Nếu không có mã hóa, khả năng thông tin của bạn sẽ bị ai đó xem trộm trong quá trình truyền tải rồi lợi dụng để làm việc xấu là hoàn toàn hiện hữu. Thử nghĩ đến việc bạn đang gửi tài liệu mật cho đồng nghiệp ở một thành phố khác, nếu bạn không mã hóa tài liệu đó thì có thể đối thủ cạnh tranh sẽ thấy được kế hoạch kinh doanh bí mật của công ty bạn và làm bạn mất đi doanh thu, thị trường. Về lý thuyết, bất kì thông điệp mã hóa nào cũng có thể bị giải mã mà không cần biết về thuật toán hoặc các khóa mã hóa (sẽ nói thêm ở bên dưới), vấn đề là mất bao lâu và nguồn lực tính toán cần thiết là như thế nào. Có những lúc để giải mã một tài liệu phải cần đến cả một siêu máy tính chạy liên tục 24 giờ mỗi ngày, 7 ngày mỗi tuần, 365 ngày một năm.
Khi đó thì thông tin giải mã ra không còn giá trị nữa nên không đáng để bỏ công sức, nguồn lực vào chuyện đó. Còn nếu đã biết về thuật toán hoặc khóa mã hóa thì người nhận có thể nhanh chóng giải mã trong tích tắc và không gặp bất kì trở ngại nào. Các loại mã hóa dữ liệu thông dụng Hiện có 4 biện pháp mã hoá dữ liệu thông dụng: a.Mã hóa cổ điển Mã hoá cổ điển là cách đơn giản nhất, tồn lại lâu nhất trên thế giới và không cần khóa bảo mật, chỉ cần người gửi và người nhận cùng biết về thuật toán này là được. 13 Ví dụ: nếu chúng ta dùng thuật toán đổi kí tự trong câu văn thành kí tự liền kề trong bảng chữ cái thì chữ “Tinh tế” sẽ biến thành “Ujoi uf”.
Người nhận khi nhận được chữ “Ujoi uf” thì chỉ việc dịch ngược lại là xong.10 mã hóa Tuy nhiên, giải pháp mã hóa này được xem là không an toàn, vì nếu một người thứ ba biết được thuật toán thì xem như thông tin không còn bảo mật nữa. Việc giữ bí mật thuật toán trở nên rất quan trọng, và không phải ai cũng có thể giữ bí mật đó một cách trọn vẹn. Có khả năng người đó sẽ rò rỉ ra, hoặc có ai đó ngồi giải ra thuật toán thì xem như chúng ta thua cuộc.Mã hóa một chiều (hash) Phương pháp này dùng để mã hóa những thứ không cần dịch lại nguyên bản gốc. Ví dụ, khi bạn đăng nhập vào Tinh tế, mật khẩu mà bạn nhập sẽ được chuyển thành một chuỗi dài các kí tự bằng một thứ gọi là hash function (tạm dịch: hàm băm).
Chuỗi này sẽ được lưu vào cơ sở dữ liệu, chứ không lưu mật khẩu thô của bạn nhằm tăng tính bảo mật. Lỡ hacker có trộm dữ liệu thì cũng chỉ thấy những thứ như FIiyXYB547bhvyuuUIbZ chứ không biết password thật của bạn là gì. Mỗi lần bạn đăng nhập, hash function sẽ “băm” password thật của bạn thành chuỗi kí tự rồi so sánh nó với cái trong cơ sở dữ liệu, nếu khớp thì đăng nhập tiếp, không thì báo lỗi. Chúng ta không có nhu cầu dịch ngược chuỗi nói trên ra lại thành password thật để làm gì cả.
14 Nói thêm về hash function, nhiệm vụ của nó là chuyển một chuỗi có độ dài bất kì thành chuỗi kí tự có độ dài cố định. Ví dụ, nếu bạn quy định chuỗi kí tự sau khi “băm” sẽ dài 10 kí tự thì dù đầu vào của bạn có bao nhiêu chữ đi nữa thì kết quả nhận được sẽ luôn là 10 và chỉ 10 kí tự mà thôi. Đặc điểm của hash function là trong cùng 1 điều kiện, dữ liệu đầu vào như nhau thì kết quả sau khi băm cũng sẽ y hệt như nhau. Nếu chỉ đổi một chút xíu thôi, có khi chỉ là 1 kí tự nhỏ thì chuỗi kết quả sẽ khác hoàn toàn.
Cũng vì vậy mà người ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu. Ví dụ, trước khi gửi một tập tin Word cho người bạn thì mình dùng mã hóa một chiều và tạo ra được chuỗi sau băm là DFYUBUfyeufuefu. Khi người bạn đó tải tập tin về máy, nếu nó băm và cũng nhận được chuỗi DFYUBUfyeufuefu thì có nghĩa là tập tin của mình không bị can thiệp bởi hacker, còn nếu kết quả khác thì có nghĩa là quá trình truyền tải có thể đã bị lỗi làm mất một phần dữ liệu, hoặc tệ hơn là có ai đó đã xén bớt hay thêm vào thứ gì đó rồi. Hiện nay, hai thuật toán hash function thường được dùng nhất là MD5 và SHA.
Nếu bạn tải tập tin trên mạng thì đôi khi sẽ thấy dòng chữ MD5 do tác giả cung cấp, mục đích là để bạn so sánh file đã tải về với file gốc xem có bị lỗi gì không.Mã hóa đối xứng (symmetric key encryption) Chúng ta bắt đầu đi tìm hiểu về việc bảo mật có dùng khóa. Khóa ở đây được gọi là “key”, nó là mấu chốt để thuật toán có thể nhìn vào mà biết đường mã hóa và giải mã dữ liệu. Cũng giống như cánh cửa nhà của bạn, nếu bạn có khóa thì bạn có thể nhanh chóng đi vào trong, còn không có khóa thì bạn vẫn có thể đục cửa hay 15 kêu thợ sửa khóa, nhưng sẽ tốn thời gian và công sức hơn. Mỗi chìa khóa cho mỗi ổ khóa trên thế giới là duy nhất với các đường rãnh không chìa nào giống chìa nào – key mã hóa cũng tương tự như vậy.
Ở phương pháp mã hóa đối xứng, chìa khóa để mã hóa và giải mã là như nhau nên người ta mới gọi là đối xứng, tiếng Anh là symmetric. Theo một số tài liệu thì mã hóa đối xứng là giải pháp được sử dụng nhất phổ biến hiện nay.