Information Safe
              Confidentiality
                    Modern cipher
Van Hoang Nguyen
Mail: startnewday85@gmail.com
Department of Computer Science
Faculty of Information Technology – Hanoi University of Agriculture.
Modern Ciphers

Block cipher?

    Stream cipher?
Modern Stream
   cipher?
Stream cipher
• Stream cipher xử lý plaintext theo từng bits hoặc
theo từng nhóm nhỏ(8bits)

• Stream cipher được xây dựng như sau:

      - Khóa đóng vai trò làm input cho bộ sinh số ngẫu
      nhiên(PNG)

      - Output của PNG được gọi là keystream

      - Keystream được tổ hợp với plaintext để tạo
      thành ciphertext

Thường chỉ áp dụng cho symmetric stream cipher!
Stream cipher
Stream cipher gồm hai loại:
    • Symmetric Stream cipher
           - Synchronous

           - UnSynchronous

           - Periodic


    • Asymmetric Stream cipher
           - Blum-Goldwasser probabilistic publickey encryption.
Stream cipher
Khi thiết kế stream cipher ta cần lưu ý
hai yếu tố sau:

      • Tính ngẫu nhiên của PNG


      • Key size
Stream cipher
• Nếu PNG thỏa mãn những yêu cầu đặt ra
trong thiết kế thì tính an toàn của stream
cipher là tương đương với block cipher

• Cài đặt của stream cipher thường đơn giản
và chạy nhanh hơn block cipher

• Stream cipher cần tránh việc sử dụng lại
khóa

• Nếu có được những tính chất của plaintext
thì stream cipher không được an toàn
Stream cipher
Ứng dụng của Stream cipher:

    • Mã hóa các dữ liệu ngẫu nhiên


    • Những ứng dụng tương tác đòi hỏi
    thời gian giải mã và mã hóa phải
    nhanh
RC4
• RC4 được thiết kế bởi Ronald
Rivest vào năm 1987


• Nền tảng của RC4 là phép
hoán vị ngẫu nhiên


• RC4 có cấu trúc đơn giản; dễ
để hiểu và phân tích
                                 Ronald L. Rivest
RC4
• RC4 cho phép khóa K có cỡ từ 1 tới 256
bytes(8-1024 bits)

• RC4 sử dụng hai vector 256 bytes
        T là vector tạm thời và S là vector trạng thái

• RC4 hoạt động như sau:
        1. Khởi tạo vector S
        2. Khóa K được sử dụng để khởi tạo vector T
        3. Vector T được sử dụng để hoán vị S
        4. Thực hiện sinh keystream và mã hóa(giải mã)
RC4
1. Khởi tạo vector S
       For i=0 to 255 do S[i]=i;
2. Khởi tạo vector T
       For i=0 to 255 do T[i]=K[i mode keylen];
3. Vector T được sử dụng để hoán vị S
       j=0;
       For i=0 to 255 do
           Begin
              j=(j+S[i]+T[i]) mode 256;
              swap(S[i],S[j]);
           End
RC4
 4. Sinh keystream(ks) và mã hóa(giải mã):
                 i,j=0;
                 While (true) do
                     Begin
                          i=(i+1) mode 256;
Mã hóa(giải mã) đơn
giản là sử dụng ks để     j=(j+S[i]) mode 256;
xor     với   plaintext
(ciphertext).             swap(S[i],S[j]);
                          t=(S[i]+S[j]) mode 256;
                          ks=S[t];
                      End
Operation mode for
   block cipher
Operation mode for block cipher
 • Một chế độ thi hành là một kỹ thuật nằm nâng cao
 hiệu quả của mật mã khối cho một loại ứng dụng cụ
 thể.
 • Các chế độ thi hành được định nghĩa trong FIPS PUB
 81 gồm có:
             - Electronic Code Book - ECB.

             - Cipher Block Chaining - CBC.

             - Cipher FeedBack - CFB.

             - Outer FeedBack - OFB.
             - Counter - CTR.
Electronic codebook Mode
ECB encryption:




 ECB là chế độ đơn giản nhất – sử dụng cùng một
  khóa để mã hóa tất cả các khối của plaintext.
