KR20090083426A - 데이터 처리 방법 - Google Patents
데이터 처리 방법 Download PDFInfo
- Publication number
- KR20090083426A KR20090083426A KR1020097011065A KR20097011065A KR20090083426A KR 20090083426 A KR20090083426 A KR 20090083426A KR 1020097011065 A KR1020097011065 A KR 1020097011065A KR 20097011065 A KR20097011065 A KR 20097011065A KR 20090083426 A KR20090083426 A KR 20090083426A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- information
- authentication
- authentication information
- packet
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
네트워크 장치 내에서의 데이터 처리에 대해 기술된다. 데이터를 인증하는데 사용되는 데이터 및 인증 정보가 수신될 수 있다(610). 데이터는 수정된 데이터를 생성하도록 적응될 수 있다(620). 수정된 데이터는 인증 정보와 함께 송신될 수 있다(630). 인증 정보는 수정된 데이터를 인증하는데 사용될 수 있다.
Description
본 발명에 따른 실시예들은 데이터 처리에 관한 것이다.
시변 특성(time-varying characteristics)을 갖는 이종 네트워크(heterogeneous networks) 내의 다수의 다양한 클라이언트에 데이터를 적응(adapt)시킬 수 있는 기능이 데이터 전달 시스템의 바람직한 특성이다. 데이터는 본 명세서에서 트랜스코더(transcoders)로 지칭되는 중간 시스템 노드에서 적응될 수 있다. 트랜스코더는 데이터를 입력으로서 받아들려 그것을 처리하여 출력으로서 적응된 데이터를 생성한다. 트랜스코딩 동작의 예는 비트 레이트 감소, 레이트 조정(rate shaping), 공간 다운샘플링 및 프레임 레이트 감소를 포함한다.
데이터를 보호하기 위해 적절한 보안을 제공하는 것은 데이터 전달 시스템의 또 다른 바람직한 특성이다. 보안을 제공하기 위해, 데이터는 암호화될 수 있고 인증을 거치게 된다. 데이터는 그의 소스에서 암호화될 수 있고 암호화된 형태로 그의 최종 목적지로 전송된다. 인증은 송신자와 데이터의 무결성 모두에 대한 검증을 지칭한다. 종래의 인증 절차는 메시지 인증 코드(MAC) 또는 디지털 서명(DS) 을 이용하여 송신자의 신원을 보장할 수 있고, 송신자와 수신자 사이에서 데이터가 뜻하기 않게 또는 고의적으로 변경되었는지를 결정한다.
데이터 인증과 연관된 적어도 두 개의 주요 페널티가 존재한다. 첫째, 종래의 인증 절차는 신뢰성 있는 데이터 전달에 입각한 것이다. 다시 말해, MAC 또는 DS가 계산되었던 모든 데이터가 데이터를 인증하기 위해 수신기에서 필요하다. 따라서, 예를 들어, 데이터 패킷이 인지 없이 손실될 수 있는 사용자 데이터그램 프로토콜(UDP)을 사용하여 스트리밍되는 비디오의 인증은 데이터 패킷이 손실되는 경우 문제가 될 수 있다. 따라서, 인증이 요구되는 경우 수신되는 비디오의 어떠한 부분도 사용될 수 없다. 따라서, 첫 번째 페널티는 수신되나 인증될 수 없고 따라서 사용될 수 없는 데이터의 양에 대응한다.
둘째, MAC 및 DS는 추가적인 오버헤드를 구성한다. 이 페널티는 데이터 패킷의 그룹에 걸쳐 오버헤드 대가를 분담(amortize)함으로써 감소될 수 있다. 그러나, 그룹 내의 데이터 패킷의 수와 인증의 확률 사이에는 절충이 존재하는데, 즉 그룹이 커질수록, 인증의 확률은 낮아지는데, 그 이유는 그룹 내의 임의의 패킷이 손실되는 경우, 그 그룹은 인증될 수 없기 때문이다.
종래의 방식에서, 인증될 데이터가 전달 동안 트랜스코딩에 의해 수정되는 경우, 그 데이터는 인증될 수 없고 따라서 본질적으로 사용할 수 없으며 그에 따라 손실된 것이나 마찬가지이다. 따라서, 트랜스코딩이 데이터 전달 시스템에서의 축척(scalability)을 용이하게 하지만, 이 트랜스코딩은 데이터 인증에 대해 해결해야 할 과제를 부가한다.
트랜스코딩과 인증 간의 충돌에 대한 해결책은 패킷마다 다수의 MAC를 제공하는 것이다. 예를 들어, 트랜스코딩 동안 패킷이 스케일링될 수 있는 N개의 방식이 존재하는 경우, 패킷마다 N개의 MAC가 제공되며, 각 MAC는 스케일링된 데이터의 제각기의 버전을 인증하는데 사용된다. 그러나, 이 방식은 인증 정보와 이미 연관된 오버헤드를 크게 증가시킨다. 또한, 이 방식은 데이터가 트랜스코딩되고 인증될 수 있는 입도(granularity)에 심각한 제한을 부가하다. 오버헤드의 양을 관리하기 위해, 상이한 버전들의 수 N은 커질 수 없다. 더 나아가, 필요로 할 수 있는 트랜스코딩의 입도를 예상하는 것은 불가능할 수 있다. 트랜스코딩은 소스측에서보다는 중간 시스템 또는 네트워크 노드에서 보다 효율적으로 관리될 수 있는데, 그 이유는 중간 노드는 로컬 및 다운스트림 네트워크 조건 및 다운스트림 수신기 성능에 대한 정보를 수집 및 업데이트할 수 있기 때문이다.
따라서, 트랜스코딩 및 인증 모두를 허용하는 방법 및/또는 시스템, 특히 트랜스코딩의 입도가 심각한 오버헤드의 증가 없이 융통성 있게 조절될 수 있는 방법 또는 시스템이 필요하다. 본 발명에 따른 실시예들은 이들 및 다른 장점을 제공한다.
네트워크 장치 내에서의 데이터 처리가 개시된다. 일 실시예에서, 데이터 및 이 데이터를 인증하는데 사용되는 인증 정보가 수신된다. 데이터는 수정된 데이터를 생성하도록 적응된다. 수정된 데이터는 인증 정보와 함께 송신된다. 인증 정보는 수정된 데이터를 인증하는데 사용될 수 있다.
본 명세서에 포함되고 본 명세서의 일부를 형성하는 첨부한 도면은 본 발명의 실시예들을 개시하고, 또한 상세한 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
도 1은 본 발명의 실시예들이 실시될 수 있는 네트워크의 예를 나타내는 블록도,
도 2는 본 발명의 실시예들이 실시될 수 있는 시스템의 예를 나타내는 블록도,
도 3은 본 발명의 일 실시예에 따라 인증 정보를 결정하는 방법을 나타내는 데이터 흐름도,
도 4는 본 발명의 일 실시예에 따라 데이터를 처리하는 방법을 나타내는 데이터 흐름도,
도 5는 본 발명의 일 실시예에 따라 데이터를 인증하는 방법을 나타내는 데이터 흐름도,
도 6 및 도 7은 본 발명의 실시예에 따라 데이터를 처리하는 방법의 흐름도.
본 명세서에서 언급된 도면들은 특별히 언급하지 않았다면 본래의 크기로 도시되어 있는 것으로 해석되어서는 안된다.
본 발명의 다양한 실시예를 자세히 참조할 것이며, 이들의 예는 첨부한 도면에 도시되어 있다. 본 발명은 이들 실시예와 연계하여 기술될 것이지만, 이들 실시예들에 본 발명이 국한되려는 것은 아님을 이해해야 한다. 오히려, 본 발명은 첨부한 청구항에 정의된 본 발명의 사상 및 범주 내에 포함될 수 있는 대체물, 변형 및 등가물을 포함하려 한다. 더 나아가, 본 발명의 후속하는 설명에서, 다수의 특정 세부사항이 기술되어 본 발명의 완전한 이해를 도모할 것이다. 다른 예로서, 잘 알려져 있는 방법, 절차, 구성요소 및 회로는 본 발명의 측면들을 불필요하게 모호하게 하는 것을 막기 위해 설명되지 않았다.
본 발명에 따른 실시예들은 일반적으로, 데이터에 기초한 정보와 연관된 상이한 유형의 데이터에 적용될 수 있으며, 이 연관된 정보는 자신이 근거로 두고 있는 데이터가 변경될지라도 유효하게 유지되게 것이 바람직하다. 예를 들어, 본 발명에 따른 실시예는 변경될 수 있으나(예를 들어, 트랜스코딩될 수 있으나) 인증되어야 하는 임의의 유형의 데이터와 함께 사용될 수 있다. 일 실시예에서, 데이터는 미디어 데이터(본 명세서에서 멀티미디어 데이터 또는 미디어 콘텐츠)를 포함한다. 미디어 데이터의 일 예는 오디오 데이터가 첨부된 비디오 데이터이다. 그러나, 미디어 데이터는 오직 비디오일 수 있거나, 오직 오디오일 수 있거나, 또는 비디오 및 오디오 모두일 수 있다. 일반적으로, 본 발명은 그의 다양한 실시예에서, 음성 기반 데이터, 오디오 기반 데이터, 이미지 기반 데이터, 웹 페이지 기반 데이터, 그래픽 데이터 등, 및 이들의 조합에 사용되도록 잘 구성된다.
데이터가 비디오 데이터인 실시예에서, 비디오 데이터는 MPEG(Moving Pictures Experts Group) 1/2/4, MPEG-4 어드밴스드 비디오 코딩(AVC), H.261/2/3/4, 모션 JPEG를 포함하는 JPEG(Joint Photographic Experts Group), 모션 JPEG 2000을 포함하는 JPEG 2000, 및 3-D 서브밴드 코딩을 포함하나 여기에 제한되는 것은 아닌 임의의 다양한 코딩 표준을 사용하여 압축(인코딩)된다.
데이터는 임의의 다수의 암호화 표준을 사용하여 암호화될 수 있다. 암호화 표준은 DES(Data Encryption Standard), 트리플-DES 및 AES(Advanced Encryption Standard)을 포함하나 여기에 제한되는 것은 아니다. 이들 암호화 원형(primitives)은 전자 코드북(ECB), 사이퍼 블록 체인(CBC), 사이퍼 피드백(CFB), 출력 피드백(OFB) 및 카운터(CTR) 모드를 포함하나 여기에 국한되지는 않는 다수의 블록-사이퍼 모드를 사용하여 적용될 수 있다.
데이터는 또한 인증을 거칠 수 있다. 사용될 수 있는 인증 기법은 메시지 인증 코드(MAC), 디지털 서명(DS), 및 단일 디지털 신호와 함께 집합되는(aggregated) 해시(hashes)와 같은 인증 기법을 포함하나 여기에 국한되지 않는다. 대중적인 MAC는 보안 해시 알고리즘-1 (SHA-1) 해시를 사용하는 해시형 메시지 인증 코드(HMAC)와 같은 해시 기반 MAC와, CBC 모드의 AES와 같은 사이퍼 기반 MAC를 포함한다. 대칭 키 기법 또는 공개/개인 키 기법을 사용하는 인증 기법이 적용될 수 있다. 인증은 또한 AES 및 DES와 같은, 그러나 여기에 제한되지는 않는 암호화 원형을 사용할 수도 있다.
일 실시예에서, 데이터는 중간 시스템 또는 네트워크 노드가 데이터를 해독 (또한 디코딩)하는 일 없이, 암호화되고 인코딩된 데이터의 일부분을 폐기함으로써 데이터를 적응(예를 들어, 트랜스코딩)시킬 수 있도록 인코딩 및 암호화된다. 이 실시예는 본 명세서에서 "스케일링가능 인코딩" 및 "점진적 암호화"를 통합하는 "보안 스케일링가능 스트리밍"으로서 지칭된다.
보안 스케일링가능 스트리밍은 인코딩, 암호화 및 패킷화 동작의 신중한 조정에 기반을 두고 있다. 본 명세서에서 사용되는 바와 같이, 스케일링가능 인코딩은 본래의 데이터를 입력으로서 받아들이고 스케일링가능하게 인코딩된 데이터를 출력으로서 생성하는 프로세스로서 정의되는데, 스케일링가능하게 인코딩된 데이터는 그의 일부분이 다양한 품질 레벨로 본래의 데이터를 재구성하는데 사용될 수 있다는 특성을 갖는다. 구체적으로, 스케일링가능하게 인코딩된 데이터는 임베디드 비트스트림으로 여겨질 수 있다. 비트스트림의 일부분은 비트스트림의 나머지부분으로부터 어떠한 정보도 요구하지 않고도 본래의 데이터의 기준선-품질 재구성(baseline-quality reconstruction)을 디코딩하는데 사용될 수 있고, 비트스트림의 보다 더 많은 부분은 본래의 데이터의 개선된 재구성을 디코딩하는데 사용될 수 있다. 예를 들어, 이미지가 해상도에 따라 스케일가능하게 인코딩되는 경우, 저해상도 이미지를 디코딩하는데 데이터의 작은 부분이 사용될 수 있고, 데이터의 보다 많은 부분은 중간 해상도 이미지를 디코딩하는데 사용될 수 있으며, 모든 데이터는 완전한 해상도의 이미지를 디코딩하는데 사용될 수 있다.
본 명세서에서 사용되는 바와 같이, 점진적 암호화는 입력으로서 본래의 데이터(평문)를 받아들이고 점진적으로 암호화된 데이터를 출력으로서 생성하는 프로 세스로서 정의된다. 점진적 암호화 방법은 데이터의 제 1 부분이 독립적으로 암호화되고, 나머지 부분은 앞 부분에 기초하여 암호화된다는 특성을 갖는다. 평문은 처음부터 끝까지, 즉 순차적인 방식으로 암호화되는데, 비트스트림의 제 1 부분은 자체적으로 암호화되고, 비트스트림의 제 2 부분은 제 1 부분(암호화된 또는 암호화되지 않은 제 1 부분이 사용될 수 있다)을 사용하여(예를 들어, 제 1 부분과 연계하여) 암호화된다. 점진적으로 암호화된 데이터는 제 1 부분이 본래의 데이터의 나머지부분으로부터 정보를 요구하지 않고도 단독으로 복호화될 수 있다는 특성을 가지고 있고, 점진적으로 보다 많은 부분이 이와 같은 특성으로 복호화될 수 있는데, 복호화는 비트스트림의 후행 부분이 아닌 선행 부분으로부터의 데이터를 사용할 수 있다. 스케일링가능 코딩 및 패킷화와 적절히 매칭되는 경우, 점진적인 암호화는 미디어 데이터를 복호화하지 않고 데이터 패킷을 절단하거나 또는 폐기함으로써 데이터를 트랜스코딩하는 기능을 제공한다.
일 실시예에서, 스케일링가능하게 인코딩되고 점진적으로 암호화된 데이터는, 데이터를 복호화하지 않고 패킷을 절단하거나 또는 폐기함으로써 트랜스코딩이 수행될 수 있도록, 우선순위 방식의 데이터 패킷으로 신중히 배치된다. 일 실시예에서, 데이터는 점진적으로 암호화되는 데이터 패킷으로 인코딩된다. 암호화될 수도 있고 그렇지 않을 수도 있는 헤더가 각 패킷과 연관된다. 헤더는 데이터를 암호화하는데 사용된 것과는 다른 암호화 기법을 사용하여 암호화될 수 있다. 헤더가 암호화되는 경우, 헤더는 데이터를 복호화하지 않고 복호화될 수 있다. 패킷의 헤더는 예를 들어 패킷 내의 절단 지점을 식별하는 정보를 포함한다. 제 1 절단 지점은 예를 들어 제 1 비트레이트, 해상도 또는 품질 레벨에 대응하고, 제 2 절단 지점은 제 2 비트레이트, 해상도 또는 품질 레벨에 대응하며, 나머지도 마찬가지이다. 예를 들어 제 1 레벨을 달성하도록 데이터를 트랜스코딩 또는 적응시키기 위해, 헤더 정보가 판독되고 제 1 절단 지점이 식별된다. 제 1 해상도 또는 품질 또는 비트레이트 레벨을 구현하는데 필요로 하지 않은 데이터가 폐기되도록 패킷은 제 1 절단 지점에서 절단될 수 있다. 절단된 패킷은 다음 수신지로 전송된다.
위의 예에서 비트레이트, 해상도 및 품질이라는 명칭이 사용되었지만, 본 발명에 따른 실시예들은 그에 국한되지 않는다. 본 명세서에서의 이들 및 다른 예는 본 발명의 범위 및 범주를 제한하려는 것은 아니며, 오히려 현존하고 트랜스코딩을 위한 기초로서 사용될 수 있는 다양한 파라미터를 예시한다.
본 명세서에서 사용되는 바와 같이, 데이터 패킷의 절단은 일반적으로 데이터 패킷의 일부 부분으로부터 데이터를 제거하는 것을 지칭한다. 일 실시예에서, 예를 들어 제 1 해상도 레벨의 데이터가 패킷의 제 1 부분에 위치하고, 제 2 해상도 레벨의 데이터는 패킷의 제 2 부분에 위치하며, 제 3 해상도의 데이터는 제 3 부분에 위치하도록 데이터가 정렬되는데, 제 2 부분은 제 1 부분과 제 3 부분 사이에 위치한다. 헤더 정보는 제 1, 제 2 및 제 3 부분을 구별하는 패킷 내의 지점을 식별한다. 이 실시예에서, 이미지가 예를 들어 제 1 해상도 레벨에서만 재구성되어야 하는 경우, 트랜스코딩 동안 제 2 및 제 3 부분은 절단될 수 있다. 즉, 데이터 패킷은 본질적으로 제 1 절단 지점에서 분리되어, 제 2 및 제 3 부분을 제거하고, 그에 따라 제 1 부분(및 헤더)으로만 구성된 보다 작은 패킷이 남게된다.
일 실시예에서, 데이터 패킷의 절단 지점은 레이트-왜곡(R-D) 분석과 같은 분석에 따라 지정되며, 그에 따라 데이터 패킷의 스트림은 R-D 최적 또는 거의 R-D 최적인 레이트로 압축될 수 있다. 또 다른 실시예에서, 데이터 패킷의 헤더 부분은 R-D 분석에 의해 생성된 R-D 곡선을 설명하는 정보를 포함하고, 절단 지점은 R-D 곡선의 추가적인 분석으로부터 유도된다.
거의 최적인 트랜스코딩은 데이터 패킷의 헤더 부분에 다수의 품질 레벨에 대한 최적의 R-D 컷오프 지점을 배치함으로써 데이터 패킷 레벨에서 달성될 수 있다. 그런 다음, 트랜스코더는 각 패킷을 적절한 컷오프 지점에서 절단할 수 있고, 따라서 결과적인 패킷은 원하는 품질 레벨을 위해 이미지의 각 영역마다 적절한 수의 비트를 포함할 것이다. 트랜스코더는 각 패킷 헤더를 판독하고, 그런 다음 적절한 지점에서 패킷을 절단한다. 예를 들어, 이미지 내의 세 개(3)의 영역이 별개의 패킷으로 인코딩된 경우, 각 영역 및 제각기의 패킷 헤더에 위치한 그들의 위치에 대해 3개의 R-D 최적 절단 지점이 식별된다. 트랜스코더는 3개의 R-D 지점(또는 그 사이의 지점) 중 임의의 지점에서 동작하도록 선택할 수 있고, 그런 다음, 각 패킷을 적절한 컷오프 지점에서 절단할 수 있다.
또 다른 실시예에서, 제 1 해상도 레벨의 데이터는 예를 들어 패킷의 다수의 부분에 위치하고, 제 2 해상도 레벨의 데이터는 패킷의 다른 다수의 부분에 위치하며, 제 3 해상도 레벨의 데이터는 패킷의 그 밖의 또 다른 다수의 부분에 위치하도록 하는 방식으로 데이터가 데이터 패킷에 정렬된다. 즉, 제 1 해상도 레벨과 연관된 데이터 세그먼트와, 제 2 해상도 레벨과 연관된 데이터 세그먼트, 및 제 3 해 상도 레벨과 연관된 데이터 세그먼트는 패킷 내에서 인터리빙(interleaving)된다. 이 예에서, 헤더 정보는 각 해상도 레벨에 대응하는 데이터 세그먼트가 패킷 내에서 위치한 지점을 식별한다. 이 실시예에서, 이미지가 예를 들어 제 1 해상도 레벨에서만 재구성되어야 하는 경우, 트랜스코딩 동안, 제 1 해상도 레벨과 연관된 데이터 세그먼트는 패킷으로부터 추출될 수 있고 다시 패킷화될 수 있다. 이와 달리, 제 2 및 제 3 해상도 레벨과 연관된 데이터 세그먼트가 데이터 패킷으로부터 추출되어 폐기될 수 있다. R-D 코딩은 예를 들어 원하는 비트레이트를 생성하는 동일한 동작 지점에서 각 세그먼트에 대한 R-D 곡선을 생성함으로써 달성될 수 있다. R-D 정보는 압축되었으나 암호화되지 않은 데이터로부터 유도되고, 데이터를 복호화하지 않고 암호화된 데이터를 트랜스코딩하는데 사용될 수 있는 "힌트(hints)"로서 암호화된 비스트림과 함께 포함된다. 힌트는 암호화될 수도 있고 그렇지 않을 수도 있다. 힌트에 의해 제공된 R-D 정보를 사용하게 되면, 재구성된 이미지의 품질에 보다 적은 영향을 갖는 데이터 세그먼트가 식별될 수 있다. 트랜스코딩 동안, 보다 적은 중요성의 프레임에 대응하는 데이터 세그먼트는 전술한 바와 같이 생략 또는 추출될 수 있다. 트랜스코딩 동작은 미디어 데이터를 복호화하지 않고 수행될 수 있다.
선행하는 단락에서의 논의의 전제는 세그먼트 길이는 문제가 되지 않는다라는 것(즉, 비트레이트에 대한 제약은 없으며, 그에 따라 예를 들어 소정 수의 세그먼트는 그들의 길이와는 무관하게 전송될 수 있다) 또는 세그먼트는 동일한 길이를 갖는다라는 것이다. 비트레이트 제약이 있는 경우, 세그먼트 길이는 트랜스코딩 동안 고려할 사항일 수 있고, 예를 들어, 하나의 보다 긴 세그먼트 대신 두 개의 보다 짧은 세그먼트들을 전송하는 것이, 또는 그 반대로 전송하는 것이 더 나을 수 있다. 따라서, 일 실시예에서, 세그먼트들은 그들의 상대적 "유용성"(예를 들어, 비트 당 그들의 중요성)에 따라 등급이 부여될 수 있다. 일 실시예에서, 세그먼트의 유용성은 세그먼트 내의 비트마다 왜곡의 정도에 따라 측정된다. 즉, 세그먼트와 연관된 왜곡의 정도(세그먼트가 생략 또는 폐기된 경우 야기될 수 있는 왜곡의 정도)는 세그먼트 내의 비트들의 수에 의해 분할되며, 비트 당 왜곡의 비율은 세그먼트의 유용성을 제공한다. 비교적 높은 유용성을 갖는 세그먼트는 전송되는 반면, 비교적 낮은 유용성을 갖는 세그먼트는 필요에 따라 또는 원하는 경우 생략 또는 폐기될 수 있다.
패킷을 절단하는 대신, 트랜스코딩은 전체 패킷을 폐기 또는 생략함으로써 달성될 수 있다. 또 다시, 암호화될 수도 있고 또는 그렇지 않을 수도 있는 헤더가 각 패킷과 연관된다. 헤더가 암호화되는 경우, 그 헤더는 데이터를 복호화하지 않고 복호화될 수 있다. 제 1 패킷은 디코딩되는 경우 예를 들어, 제 1 비트레이트, 해상도 또는 품질 레벨과 연관된 데이터를 포함할 수 있고, 제 2 패킷은 제 1 패킷 내의 데이터와 결합되고 디코딩되는 경우 제 2 비트레이트, 해상도 또는 품질 레벨과 연관된 데이터를 포함할 수 있다. 헤더는 어떤 패킷이 어떤 레벨과 연관되는지를 식별하는 정보를 포함할 수 있다. 예를 들어, 제 1 레벨을 달성하도록 데이터를 트랜스코딩 또는 적응시키기 위해, 각 패킷의 헤더 정보가 판독되고, 제 1 패킷은 제 1 레벨과 연관된 것으로 식별되고, 제 2 패킷은 제 2 레벨과 연관된 것 으로 식별된다. 따라서, 제 1 패킷은 그 다음 목적지로 전송되고, 제 2 패킷은 생략 또는 폐기된다.
헤더 부분은 또한 각 데이터 패킷을 번호로 식별하는 정보를 포함할 수 있다. 따라서, 트랜스코더는 스트림으로부터 소정의 데이터 패킷을 제거할 수 있는데, 예를 들어, 하나 건너의 다른 패킷(예를 들어, 짝수 번호 패킷)이 제거되어야 하는 경우, 트랜스코더는 짝수 번호 데이터 패킷을 식별하는 헤더 정보를 이용하여 이들을 데이터 패킷의 스트림으로부터 제거할 수 있다.
여기까지를 요약하면, 트랜스코딩은 1) 패킷의 종단부들 중 하나 또는 모두를 절단하는 패킷 절단과, 2) 종단부 이외의 패킷의 일부분 또는 일부분들을 폐기하는 패킷 절단 및 3) 하나 이상의 패킷을 모두 폐기하는 것을 포함할 수 있다.
위의 설명은 축척(scalability)을 제공하도록 의도된 인코더에 초점을 두었다. 그러나, 본 발명에 따른 실시예들은 또한 스케일링가능하지 않은 인코더에도 적용될 수 있다. 이것은 달성될 수 있는데, 그 이유는 인코더는 압축된 비트를 생성하지만, 비트의 일부는 재구성된(디코딩된) 이미지의 품질에 대한 영향을 고려하여 다른 비트보다 중요할 것이기 때문이다. 다른 비트들에 대한 일부 비트들의 상대적 중요성을 인식함으로써, 보다 중요한 비트가 식별될 수 있고, 그에 따라 트랜스코딩 동안 보다 덜 중요한 비트는 생략 또는 폐기될 수 있다.
일 실시예에서, R-D 최적화된 스트리밍을 수행하는 R-D 정보가 데이터에 대해 생성된다. R-D 속성은 데이터의 스트림과 연관된 "힌트 트랙"에서 요약된다. 데이터는 보안을 위해 암호화되지만, 힌트 트랙은 암호화되지 않을 수 있다. 힌트 -트랙 내의 R-D 정보는 미디어 데이터를 복호화하지 않고 데이터를 트랜스코딩하는데 사용될 수 있다.
이하의 설명은 본 발명에 따른 다양한 실시예에 따른 데이터의 프로세싱을 기술한다. 이들 다양한 실시예에서, 위에서 설명한 바와 같이, 데이터는 스케일링가능 또는 스케일링가능하지 않을 수 있고, 스케일링가능하게 인코딩되거나 또는 되지 않을 수 있으며, 암호화되거나 또는 되지 않을 수 있고, 또한 이들의 조합일 수도 있다.
또한, 데이터는 데이터 패킷으로 패킷화되거나 또는 되지 않을 수 있다. 예를 들어, 별개로 패킷화되는 대신에, 데이터는 비트스트림 또는 코드 스트림으로 존재할 수 있다. 패킷화되는 경우, 데이터는 하나 이상의 데이터 패킷의 일부분 또는 일부분들을 절단함으로써 트랜스코딩될 수 있다. 패킷화되지 않는 경우, 데이터는 비트스트림 또는 코드스트림의 일부분 또는 일부분들을 절단함으로써 트랜스코딩될 수 있다.
도 1은 본 발명의 실시예가 구현될 수 있는 네트워크(100)의 표현이다. 본 실시예에서, 네트워크(100)는 다수의 상호접속된 서버 노드(120,121,122,123)에 결합된 데이터(예를 들어, 콘텐츠) 소스(100)를 포함한다. 물론, 도시되어 있는 것보다 많은 또는 적은 수의 데이터 소스 및 서버 노드가 존재할 수 있다.
데이터 소스(110)를 포함하는 이들 노드 간의 상호접속은 유선 접속, 무선 접속 또는 이들의 조합일 수 있다. 각 상호접속은 하나 이상의 채널을 포함하여, 노드 간에 다수의 스트리밍 세션이 동시에 발생할 수 있다.
일반적으로, 데이터 소스(110) 및 서버 노드(120-123)는 데이터 처리 및/또는 저장하고 이러한 데이터를 전송 및 수신하는 기능을 제공하는 유형의 장치이다. 일 실시예에서, 서버 노드(120-123)는 트랜스코딩 동작을 수행하고 따라서 본 명세서에서 "트랜스코딩 노드"로 지칭될 수 있다. "트랜스코딩"은 또는 본 명세서에서 "적응" 또는 "수정"으로 지칭될 수 있다.
일 실시예에서, 데이터 소스(110)는 저장 장치일 수 있고, 서버 노드(120-123)는 컴퓨터 시스템 및 전형적으로 컴퓨터 시스템으로 간주되지 않으나 유사한 기능을 가질 수 있는 그 밖의 다른 유형의 장치일 수 있다. 또 다른 실시예에서, 데이터 소스(110) 및 서버 노드(120-123)는 프로세싱 동작을 수행하고, 그와 같이 컴퓨터 시스템 및 그 밖의 다른 유형의 장치일 수 있다.
이동 장치 또는 정적 장치일 수 있는 클라이언트 노드(130)와 같은 클라이언트 장치가 네트워크(100)와 통신한다. 일 실시예에서, 네트워크(100)는 데이터를 클라이언트 노드(130)로 스트리밍한다. 물론 다수의 클라이언트 노드가 존재할 수 있다. 클라이언트 노드(130)는 유선 접속, 무선 접속 또는 이들의 조합을 통해 네트워크(100)에 접속될 수 있다.
일반적으로, 네트워크(100)는 데이터 소스(110)로부터의 데이터를 임의의 중간 서버 노드(120-123)에 제공하고/하거나, 임의의 중간 서버 노드(120-123)로부터 다른 서버 노드 및/또는 클라이언트 노드(130)로 제공하는 기능을 제공한다. 데이터가 데이터 소스(100)로부터 클라이언트 노드(130)로 이동할 때 데이터가 지나가는 루트, 또는 경로는 임의의 수의 개재 노드(intervening node) 및 이들 노드 간 의 상호접속을 통과할 수 있다. 일반적으로, 본 발명의 실시예는 송신기로부터 수신기로 데이터를 스트리밍하는 것에 관한 것이다. 네트워크(100) 내의 임의의 노드는 송신기로 간주될 수 있고, 유사하게 네트워크(100) 내의 임의의 노드는 수신기로 간주될 수 있다. 송신기 및 수신기 노드는 인접한 노드일 수 있고, 또는 이들 노드는 개재 노드에 의해 분리될 수 있다. 더 나아가, 소정의 실시예에서, 데이터 소스(110) 및 클라이언트 노드(130)를 포함하는 네트워크(100) 내의 임의의 노드는 이하의 도면과 연계하여 설명되는 데이터의 프로세싱을 수행할 수 있다. 또한, 클라이언트 노드(130)가 네트워크(100) 내의 종점 노드로서 도시되어 있지만, 클라이언트 노드(130)는 네트워크 내의 임의의 노드일 수 있다.
도 2는 본 발명의 실시예들이 구현될 수 있는 시스템(200)의 예를 나타내는 블록도이다. 일반적으로, 도 2의 요소들은 그들이 수행하는 기능에 따라 기술된다. 그러나, 요소들은 본 명세서에서 기술한 것 이외의 기능을 수행할 수 있다. 또한, 다수의 요소들이 수행하는 것으로 기술된 기능들은 단일 요소에 의해 수행될 수도 있다. 유사하게, 단일(다기능) 요소에 의해 수행되는 것으로 기술되어 있는 다수의 기능은 다수의 개별 요소들 사이에서 소정의 방식으로 분할될 수 있다. 더 나아가, 도 2의 시스템 및 그 요소 각각은 본 명세서에서 도시되고 기술된 것 이외의 다른 요소를 포함할 수 있다.
도 2의 예에서, 시스템(200)은 데이터 어댑터(212), 상태 정보 엔진(214) 및 송신기(218)를 포함한다. 시스템(200)은 중앙 처리 장치 및 메모리(미도시)를 포함할 수 있다. 일 실시예에서, 장치(100)는 또한 수신기(216)를 포함한다. 수신 기(216) 및 송신기(218)는 유선 또는 무선 통신을 수행할 수 있다.
일 실시예에서, 시스템(200)은 데이터 소스로서 구현된다. 또 다른 실시예에서, 시스템(200)은 중간 네트워크 노드로서 구현된다.
일 실시예에서, 데이터 어댑터(212)는 앞서 설명한 바와 같이 데이터를 적응(예를 들어, 트랜스코딩 또는 수정)시킨다. 데이터 어댑터(212)는 데이터를 절단하는데, 본질적으로 데이터의 본래의 세트로부터 데이터의 제 1 부분을, 데이터의 본래의 세트의 나머지 제 2 부분을 유지한 채, 제거 또는 분리시킬 수 있다. 일 실시예에서, 상태 정보 엔진(214)은 사용되는 인증 기법에 따라 데이터의 제 1 부분에 대한 상태 정보를 결정한다. "상태 정보"는 본 명세서에서 "요약 정보"로도 지칭될 수 있다. 이하에서, 도 4와 연계하여 추가적인 정보가 제공된다.
앞서 설명한 바와 같이, 데이터는 인증을 거치게 될 수 있고, 인증 정보는 데이터와 연관될 수 있다. 본 명세서에서 사용되는 바와 같이, "인증 정보" 및 "인증 값" 각각은 MAC, 디지털 서명, 디지털 서명과 함께 수집되는 해시 등을 지칭한다. 데이터는 패킷화될 수도 있고 그렇지 않을 수도 있다. 일 실시예에서, 패킷화되는 경우, 인증 정보는 각 데이터 패킷과 연관된다. 예를 들어, 인증 정보는 데이터 패킷의 어느 한 종단에 첨부될 수 있다. 패킷화되지 않는 경우, 인증 정보는 소정의 방식으로 데이터와 연관된다. 예를 들어, 인증 정보는 비트스트림의 시작부에 삽입될 수 있다.
도 3은 본 발명의 일 실시예에 따라 인증 정보를 결정하는 방법을 나타내는 데이터 흐름도이다. 개략적으로, 인증 정보(330)는 입력 데이터(310)를 인증 계산 엔진(320)으로 공급함으로써 결정된다. 일 실시예에서, 인증 계산 엔진(320)은 데이터의 소스(예를 들어, 도 1의 데이터 소스(110))에 상주한다.
도 3의 인증 계산 엔진(320)은 가변 길이 입력을 취하고 고정된 길이 인증 값을 생성한다. 예를 들어, 데이터의 1500 바이트(예를 들어, 1500 바이트 데이터 패킷)의 경우, SHA-1을 사용하는 HMAC는 20 바이트 MAC를 생성한다. 이러한 가변-고정 길이 프로세싱을 용이하게 하기 위해, 인증 계산 엔진(320)은, 앞서 조사된 세그먼트(들) 또는 윈도우(들)에 대한 상태 정보를 계속 유지하면서, 한번에 입력 데이터(310)의 하나의 비교적 작은 세그먼트 또는 윈도우에 대해 동작한다. 예를 들어, 인증 계산 엔진(320)은 입력 데이터로부터 데이터("데이터-1")의 50 바이트를 선택하고, 데이터-1을 요약하는 상태 정보("상태-1")를 결정하며, 이 상태-1 정보 및 또 다른 입력 데이터("데이터-2")의 50 바이트를 사용하여 데이터-1 및 데이터-2를 요약하는 상태 정보("상태-2")를 결정하여, 입력 데이터(310)의 전체를 요약하는 상태 정보("상태 N")를 결정한다. 상태-N 정보는 비밀 키와 함께 사용되어 인증 정보(330)(예를 들어, MAC 값)를 결정할 수 있다. 인증 정보(330)는 전술한 바와 같이 소정의 방식으로 입력 데이터(310)와 연관될 수 있다.
중요하게도, 본 발명의 일 실시예에 따르면, 인증 정보(330)를 결정하기 위해, 입력 데이터(310)는 뒤에서 앞으로(예를 들어, 마지막 비트 또는 바이트로부터 처음으로) 처리되어 트랜스코딩 동안 데이터 절단을 용이하게 한다. 예를 들어, 데이터(310)가 패킷화되는 경우, 그 데이터는 특정 순서로 데이터 패킷의 페이로드 부분에 상주할 것이며, 패킷 페이로드에 대한 인증 정보를 결정하기 위해, 데이터 는 그 특정 순서의 반대 순서로 처리된다.
위에서 설명한 바와 같이, 데이터는 데이터 패킷 또는 비트스트림 내에서 상이하게 정렬될 수 있고(예를 들어, 제 1 해상도 레벨에 대응하는 데이터는 데이터 패킷의 일부분 내에 존재할 수 있고, 제 2 해상도 레벨에 대응하는 데이터는 데이터 패킷의 제 2 부분에 존재할 수 있으며, 또는 그 대신 제 1 및 제 2 해상도 레벨의 데이터가 데이터 패킷 내에서 인터리빙될 수 있다), 트랜스코딩은 데이터가 정렬되는 방식을 고려하여 구현된다. 일반적으로, 인증 정보(330)를 결정하기 위해, 데이터(310)가 처리되는 순서는 데이터가 패킷 또는 비트스트림 내에 정렬되어 있는 순서 및 그에 따라 트랜스코딩이 수행되어야 하는 방식에 의존한다. 예를 들어, 데이터 패킷의 말단이 절단(본질적으로 컷오프)되어야 하는 경우, 전술한 바와 같이 패킷 페이로드는 뒤에서 앞으로 처리되고, 데이터의 세그먼트가 추출되고 소정의 방식으로 재-패킷화되어야 하는 경우, 패킷 페이로드는 대응하는 방식으로 처리된다. 데이터(310)가 처리되는 순서는 미리 협의될 수 있고 또는 데이터 패킷 또는 비트스트림 내에서 소정의 방식으로 알려질 수 있다.
도 4는 본 발명의 일 실시예에 따라 데이터를 처리하는 방법을 나타내는 데이터 흐름도이다. 일 실시예에서, 도 4의 방법은 위에서 도 2와 연계하여 전술한 데이터 어댑터(212) 및 상태 정보 엔진(214)을 사용하여 수행된다. 이러한 실시예에서, 도 4의 방법은 중간 서버, 또는 트랜스코더, 노드(120-123)(도 1)에서 수행된다.
도 4를 참조하면, 인증 정보(300)는 데이터(310)와 연관되는데, 즉, 인증 정 보(330)는 데이터(310)를 사용하여 결정되었다. 도 4의 예에서, 데이터(310)의 일부분은 절단되어야 한다. 구체적으로, 도 4의 예에서, 데이터의 제 1 부분(410)은 데이터(310)로부터 분리되어야 하고 아마도 폐기되어야 하며, 상보적인 제 2 부분(420)은 유지되어야 한다. 제 1 부분(410)은 트랜스코딩의 원하는 입도에 따라 사실상 임의의 길이를 가질 수 있다. 일 실시예에서, 제 1 부분(410)의 크기는 인증 정보(330)를 결정하기 위해(도 3의 설명을 참조) 사용되는 윈도우의 크기의 정수배이다.
더 나아가, 본래의 인증 정보(330)는 유지된다. 즉, 본래의 인증 정보(330)는 수정되지 않는다. 즉, 그것은 트랜스코딩 노드를 통과하거나 또는 트랜스코딩 노드의 입력으로부터 트랜스코딩 노드의 출력으로 복제된다. 알게 되는 바와 같이, 본래의 인증 정보(330)는 트랜스코딩된 데이터를 인증하는데 사용될 수 있고, 새로운 인증 값(예를 들어, MAC 값)은 트랜스코딩된 데이터에 대해 결정될 필요가 없다. 따라서, 트랜스코딩 노드는 종단간 보안을 유지하기 위해 인증 계산 엔진(330)(도 3)에 의해 사용되는 비밀 키를 필요로 하지 않는다.
수신기(예를 들어, 도 1의 클라이언트 노드(130))가 (데이터(310)의 전체를 사용하여 결정된) 인증 정보(330)를 사용하여 제 2 부분(420)(유지되어야 하는 데이터(310)의 일부분)을 인증하도록 하기 위해, 제 1 부분(410)(데이터(310)로부터 분리되어야 하는 데이터(310)의 일부분)은 제 1 부분(410)에 대한 상태 정보(430)를 결정하는 상태 정보 엔진(214)에 공급된다.
일 실시예에서, 연관된 인증 정보(330)를 갖는 데이터 부분(310)을 생성하는 경우 송신기는 또한 수정된(예를 들어, 절단된) 데이터 부분(420)에 대한 적절한 상태 정보(430)를 계산하는데 도움을 줄 수 있는 적절한 정보를 데이터 부분에 첨부한다.
상태 정보(430)는 제 2 데이터 부분(420) 및 인증 정보(330)와 소정의 방식으로 연관될 수 있다. 예를 들어, 데이터가 데이터 패킷으로 패킷화되는 경우, 상태 정보(430)는 데이터 패킷에 첨부될 수 있다. 이와 달리, 상태 정보(430)는 비트스트림 내에 포함될 수 있다.
일 실시예에서, 가변 값(440)은 데이터(310)로부터 제거된 데이터의 양을 식별하는데 충분한 정보를 제공한다. 이러한 실시예에서, 가변 값(440)은 그 길이가 2 바이트이다. 가변 값(440)의 값은 사용중인 협약(convention)에 따라 제 1 데이터 부분(410) 또는 데이터 부분(420)의 비트 길이를 나타낼 수 있다. 가변 값(440)은 각각의 데이터 패킷 또는 비트스트림 내에 포함될 수 있다.
일 실시예에서, 플래그 비트(445)는 인증 정보(330)와 연관된 데이터가 인증 정보를 결정하는 기초로서 사용되는 데이터는 아니지만, 그 대신 그 데이터의 수정된(예를 들어, 트랜스코딩된) 버전임을 나타내도록 설정된다. 다시 말해, 플래그 비트(445)는 데이터(310)가 수정되었음을 나타내도록 설정될 수 있다.
제 2 데이터 부분(420), 상태 정보(430) 및 인증 정보(330)는 가변 값(440) 및 플래그 비트(445)와 함께 또 다른 중간 서버 노드(120-123) 또는 클라이언트 노드(130)(도 1)로 전송될 수 있다. 제 2 데이터 부분(420)은 도 5와 연계하여 기술되는 바와 같이 인증될 수 있거나 또는 도 4에 도시되어 있는 바와 같이 더 적응될 수 있다.
도 4를 참조하면, 데이터의 제 3 부분(412)은 제 2 데이터 부분(420)으로부터 분리되어야 하고 아마도 폐기되어야 하며, 또한 제 4 부분(422)은 유지되어야 한다. 더 나아가, 본래의 인증 정보(330)는 유지되어야 한다. 수신기가 (데이터(310)의 전체를 사용하여 결정된) 인증 정보(330)를 사용하여 제 4 부분(422)(유지되어야 하는 부분)을 인증하도록 하기 위해, 제 3 부분(412)(제 2 부분(420)으로부터 분리되어야 하는 데이터의 일부분)은 도 3과 연계하여 위에서 설명한 것과 유사한 방식으로 상태 정보(430)와 함께 상태 정보 엔진(214)에 공급된다. 제 3 데이터 부분(412) 및 상태 정보(430)를 사용하여, 상태 정보 엔진(214)은 제 1 부분(410) 및 제 3 부분(412) 모두를 요약하는 상태 정보(432)를 결정한다. 상태 정보(432)는 전술한 바와 같이 소정의 방식으로 제 4 데이터 부분(422) 및 인증 정보(330)와 연관될 수 있다. 일 실시예에서, 가변 값(440)은 사용중인 협약에 따라서, 제거된 데이터의 양(예를 들어, 제 1 부분(410) 및 제 3 부분(412)의 비트의 총 길이) 또는 남아있는 데이터의 양(예를 들어, 제 4 부분(422)의 비트의 길이)을 나타내도록 업데이트될 수 있다. 일 실시예에서, 플래그 비트(445)는 전술한 바와 같이 설정된 채로 유지된다.
제 2 데이터 부분(422), 상태 정보(432) 및 인증 정보(330)는 가변 값(440) 및 플래그 비트(445)와 함께 또 다른 중간 서버 노드(120-123) 또는 클라이언트 노드(130)(도 1)로 전송될 수 있다. 제 2 데이터 부분(420)은 도 5와 연계하여 기술되는 바와 같이 인증될 수 있거나 또는 더 적응될 수 있다.
도 5는 본 발명의 일 실시예에 따라 데이터를 인증하는 방법을 설명하는 데이터 흐름도이다. 일 실시예에서, 도 5의 방법은 도 1의 클라이언트 노드(130)와 같은 수신 장치에서 구현된다.
도 5의 예에서, 유지된 데이터(예를 들어, 제 2 데이터 부분(420)) 및 제거된 데이터에 대한 상태 정보(예를 들어, 상태 정보(430))는 인증 계산 엔진(510)에 공급되어 상태 정보(520)를 결정하며, 이 상태 정보(520)는 제 2 인증 정보(530)를 결정하는데 사용된다. 상태 정보(520) 및 인증 정보(530)를 결정하는 경우, 제 2 데이터 부분(420)의 윈도우 또는 세그먼트가 도 3과 연계하여 위에서 설명한 바와 같이 처리될 수 있다. 인증 계산 엔진(510)은 인증 정보(330)를 결정하는데 사용되었던 것과 동일한 인증 기법을 채용한다.
제 2 데이터 부분(420) 내의 데이터의 양에 따라서, 인증 계산 엔진(510)은, 도 3과 연계하여 위에서 설명한 것과 유사한 방식으로 앞서 조사된 세그먼트(들) 또는 윈도우(들)에 대한 상태 정보를 유지한 채로, 한 번에 제 2 데이터 부분(420)의 하나의 비교적 작은 세그먼트 또는 윈도우에 대해 동작할 수 있다. 인증 정보(330)(데이터 소스에서 결정된 값) 및 제 2 인증 정보(530)는 비교될 수 있고, 값이 일치하는 경우, 제 2 데이터 부분(420)은 인증된다. 이러한 방식에서, 본래의 인증 정보(330)는 수정된(예를 들어, 적응된, 절단된 또는 트랜스코딩된) 데이터를 인증하는데 사용된다. 다시 말해, 데이터가 트랜스코딩에 의해 변경되었을지라도, 이 데이터는 여전히 인증될 수 있다.
도 6 및 도 7은 본 발명의 다양한 실시예에 따라 데이터를 처리하는 방업에 대한 흐름도(600,700)이다. 이 흐름도에는 특정 단계들이 기술되어 있지만, 이러한 단계들은 예시일 뿐이다. 즉, 본 발명의 실시예는 다양한 다른 단계 또는 흐름도에 기술된 단계들의 변형에도 잘 적용된다. 흐름도 내의 단계들은 개시되어 있는 것과는 다른 순서로 수행될 수 있고, 흐름도 내의 모든 단계가 수행되는 것은 아닐 수 있다. 흐름도에 의해 기술되는 방법의 전부 또는 일부는 예를 들어 컴퓨터 시스템의 컴퓨터 사용가능 매체에 상주하는 컴퓨터 판독가능 및 컴퓨터 실행가능 인스트럭션을 사용하여 구현될 수 있다.
도 6의 블록(610)에서, 도 3 및 도 4를 참조하면, 데이터(데이터(310)) 및 이 데이터에 대한 제 1 인증 정보(예를 들어, 인증 정보(330))가 수신된다. 데이터가 이하에서 설명되는 바와 같이 수정되는 경우 상태 정보를 결정하는데 유용할 수 있는 정보와 같은 추가적인 정보가 또한 수신될 수 있다.
블록(620)에서, 데이터의 적어도 일부분은 적응되어 수정된 데이터(예를 들어, 제 2 데이터 부분(420))를 생성한다. 일 실시예에서, 데이터로부터 분리되어야 하는 데이터의 제 1 부분(예를 들어, 제 1 데이터 부분(410)이 식별된다. 일 실시예에서, 요약 정보(예를 들어, 상태 정보(430))는 데이터의 제 1 부분에 대해 결정된다. 이러한 일 실시예에서, 데이터의 제 1 부분은 데이터로부터 분리되어 수정된 데이터(예를 들어, 제 2 데이터 부분(420))를 생성한다.
블록(630)에서, 일 실시예에서, 수정된 데이터(예를 들어, 제 2 데이터 부분(420)), 요약 정보(예를 들어, 상태 정보(430)) 및 제 1 인증 정보(예를 들어, 인증 정보(330))가 전송된다. 요약 정보 및 수정된 데이터는 수정된 데이터를 인 증하기 위해 제 1 인증 정보에 비교될 수 있는 제 2 인증 정보(예를 들어, 도 5의 인증 정보(520))를 결정하는데 유용하다. 따라서, 제 1 인증 정보는 수정된 데이터를 인증하는데 유용한 채로 유지된다.
일 실시예에서, 데이터로부터 분리된 데이터의 일부분의 길이를 식별하는데 충분한 정보(예를 들어, 가변 값(440))가 또한 전송된다. 일 실시예에서, 제 1 인증 정보가 본래의 데이터(예를 들어, 데이터(310)) 대신에 수정된 데이터(예를 들어 제 2 데이터 부분(420))와 함께 전송되고 있음을 나타내는 정보(예를 들어 플래그 비트(445))가 또한 전송된다.
도 7의 블록(710)에서, 도 4 및 도 5를 또한 참조하면, 제 1 복수의 데이터(예를 들어, 데이터(310))를 사용하여 결정된 제 1 인증 값(예를 들어, 인증 정보(330))이 수신된다. 제 1 복수의 데이터의 부분집합인 제 2 복수의 데이터(예를 들어, 제 2 데이터 부분(420))가 또한 수신된다. 제 1 복수의 데이터와 제 2 복수의 데이터 간의 차이에 대응하는 제 3 복수의 데이터(예를 들어, 제 1 데이터 부분(410))에 대한 제 1 요약 정보(예를 들어, 상태 정보(430))가 또한 수신된다.
블록(720)에서, 제 1 요약 정보는 제 2 복수의 데이터와 연계하여 사용되어 제 2 복수의 데이터의 적어도 일부분에 대한 제 2 요약 정보를 결정한다. 여기서 사용되는 바와 같이, "적어도 일부분"은 복수의 제 2 데이터의 일부 또는 전부를 지칭한다. 다시 말해, 블록(720)에서, 제 2 요약 정보는 제 2 복수의 데이터 모두(예를 들어, 제 2 데이터 부분(420))에 대해 결정될 수 있고, 또는 제 2 요약 정보는 제 2 복수의 데이터의 일부분(예를 들어, 제 3 데이터 부분(412))에 대해 결 정될 수 있다. 제 2 복수의 데이터의 전부를 포함한 임의의 부분에 대한 제 2 요약 정보를 결정하는 경우, 제 2 복수의 데이터의 윈도우 또는 세그먼트가 도 3과 연계하여 위에서 설명한 바와 같이 조사될 수 있다.
일 실시예에서, 제 2 복수의 데이터의 전부가 블록(720)에서 처리되는 경우, 제 2 인증 값(예를 들어, 인증 정보(520))이 결정된다. 제 2 인증 값은 제 1 인증 값에 비교되어 제 2 복수의 데이터를 인증한다.
일 실시예에서, 블록(720)에서 제 2 복수의 데이터 모두가 처리되는 것은 아니며, 제 1 인증 값, 제 2 요약 정보 및 제 2 복수의 데이터의 나머지는 제 2 장치(예를 들어, 도 1의 클라이언트 노드(130))에 전송된다. 제 2 장치는 제 2 요약 정보 및 제 2 복수의 데이터의 나머지를 사용하여 제 1 인증 값에 비교될 수 있는 제 2 인증 값을 결정함으로써 제 2 복수의 데이터의 나머지를 인증한다. 이와 달리, 제 2 장치는 제 2 복수의 데이터의 일부(전부는 아님)만을 처리하여 그 부분에 대한 요약 정보를 결정할 수 있으며, 그 요약 정보는 추가적인 프로세싱을 위해 제 1 인증 정보 및 제 2 복수의 데이터의 나머지(처리된 부분은 빠짐)와 함께 또 다른 장치로 전달될 수 있다.
요약하면, 본 발명에 따른 실시예는 트랜스코딩 및 인증 모두를 허용하는 방법 및 시스템을 제공한다. 데이터의 본래의 세트는 인증 값을 결정하는데 사용된다. 상태 정보는 트랜스코딩에 의해 본래의 세트로부터 제거되는 임의의 데이터에 대해 결정되고, 그 상태 정보는 이어서 나머지 데이터와 함께 사용되어 데이터의 본래의 세트에 대한 인증 값에 비교될 수 있는 인증 값을 결정할 수 있다. 상태 정보는 트랜스코딩에 의해 제거된 데이터에 대해 결정되기 때문에, 그와 같이 제거된 데이터의 양은 임의의 특정 양에 국한되지 않는다. 따라서, 종래의 접근방식과 관련하여, 보다 미세한 입도가 허용되고, 즉, 본 발명의 일 실시예에 따르면, 데이터의 보다 적은 양이 오버헤드를 상당히 증가시키는 일 없이 절단될 수 있다. 데이터가 트랜스코딩(예를 들어, 절단)되는 경우, 인증 오버헤드의 양은 (사용되는 인증 기법의 함수인) 상태 정보의 크기, 제거된 데이터의 양(또는 남아있는 데이터의 양)을 나타내는 변수의 길이 및 본래의 데이터가 수정되었음을 나타내는 플래그 비트만큼만 증가된다.
더 나아가, 트랜스코딩의 정도는 가요적이고, 즉 트랜스코딩의 정도는 데이터 소스에서 트랜스코딩의 정도를 예측하는 대신 트랜스코딩 노드에서 결정될 수 있다. 또한, 트랜스코딩 노드는 인증을 위해 데이터 소스에 의해 사용되었던 보안 키를 필요로 하지 않기 때문에 종단간 보안은 유지된다.
또한, 본 발명의 실시예에 따르면, 인증 정보는 인증과 트랜스코딩 간에 충돌 없이 패킷 단위로 제공될 수 있기 때문에, 인증은 패킷 손실에 강하다.
본 발명의 실시예들이 기술된다. 본 발명은 특정 실시예로 기술되었지만, 본 발명은 이러한 실시예에 국한되는 것으로 해석되어서는 아니되며, 그 보다는 후속하는 청구항에 따라 해석되어야 한다.
Claims (8)
- 네트워크에 통신가능하게 결합된 장치에서, 데이터를 처리하는 방법(600)으로서,자신과 연관된 제 1 인증 정보를 구비한 복수의 데이터를 수신하는 단계(610)- 상기 제 1 인증 정보는 상기 복수의 데이터를 사용하여 결정되었고 상기 복수의 데이터를 인증하는데 유용함 -와,복수의 수정된 데이터를 생성하기 위해 상기 복수의 데이터의 적어도 일부분을 적응(adapt)시키는 단계(620)와,상기 복수의 수정된 데이터 및 상기 제 1 인증 정보를 송신하는 단계(630)- 상기 제 1 인증 정보는 상기 복수의 수정된 데이터를 인증하는데 유용함 -를포함하는 데이터 처리 방법.
- 제 1 항에 있어서,상기 적응 및 송신 단계는,상기 복수의 데이터로부터 분리되는 상기 복수의 데이터의 일부분(410)을 식별하는 단계와,상기 분리되는 데이터의 일부분에 대한 요약 정보(430)를 결정하는 단계- 상기 요약 정보 및 상기 복수의 수정된 데이터는 상기 복수의 수정된 데이터를 인증 하기 위해 상기 제 1 인증 정보에 비교될 수 있는 제 2 인증 정보를 결정하는데 유용함 -와,상기 복수의 수정된 데이터(420)를 생성하기 위해 상기 복수의 데이터로부터 상기 데이터의 일부분을 분리하는 단계와,상기 복수의 수정된 데이터 및 상기 제 1 인증 정보 외에 상기 요약 정보를 송신하는 단계를 더 포함하는데이터 처리 방법.
- 제 2 항에 있어서,상기 복수의 데이터로부터 분리된 상기 데이터의 일부분의 길이를 식별하는데 충분한 정보(440)를 송신하는 단계를 더 포함하는데이터 처리 방법.
- 제 2 항에 있어서,상기 상태 정보를 결정하는데 유용한 정보를 수신하는 단계를 더 포함하는데이터 처리 방법.
- 제 1 항에 있어서,상기 제 1 인증 정보가 상기 복수의 데이터 대신 상기 복수의 수정된 데이터와 함께 송신되고 있음을 나타내는 정보(445)를 송신하는 단계를 더 포함하는데이터 처리 방법.
- 제 1 항에 있어서,상기 제 1 인증 정보는 상기 복수의 데이터를 특정 순서로 처리함으로써 결정되었고, 상기 순서를 나타내는 정보는 상기 복수의 데이터 내에 포함되는데이터 처리 방법.
- 제 1 항에 있어서,상기 제 1 인증 정보는 비밀키를 사용하여 결정되었고, 상기 처리는 상기 비밀키를 사용하여 수행되는데이터 처리 방법.
- 제 1 항에 있어서,상기 복수의 데이터는 패킷화되고, 상기 적응 단계는 데이터 패킷을 절단(truncate)하는 단계를 포함하는데이터 처리 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/591,029 US20080115194A1 (en) | 2006-10-31 | 2006-10-31 | Authentication of modified data |
US11/591,029 | 2006-10-31 | ||
PCT/US2007/022907 WO2008054739A2 (en) | 2006-10-31 | 2007-10-30 | Authentication of modified data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090083426A true KR20090083426A (ko) | 2009-08-03 |
KR101150619B1 KR101150619B1 (ko) | 2012-05-30 |
Family
ID=39344884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097011065A KR101150619B1 (ko) | 2006-10-31 | 2007-10-30 | 데이터 처리 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080115194A1 (ko) |
EP (1) | EP2082526A4 (ko) |
KR (1) | KR101150619B1 (ko) |
WO (1) | WO2008054739A2 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5286380B2 (ja) * | 2011-03-07 | 2013-09-11 | 株式会社東芝 | データ送信装置および送信方法 |
US9445363B2 (en) * | 2012-02-15 | 2016-09-13 | Acer Incorporated | Method of handling transmission configuration of a communication device and related communication device |
JP5612006B2 (ja) | 2012-03-13 | 2014-10-22 | 株式会社東芝 | データ送信装置、データ受信装置、及びプログラム |
US9438425B2 (en) * | 2014-08-15 | 2016-09-06 | Alcatel Lucent | Robust MAC aggregation with short MAC tags |
US10425453B2 (en) | 2015-04-17 | 2019-09-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Dynamic packager network based ABR media distribution and delivery |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1117463C (zh) * | 1998-07-13 | 2003-08-06 | 国际商业机器公司 | 从发送机经变码器向接收机发送信息数据的方法及其装置 |
IL140141A (en) * | 1999-12-14 | 2007-07-24 | Ibm | Transcoding in data communications |
JP2002108870A (ja) * | 2000-09-27 | 2002-04-12 | Oki Electric Ind Co Ltd | 情報処理システムおよび情報処理方法 |
US7756271B2 (en) * | 2004-06-15 | 2010-07-13 | Microsoft Corporation | Scalable layered access control for multimedia |
US20060047967A1 (en) * | 2004-08-31 | 2006-03-02 | Akhan Mehmet B | Method and system for data authentication for use with computer systems |
KR20060054519A (ko) * | 2004-11-16 | 2006-05-22 | 삼성전자주식회사 | 홈 네트워크에서 컨텐츠를 전송하는 장치, 시스템 및 그방법 |
-
2006
- 2006-10-31 US US11/591,029 patent/US20080115194A1/en not_active Abandoned
-
2007
- 2007-10-30 EP EP07867313.4A patent/EP2082526A4/en not_active Withdrawn
- 2007-10-30 KR KR1020097011065A patent/KR101150619B1/ko not_active IP Right Cessation
- 2007-10-30 WO PCT/US2007/022907 patent/WO2008054739A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2082526A4 (en) | 2014-09-10 |
EP2082526A2 (en) | 2009-07-29 |
KR101150619B1 (ko) | 2012-05-30 |
WO2008054739A3 (en) | 2008-08-28 |
US20080115194A1 (en) | 2008-05-15 |
WO2008054739A2 (en) | 2008-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4869938B2 (ja) | データの完全性を保証するための方法及び装置 | |
KR100942889B1 (ko) | 데이터 부분을 최적화하는 방법 | |
KR101002112B1 (ko) | 데이터를 트랜스코딩하는 방법 | |
US6989773B2 (en) | Media data encoding device | |
US7581094B1 (en) | Cryptographic checksums enabling data manipulation and transcoding | |
US7797454B2 (en) | Media data transcoding devices | |
US20050182972A1 (en) | Methods for generating data for describing scalable media | |
WO2005081536A1 (en) | Media data decoding device | |
WO2005081537A1 (en) | Methods for scaling encoded data without requiring knowledge of the encoding scheme | |
WO2005081534A1 (en) | Methods for scaling a progressively encrypted sequence of scalable data | |
KR101150619B1 (ko) | 데이터 처리 방법 | |
KR100962852B1 (ko) | 데이터를 프로세스하는 방법 | |
KR101041719B1 (ko) | 데이터를 프로세싱하는 방법 | |
Zhu et al. | JPEG 2000 encryption enabling fine granularity scalability without decryption | |
Gao et al. | Improved optimized content-aware authentication scheme for secure scalable streaming and transcoding with JPEG-2000 images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |