Aoevideo

260 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
260
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aoevideo

  1. 1. A Case for a Multi-Key Secure Video Proxy: Theory, Design and Implementation S.F. Yeung, John C. S. Lui, David K. Y.Yau ACM Multimedia 2002
  2. 2. Multi-Key Secure Video Proxy <ul><li>Motivation – Why Secure Video Proxy ? </li></ul><ul><li>Background </li></ul><ul><li>Related Work </li></ul><ul><li>Secure Video Proxy Requirements </li></ul><ul><li>Our Design </li></ul><ul><ul><li>Design, Implementation and Experiment </li></ul></ul><ul><li>Q & A Section </li></ul>
  3. 3. Why Video Proxy ? <ul><li>Many multimedia contents use Internet as a mean for distribution. </li></ul><ul><li>1.5Mbps network bandwidth is required for VCD quality movie. </li></ul><ul><li>Server bandwidth and the server-client long haul path are the bottleneck. </li></ul><ul><ul><li>Long startup latency </li></ul></ul><ul><ul><li>Network congestion problem </li></ul></ul>
  4. 4. Client-Server Infrastructure source Client 1 Client 2 Client 3 Client N Server bandwidth (fan-out) is very limited Long haul bottleneck paths Packets get dropped
  5. 5. Why Video Proxy ? <ul><li>Physically proximity to the clients – instantaneous startup. </li></ul><ul><li>Cache data to relief server workload – about to serve more clients. </li></ul><ul><li>Availability of cached data even the source is down or the path is congested. </li></ul>
  6. 6. Client-Proxy-Server Infrastructure source Client A1 Client A2 Client A3 Client AN Client B1 Client B2 Client B3 Client BN Client P1 Client P2 Client P3 Client PN Proxy A Proxy B Proxy P
  7. 7. Why Secure Video Proxy ? <ul><li>Commercial multimedia contents are copyright protected, unauthorized distribution must be prohibited. </li></ul><ul><li>Some services, like the “Pay-per-view”, clients must pay the service so that they can access the contents. </li></ul><ul><li>Proxy infrastructure must support data confidentiality in conjunction with data caching. </li></ul>
  8. 8. Background <ul><li>Secure Client-Server Infrastructure </li></ul><ul><li>Secure Proxy – Caching of Decrypted Data </li></ul><ul><li>Secure Proxy – Caching of Encrypted Data </li></ul>
  9. 9. Secure Client-Server Infrastructure source Client 1 Client 2 Client 3 Client N Encrypt using client 1’s key Encrypt using client 2’s key Encrypt using client 3’s key Encrypt using client N’s key <ul><li>Simple </li></ul><ul><li>Source has very high workload. </li></ul><ul><li>not scalable . </li></ul>
  10. 10. Proxy Caching with Decrypted Content source Client A1 Client A2 Proxy A Encrypt with Proxy’s key Decrypted Content Encrypt with Client A1’s key Encrypt with Client A2’s key <ul><li>Simple </li></ul><ul><li>Proxy’s storage is insecure , original content can be retrieved by intruders </li></ul>
  11. 11. Proxy Caching with Encrypted Content source Client A1 Client A2 Proxy A Encrypt with Proxy’s key Encrypted Content Decrypt using proxy’s key Encrypt using client i ’s key <ul><li>Trivial </li></ul><ul><li>Proxy’s storage is secure, however the computational complexity is very high for both decryption and encryption </li></ul><ul><li>Decryption key can be revealed when the proxy is compromised. </li></ul>
  12. 12. Related Work <ul><li>Caching of Intentionally Corrupted Content </li></ul><ul><li>VEA Encryption for MPEG-1 Movie </li></ul>
  13. 13. Proxy Caching with Corrupted Content source Client A1 Client A2 Intentionally Corrupted Content Part for reconstruction (via secure channel) Proxy <ul><li>Protecting VoD the Easier Way, </li></ul><ul><li>ACM Multimedia 98 </li></ul><ul><li>How secure is those corrupted content ? </li></ul><ul><li>Since server needs to perform encryption for each client, this approach is not scalable </li></ul>
  14. 14. Proxy Caching with VES Encryption source Client A1 Client A2 Proxy A Encrypt with Proxy’s key Encrypted Content Encrypt using VES encryption <ul><li>A Fast MPEG Video Encryption Algorithm, ACM Multimedia 98 </li></ul><ul><li>Enable multiple encryptions while one-time decryption, however, VEA is fragile towards plaintext attack (reveal the decryption key when both plaintext and cipher are known) </li></ul>
  15. 15. Secure Video Proxy Requirement <ul><li>The proxy should be able to deliver uniquely encrypted content to each client while avoid any decryption operations. </li></ul><ul><li>Client can perform one-time decryption on the encrypted content to retrieve the original content. </li></ul><ul><li>The encryption algorithm should be computational infeasible to crack. </li></ul>
  16. 16. Definition of Asymmetric Reversible Parametric Sequence ( ARPS ) <ul><li>Given D i-1 and D i , it is computational infeasible to find e i </li></ul><ul><li>For each D j there exists a reverse function  i,j such that D i =  i,j (D j ) </li></ul><ul><li>Given {e i+1 , …, e j } , it is computational infeasible to find  i,j </li></ul>D -1 D 0 D 1 D N f(D -1 , e 0 ) f(D 0 , e 1 ) f(D 1 , e 2 ) f(D N-1 , e N ) f(D N , e N+1 ) D 1 D N f(D 0 , e 1 ) f(D 1 , e 2 ) f(D N-1 , e N ) f(D N , e N+1 ) * * * * * * * * * *
  17. 17. Use ARPS to design proxy with the following properties <ul><li>Data confidentiality during transmission (between source to proxy, proxy to clients). </li></ul><ul><li>End-to-end confidentiality : intruder who gains access to proxy’s or client’s storage, original data will not be revealed. </li></ul><ul><li>Data confidentiality against proxy intruders (when SRPS is used, given D 0 and e 0 one can find D -1 . But if ARPS is used, this will “ not ” be possible.) </li></ul>
  18. 18. Use ARPS to design proxy with the following properties (Continue) <ul><li>Data confidentiality against member collusion : if SRPS is used, then if </li></ul><ul><li>1. client j has e i and e j , </li></ul><ul><li>2. the encrypted data D i , and </li></ul><ul><li>3. the decrypting function  -1,j </li></ul><ul><li>For example: </li></ul><ul><li>Given e i , intruder can obtain  0,i and D 0 =  0,i (D i ) </li></ul><ul><li>Given e j and D 0 ,obtain D j = f (D 0 ,e j ) </li></ul><ul><li>Given D j , obtain D -1 =  -1,j (D j ) </li></ul>
  19. 19. ARPS f sequence for the secure video proxy e 0 e 1 e 2 e N Client 1 Client 2 Client N source D -1 D 0 D 1 D 2 D N Video Proxy
  20. 20. Our Design <ul><li>Implement APRS f using Multi-Key RSA </li></ul><ul><li>Architecture and Protocols </li></ul><ul><li>Encryption Configuration Parameters </li></ul>
  21. 21. Implement ARPS f using Multi-Key RSA <ul><li>Single-Key RSA </li></ul><ul><ul><li>Choose two large prime number p and q </li></ul></ul><ul><ul><li>Compute n = pq and  = (p-1)(q-1) </li></ul></ul><ul><ul><li>Select e such that gcd(e,  ) = 1 </li></ul></ul><ul><ul><li>Select d such that ed = 1 (mod  ) </li></ul></ul><ul><ul><li>Encryption: </li></ul></ul><ul><ul><ul><li>Cipher C = D e mod n </li></ul></ul></ul><ul><ul><li>Decryption: </li></ul></ul><ul><ul><ul><li>Data D = C d mod n </li></ul></ul></ul>
  22. 22. Implement ARPS f using Multi-Key RSA <ul><li>Extend to Multi-Key RSA </li></ul><ul><ul><li>Proxy generates p, q, and then n and  </li></ul></ul><ul><ul><li>Select e 0 such that gcd(e 0 ,  ) = 1 </li></ul></ul><ul><ul><li>Source encrypts data: </li></ul></ul><ul><ul><ul><li>Cipher C = D eo mod n </li></ul></ul></ul><ul><ul><li>For each requested client, proxy selects e i such that gcd(e i ,  ) = 1 , also select d i such that ( e 0 e i )d i = 1 mod  </li></ul></ul><ul><ul><li>Proxy encrypts data: </li></ul></ul><ul><ul><ul><li>Cipher C i = C ei mod n </li></ul></ul></ul><ul><ul><li>Client i decrypts data: </li></ul></ul><ul><ul><ul><li>Data D i = C i di mod n </li></ul></ul></ul>
  23. 23. Operations between source and proxy request Ack(e 1 , n) D 0 (using e 0 ) request authentication and key generation (e 0 , e 1 , d 1 , n, phi) Data encryption caching or relaying Server Proxy
  24. 24. Operations between proxy and client request(eCert) Ack(e 1 , [d 1 ], n) D 0 (using e 0 ) Authentication and key generation Data encryption D 1 (using e 1 ) Server Proxy Client 1 Request request(eCert) Data encryption Data decryption Ack([d 1 ], n) Retrieve d 1 <ul><li>eCert: public key in plaintext and public key encrypted by private key </li></ul><ul><li>[d 1 ]: d1 encrypted by client’s public key in eCert </li></ul>
  25. 25. Encryption Configuration Parameters Packet 0 (1400 bytes) Packet 1 (1400 bytes) Packet 2 (1400 bytes) Packet 3 (1400 bytes) Encryption block Encryption sub-block S pkt = 1400 bytes, I = 2, P = 0.5 and B = 4
  26. 26. Secure Multimedia Library - SML <ul><li>Implementation of the Multi-key RSA with ECP </li></ul><ul><ul><li>Structure </li></ul></ul><ul><ul><ul><li>C language API </li></ul></ul></ul><ul><ul><li>Data type </li></ul></ul><ul><ul><ul><li>SML_SESSION session </li></ul></ul></ul><ul><ul><li>Functions </li></ul></ul><ul><ul><ul><li>SML_InitSession(), SML_DestroySession() </li></ul></ul></ul><ul><ul><ul><li>SML_NewKeyPair(), SML_LoadKeyPair(), SML_SaveKeyPair() </li></ul></ul></ul><ul><ul><ul><li>SML_Connect(), SML_Accept() </li></ul></ul></ul><ul><ul><ul><li>SML_ConfigureRps(), SML_SaveRps(), SML_LoadRps() </li></ul></ul></ul><ul><ul><ul><li>SML_SendRps(), SML_ReceiveRps() </li></ul></ul></ul><ul><ul><ul><li>SML_SendEncryptRps(), SML_ReceiveDecryptRps() </li></ul></ul></ul>
  27. 27. Secure Multimedia Library - SML <ul><li>Programming Paradigm </li></ul>SML_InitSession(); SML_Accept(); SML_SendRps(); SML_SendEncryptRps(); SML_InitSession(); SML_Connect(); SML_ReceiveRps(); StoreData(); Server Proxy SML_InitSession(); SML_ProxyAccept(); SML_SendRps(); ReadData(); SML_SendReEncryptRps(); Proxy SML_InitSession(); SML_ConnectProxy(); SML_ReceiveRps(); SML_ReadDecryptRps(); Client
  28. 28. Secure Multimedia Library - SML <ul><li>Client Code Example </li></ul>SML_InitSession(&session); SML_NewKeyPair(&session, 512, 65537, CRYPTO_KEY_RSA); SML_SaveKeyPair(&session, &quot;key.rsa&quot;, &quot;passwd&quot;); if (SML_Connect(&session)) { SML_ReceiveRps(&session); for (i=0; i<total_pkt; i++) { SML_ReadDecryptRps(&session, buffer, buf_size); } } SML_DestroySession(&session);
  29. 29. Secure Multimedia Library - SML <ul><li>Server Code Example </li></ul>SML_InitSession(&session); SML_LoadKeyPair(&session, “key.rsa”, “passwd”, CRYPTO_KEY_RSA); if (SML_Accept(&session)) { SML_LoadRps(&session, “movie_0.rps”); SML_SendRps(&session); for (i=0; i<total_pkt; i++) { SML_SendEncryptECP(&session, buffer, buf_size); } } SML_DestroySession(&session);
  30. 30. Encryption Configuration Parameters t = proxy throughput, M = Number of concurrent MPEG-1 streams that could support. B = 1 63.04 11.82 62.56 11.73 62.56 11.73 62.40 11.70 57.10 10.7 62.08 11.64 I = 10 62.82 11.78 62.72 11.76 62.08 11.64 61.66 11.56 52.24 10.17 48.32 9.06 I = 5 62.77 11.77 54.19 10.16 40.20 7.54 32.52 5.91 25.81 4.84 21.87 4.10 I = 2 53.90 10.10 30.90 5.8 21.60 4.05 16.60 3.11 13.5 2.53 11.36 2.13 I = 1 M T M t M t M t M t M t P = 0.043 P = 0.086 P = 0.120 P = 0.171 P = 0.214 P = 0.257
  31. 31. MPEG-1 Experiment
  32. 32. QuickTime Experiment
  33. 33. <ul><li>End </li></ul>

×