Electronic codebook Mode
ECB decryption:
Electronic codebook Mode
Nhận xét về ECB mode:
    • ECB về bản chất giống hệt với monoalphabetic
    cipher, chỉ có điều bảng chữ cái của ECB phức tạp
    hơn.

    • ECB dễ dàng bị phá nếu plaintext lớn và có tính cấu
    trúc rõ ràng.


    • Do đó mà ECB thường dùng để mã hóa những
    plaintext ngắn như khóa bí mật.
Cipher Block Chaining Mode
CBC encryption:




  CBC sử dụng IV như một giá trị khởi tạo cho quá
             trình mã hóa và giải mã.
Cipher Block Chaining Mode
CBC decryption:
Counter Mode
 CTR encryption:




 Counter ban đầu được khởi tạo một giá trị nào đó. Sau mỗi
khối được mã hóa counter=counter+1 mod 2b với b là cỡ của
                          block.
Counter Mode
CTR decryption:
Counter Mode
Nhận xét về CTR mode:
  • Hardware effeciency: CTR cho phép mã và giải mã
  các khối một cách song song. CBC không thể thực hiện
  song song!

  • Software effeciency: Do tận dụng được lợi thế xử lý
  song song nên CTR sẽ chạy nhanh hơn.

  • Xử lý: Nếu bộ nhớ cho phép và vẫn đảm bảo được sự
  an toàn thì các output của khối mã hóa có thể được
  tính trước => từ đó mà tốc độ mã hóa sẽ rất nhanh.
Counter Mode
Nhận xét về CTR mode:

   • Cho phép truy nhập ngẫu nhiên các khối.


   • Về tính an toàn CTR không mạnh như các chế độ
   khác.

   • CTR có cài đặt tương đối đơn giản do mã và giải mã là
   như nhau.
Cipher FeedBack Mode
CFB encryption:




CFB sử dụng IV làm giá trị khởi tạo.
Cipher FeedBack Mode
CFB decryption:
Outer FeedBack Mode
OFB encryption:
Outer FeedBack Mode
OFB decryption:
Outer FeedBack Mode
• Về cơ bản OFB giống hệt với CFB.


• Cải tiến của OFB nhằm tránh việc phát triển lỗi
từ một lỗi trong quá trình truyền.

