What is claimed is:
1. A method of simultaneously computing multiple complex number multiplication products of a complex number, the method comprising:
maintaining the complex number in Cartesian coordinate form as the complex number is multiplied and rotates in a complex plane;
multiplying by rotating the complex number in a series of stages, where a second stage rotates a result of a first stage by an angle where an absolute value of the angle is an arctangent of a power of 2, wherein the power of 2 for the second stage is one less than the power of 2 for the first stage; and
calculating, in the second stage, both positive and negative rotations of the multiplicand such that more than one multiplication product is computed.
2. The method as defined in claim 1, wherein both positive and negative rotations of the complex number are computed in all stages but the first stage.
3. The method as defined in claim 1, wherein 8 complex number multiplication products are computed.
4. The method as defined in claim 1, wherein the multiple complex number multiplication products span a range of approximately 90 degrees relative to the complex number.
5. The method as defined in claim 1, wherein the first stage multiplication rotates the complex number by 45 degrees.
6. The method as defined in claim 1, further comprising:
retrieving a calculated rotation angle;
selecting one of the multiple products, the selected product corresponding to a product angle such that the product angle plus an integer multiple of 90 degrees corresponds approximately to the calculated rotation angle; and
rotating the selected product by the integer multiple of 90 degrees such that the selected product after rotation corresponds approximately to the calculated rotation angle.
7. The method as defined in claim 6, wherein the integer multiple is selected from the group of 0, 1, 2, and 3.
8. The method as defined in claim 6, wherein the integer multiple is selected from the group of 0, 1, 2, and 3.
9. A multiplier circuit for computing multiple complex number multiplication products of an input complex number represented as an input vector, the circuit comprising:
a first rotation circuit, where the first rotation circuit rotates the vector by a first angle, where an absolute value of the first angle is defined by an arctangent of a first power of 2; and
a second rotation circuit coupled to an output of the first rotation circuit, where the second rotation circuit rotates the output of the first rotation circuit in two separate rotations, where the two separate rotations rotate in opposite directions, where the two separate rotations are further characterized by having an angle of rotation with an absolute value defined by an arctangent of a second power of 2, where the second power of 2 is one less than the first power of 2.
10. The multiplier circuit as defined by claim 9, where the first angle is 45 degrees.
11. The multiplier circuit as defined by claim 9, further including additional rotation circuits such that the multiplier circuit generates multiple outputs which correspond to rotations of the input complex number in a range of approximately 90 degrees.
12. The multiplier circuit as defined by claim 9, further including additional rotation circuits such that the multiplier circuit generates multiple outputs which correspond to rotations of the input complex number in a range of approximately 180 degrees.
13. The multiplier circuit as defined by claim 9, further comprising:
an angle generator circuit that provides an indication of angle between 0 and 360 degrees; and
an angle selector circuit coupled to outputs of the second rotation circuit and coupled to the angle generator circuit, the angle selector circuit selecting the output of the second rotation circuit where the total rotation by the multiplier circuit to the selected output plus an integer multiple of 90 degrees corresponds to the indicated angle from the angle generator.
14. The multiplier circuit as defined by claim 9, further comprising a magnitude compensation circuit, the magnitude compensation circuit modifying a magnitude of an output such that the magnitude of the output is substantially equal to a magnitude of the input complex number.
15. The multiplier circuit as defined in claim 9, wherein the input vector is rotated by approximately 92.7, 78.5, 64.7, 50.4, 39.6, 25.3, 11.5, and 2.7 degrees.
16. A multiplier circuit that simultaneously computes multiple complex number multiplication products of a complex number, the multiplier circuit comprising:
means for maintaining the complex number in Cartesian coordinate form as the complex number is multiplied and rotates in a complex plane;
means for multiplying by rotating the complex number in a series of stages, where a second stage rotates a result of a first stage by an angle where an absolute value of the angle is an arctangent of a power of 2, wherein the power of 2 for the second stage is one less than the power of 2 for the first stage; and
means for calculating, in the second stage, both positive and negative rotations of the multiplicand such that more than one multiplication product is computed.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A smart card comprising a data store and a processor, said smart card being configured to connect with a host data processing apparatus,
said smart card comprising authentication logic configured, when connected to said host data processing apparatus, to identify a secure data processing domain having predetermined properties within said host data processing apparatus; and
said smart card is configured to delegate at least some data processing operations to be processed within said secure data processing domain of said host data processing apparatus in response to identifying said secure data processing domain.
2. A smart card according to claim 1, wherein said smart card is operable in response to detecting said secure processing domain to transmit an application to said host data processing apparatus for processing in said secure domain.
3. A smart card according to claim 2, said data store storing two versions of an application, one of said versions being suitable for processing by said smart card and one of said versions being suitable for processing by said host data processing apparatus, said smart card being operable in response to detecting said secure processing domain to transmit said version of said application suitable for processing by said host data processing apparatus to said host data processing apparatus for processing in said secure domain.
4. A smart card according to claim 3, wherein said version of said application suitable for processing by said host data processing apparatus comprises code operable to initiate execution of security critical portions of said application on said smart card.
5. A smart card according to claim 1, said smart card being operable to transmit scheduling signals to control scheduling of said delegated data processing operations.
6. A smart card according to claim 1, said smart card being operable to detect functionality present within said secure processing domain of said host data processing apparatus and to delegate processing of a function within an application being processed by said smart card if said functionality is available within said secure processing domain.
7. A smart card according to claim 6, wherein said smart card further comprises an application programming interface implementation, said application programming interface implementation being operable to perform said delegation of function processing to said secure processing domain.
8. A smart card according to claim 7, said application programming interface implementation being operable to be enabled in response to detection of said secure processing domain having predetermined properties within said host data processing apparatus and operable to be disabled in response to detection of no secure processing domain within said host data processing apparatus.
9. A smart card according to claim 1, said smart card comprising instructions from an instruction set native to said host data processing apparatus, said smart card being operable in response to detection of said secure processing domain to transmit said instructions to said host data processing apparatus for processing within said secure processing domain.
10. A data processing apparatus, said data processing apparatus having a plurality of domains comprising a secure domain and a non-secure domain, such that when said data processing apparatus is executing a program in said secure domain said program has access to secure data which is not accessible when said data processing apparatus is operating in said non-secure domain, said data processing apparatus comprising a docking port for receiving a smart card, said docking port comprising input and output ports configured to receive and transmit data from and to said smart card; wherein
said data processing apparatus is configured in response to receiving signals indicating data processing operations to be delegated from said smart card to initiate said delegated data processing operations within said secure domain.
11. A data processing apparatus according to claim 10, said data processing apparatus comprising at least one application or function stored within said secure domain and operable to be processed in response to control signals received from a smart card within said docking port.
12. A data processing apparatus according to claim 11, wherein said at least one function or application comprises at least one of the following, a secure user interface display driver and an optimised cryptographic implementation.
13. A data processing apparatus according to claim 10, wherein said data processing apparatus is operable to receive delegated operations from a smart card within said docking port and to process said delegated operations within said secure domain in response to scheduling signals received from said smart card.
14. A data processing apparatus according to claim 10, wherein said data processing apparatus is operable to receive instructions from an instruction set native to said data processing apparatus and is operable to process said instructions within said secure domain.
15. A data processing apparatus according to claim 10, wherein said data processing apparatus further comprises a monitor mode, said data processing apparatus only being able to switch between said secure and said non-secure domain while operating in said monitor mode.
16. A data processing apparatus according to claim 10, wherein said data processing apparatus comprises at least two processor cores a secure processor core and a non-secure processor core, said data processing apparatus being operable to process data on said secure core when operating in said secure domain and on said non-secure core when operating in said non-secure domain.
17. A system comprising a smart card according to claim 1, connected to a data processing apparatus according to claim 10.
18. A system according to claim 17, said system comprising a mobile phone.
19. A system according to claim 17, said system comprising a set top box.
20. A method of performing secure data processing using a smart card connected to a host data processing apparatus comprising the following steps:
identifying a secure processing domain within said host data processing apparatus from said smart card;
delegating data processing operations to said host data processing apparatus from said smart card; and
processing said delegated data processing within said secure domain of said host data processing apparatus.