Modern stream cipher

  • 1.
    Information Safe Confidentiality Modern cipher Van Hoang Nguyen Mail: startnewday85@gmail.com Department of Computer Science Faculty of Information Technology – Hanoi University of Agriculture.
  • 2.
  • 3.
  • 4.
    Stream cipher • Streamcipher xử lý plaintext theo từng bits hoặc theo từng nhóm nhỏ(8bits) • Stream cipher được xây dựng như sau: - Khóa đóng vai trò làm input cho bộ sinh số ngẫu nhiên(PNG) - Output của PNG được gọi là keystream - Keystream được tổ hợp với plaintext để tạo thành ciphertext Thường chỉ áp dụng cho symmetric stream cipher!
  • 5.
    Stream cipher Stream ciphergồm hai loại: • Symmetric Stream cipher - Synchronous - UnSynchronous - Periodic • Asymmetric Stream cipher - Blum-Goldwasser probabilistic publickey encryption.
  • 6.
    Stream cipher Khi thiếtkế stream cipher ta cần lưu ý hai yếu tố sau: • Tính ngẫu nhiên của PNG • Key size
  • 7.
    Stream cipher • NếuPNG thỏa mãn những yêu cầu đặt ra trong thiết kế thì tính an toàn của stream cipher là tương đương với block cipher • Cài đặt của stream cipher thường đơn giản và chạy nhanh hơn block cipher • Stream cipher cần tránh việc sử dụng lại khóa • Nếu có được những tính chất của plaintext thì stream cipher không được an toàn
  • 8.
    Stream cipher Ứng dụngcủa Stream cipher: • Mã hóa các dữ liệu ngẫu nhiên • Những ứng dụng tương tác đòi hỏi thời gian giải mã và mã hóa phải nhanh
  • 9.
    RC4 • RC4 đượcthiết kế bởi Ronald Rivest vào năm 1987 • Nền tảng của RC4 là phép hoán vị ngẫu nhiên • RC4 có cấu trúc đơn giản; dễ để hiểu và phân tích Ronald L. Rivest
  • 10.
    RC4 • RC4 chophép khóa K có cỡ từ 1 tới 256 bytes(8-1024 bits) • RC4 sử dụng hai vector 256 bytes T là vector tạm thời và S là vector trạng thái • RC4 hoạt động như sau: 1. Khởi tạo vector S 2. Khóa K được sử dụng để khởi tạo vector T 3. Vector T được sử dụng để hoán vị S 4. Thực hiện sinh keystream và mã hóa(giải mã)
  • 11.
    RC4 1. Khởi tạovector S For i=0 to 255 do S[i]=i; 2. Khởi tạo vector T For i=0 to 255 do T[i]=K[i mode keylen]; 3. Vector T được sử dụng để hoán vị S j=0; For i=0 to 255 do Begin j=(j+S[i]+T[i]) mode 256; swap(S[i],S[j]); End
  • 12.
    RC4 4. Sinhkeystream(ks) và mã hóa(giải mã): i,j=0; While (true) do Begin i=(i+1) mode 256; Mã hóa(giải mã) đơn giản là sử dụng ks để j=(j+S[i]) mode 256; xor với plaintext (ciphertext). swap(S[i],S[j]); t=(S[i]+S[j]) mode 256; ks=S[t]; End
  • 13.
    Operation mode for block cipher
  • 14.
    Operation mode forblock cipher • Một chế độ thi hành là một kỹ thuật nằm nâng cao hiệu quả của mật mã khối cho một loại ứng dụng cụ thể. • Các chế độ thi hành được định nghĩa trong FIPS PUB 81 gồm có: - Electronic Code Book - ECB. - Cipher Block Chaining - CBC. - Cipher FeedBack - CFB. - Outer FeedBack - OFB. - Counter - CTR.
  • 15.
    Electronic codebook Mode ECBencryption: ECB là chế độ đơn giản nhất – sử dụng cùng một khóa để mã hóa tất cả các khối của plaintext.
  • 16.
  • 17.
    Electronic codebook Mode Nhậnxét về ECB mode: • ECB về bản chất giống hệt với monoalphabetic cipher, chỉ có điều bảng chữ cái của ECB phức tạp hơn. • ECB dễ dàng bị phá nếu plaintext lớn và có tính cấu trúc rõ ràng. • Do đó mà ECB thường dùng để mã hóa những plaintext ngắn như khóa bí mật.
  • 18.
    Cipher Block ChainingMode CBC encryption: CBC sử dụng IV như một giá trị khởi tạo cho quá trình mã hóa và giải mã.
  • 19.
    Cipher Block ChainingMode CBC decryption:
  • 20.
    Counter Mode CTRencryption: Counter ban đầu được khởi tạo một giá trị nào đó. Sau mỗi khối được mã hóa counter=counter+1 mod 2b với b là cỡ của block.
  • 21.
  • 22.
    Counter Mode Nhận xétvề CTR mode: • Hardware effeciency: CTR cho phép mã và giải mã các khối một cách song song. CBC không thể thực hiện song song! • Software effeciency: Do tận dụng được lợi thế xử lý song song nên CTR sẽ chạy nhanh hơn. • Xử lý: Nếu bộ nhớ cho phép và vẫn đảm bảo được sự an toàn thì các output của khối mã hóa có thể được tính trước => từ đó mà tốc độ mã hóa sẽ rất nhanh.
  • 23.
    Counter Mode Nhận xétvề CTR mode: • Cho phép truy nhập ngẫu nhiên các khối. • Về tính an toàn CTR không mạnh như các chế độ khác. • CTR có cài đặt tương đối đơn giản do mã và giải mã là như nhau.
  • 24.
    Cipher FeedBack Mode CFBencryption: CFB sử dụng IV làm giá trị khởi tạo.
  • 25.
  • 26.
  • 27.
  • 28.
    Outer FeedBack Mode •Về cơ bản OFB giống hệt với CFB. • Cải tiến của OFB nhằm tránh việc phát triển lỗi từ một lỗi trong quá trình truyền.