Abstract:
A disclosed image forming apparatus has a cryptographic unit for performing a cryptographic function. The image forming apparatus includes a first managing unit for managing data representing first lists of cryptographic strengths authorized to be used separately for each subject that uses the cryptographic function; and a second managing unit for managing data representing a second list of cryptographic strengths set for the image forming apparatus. The cryptographic unit obtains the first list of the cryptographic strengths authorized to be used for the subject attempting to use the cryptographic function from the first managing unit. The obtained first list of the cryptographic strengths and the second list of the cryptographic strengths are logically multiplied to produce one or more first logical multiplication cryptographic strengths. The one or more first logical multiplication cryptographic strengths are usable to perform the cryptographic function.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to an image forming apparatus, a data processing method, and a computer readable recording medium, and more specifically, to an image forming apparatus, a data processing method, and a computer readable recording medium each having a cryptographic function. 
         [0003]    2. Description of the Related Art 
         [0004]    In recent years, image forming apparatuses have provided various functions using networks. To ensure security of the functions and data transferred by the functions, the image forming apparatuses have been equipped with a cryptographic function such as encrypted communications (for example, Patent Document 1). 
         [0005]    [Patent Document 1] Japanese Patent Application Publication No. 2006-115379 
         [0006]    However, cryptographic strengths used for SSL (Secure Socket Layer) communication and the like have been conventionally set for each apparatus. Therefore, it has been difficult to change cryptographic strengths flexibly in accordance with a subject that uses the cryptographic function, such as a user, an application, and the like. 
       SUMMARY OF THE INVENTION 
       [0007]    In view of the aforementioned circumstances, it is an object of at least one embodiment of the present invention to provide an image forming apparatus, a data processing method, and a computer readable recording medium, which are capable of flexibly changing usable cryptographic strengths in accordance with a subject that uses a cryptographic function. 
         [0008]    According to one aspect of the present invention, an image forming apparatus having a cryptographic unit for performing a cryptographic function includes a first managing unit for managing data representing first lists of cryptographic strengths authorized to be used separately for each subject that uses the cryptographic function; and a second managing unit for managing data representing a second list of cryptographic strengths set for the image forming apparatus. The cryptographic unit obtains the first list of the cryptographic strengths authorized to be used for the subject attempting to use the cryptographic function from the first managing unit. The obtained first list of the cryptographic strengths and the second list of the cryptographic strengths are logically multiplied to produce one or more first logical multiplication cryptographic strengths. The one or more first logical multiplication cryptographic strengths are usable to perform the cryptographic function. 
         [0009]    According to another aspect of the present invention, a data processing method executed by an image forming apparatus having a cryptographic unit for performing a cryptographic function is provided. The data processing method includes the steps of obtaining a first list of cryptographic strengths authorized to be used for a subject attempting to use the cryptographic function from a first managing unit for managing data representing first lists of cryptographic strengths authorized to be used separately for each subject that uses the cryptographic unit; and logically multiplying a second list of cryptographic strengths set for the image forming apparatus and managed in a second managing unit and the obtained first list of the cryptographic strengths to produce one or more first logical multiplication cryptographic strengths, to use the one or more first logical multiplication cryptographic strengths to perform the cryptographic function. 
         [0010]    According to another aspect of the present invention, a computer readable recording medium containing a computer program for causing an image forming apparatus having a cryptographic unit to perform a cryptographic function is provided. The computer program comprising the codes for obtaining a first list of cryptographic strengths authorized to be used for a subject attempting to use the cryptographic function from a first managing unit for managing data representing first lists of cryptographic strengths authorized to be used separately for each subject that uses the cryptographic function; and logically multiplying the obtained first list of the cryptographic strengths and a second list of cryptographic strengths set for the image forming apparatus and managed in a second managing unit to produce one or more first logical multiplication cryptographic strengths. The one or more first logical multiplication cryptographic strengths are usable to perform the cryptographic function. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  is a diagram showing a hardware configuration example of a multifunction peripheral of an embodiment of the present invention; 
           [0012]      FIG. 2  is a diagram showing a software configuration example of a multifunction peripheral of an embodiment of the present invention; 
           [0013]      FIG. 3  is a diagram for describing a structure for achieving consistency of cryptographic data; 
           [0014]      FIG. 4  is a diagram for describing property values in a VM; 
           [0015]      FIG. 5  is a schematic diagram showing a relationship between a VM environment and a native layer; 
           [0016]      FIG. 6  is a diagram showing a software configuration example to realize a relationship among a shared memory, a cryptographic provider, and a data obtain library in an embodiment of the present invention; 
           [0017]      FIG. 7  is a diagram showing an outline of a JCE; 
           [0018]      FIG. 8  is a sequence diagram showing a process order to share data between a VM environment and a native layer; 
           [0019]      FIG. 9  is a diagram showing an example of a cryptographic data setting display; 
           [0020]      FIG. 10  is a diagram showing an example of a confirmation display; 
           [0021]      FIG. 11  is a sequence diagram showing a process order to share data among VM environments; 
           [0022]      FIG. 12  is a sequence diagram showing a process order to display a cryptographic data setting display by reflecting a country where a multifunction peripheral is located; 
           [0023]      FIG. 13  is a diagram showing a structure for changing usable cryptographic strengths for each user in a multifunction peripheral of an embodiment of the present invention; 
           [0024]      FIG. 14  is a sequence diagram showing a process order to change usable cryptographic strengths for each user; and 
           [0025]      FIG. 15  is a diagram showing a structure for changing usable cryptographic strengths for each component in a multifunction peripheral of an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0026]    Hereinafter, an embodiment of the present invention is described with reference to the drawings. In this embodiment, a multifunction peripheral is taken as an example of an image forming apparatus. A multifunction peripheral  1  is an image forming apparatus which realizes plural functions of a printer, a copier, a scanner, a facsimile, and the like in one housing. 
         [0027]      FIG. 1  shows a hardware configuration example of the multifunction peripheral of this embodiment. As hardware of the multifunction peripheral  1 , a controller  601 , an operations panel  602 , a facsimile control unit (FCU)  603 , an imaging unit  604 , and a printing unit  605  are included. 
         [0028]    The controller  601  includes a CPU  611 , an ASIC  612 , an NB  621 , an SB  622 , an MEM-P  631 , an MEM-C  632 , an HDD (Hard Disk Drive)  633 , a memory card slot  634 , an NIC (Network Interface Controller)  641 , a USB device  642 , an IEEE 1394 device  643 , and a Centronics device  644 . 
         [0029]    The CPU  611  is an IC used for various data processes. The ASIC  612  is an IC used for various image processes. The NB  621  is a north bridge of the controller  601 . The SB  622  is a south bridge of the controller  601 . The MEM-P  631  is a system memory of the multifunction peripheral  1 . The MEM-C  632  is a local memory of the multifunction peripheral  1 . The HDD  633  is storage of the multifunction peripheral  1 . The memory card slot  634  is a slot to receive a memory card  635 . The NIC  641  is a controller used for network communications using MAC addresses. The USB device  642  is a device that provides a connection terminal of a USB standard. The IEEE 1394 device  643  is a device that provides a connection terminal of an IEEE 1394 standard. The Centronics device  644  is a device that provides a connection terminal of Centronics specification. The operations panel  602  serves as hardware (operating device) through which an operator inputs information into the multifunction peripheral  1  and also as hardware (display device) through which an operator obtains data from the multifunction peripheral  1 . 
         [0030]      FIG. 2  shows a software configuration example of the multifunction peripheral of this embodiment. As shown in  FIG. 2 , the multifunction peripheral  1  has three Java (registered trademark) VMs (Virtual Machines), namely a VM  11   a , a VM  11   b , and a VM  11   c  (hereinafter referred to as a “VM  11 ” when collectively called). The VM  11  converts a program in a bytecode form which is unique to Java (registered trademark) into a native code so that the CPU  611  executes the program. 
         [0031]    Software components (hereinafter simply referred to as “components”) operated in each VM  11  are logically categorized into layers of an application mechanism, a service mechanism, a device mechanism, and the like to be implemented. A component which basically executes a process to provide a service (for example, copying, printing, and the like) in a unit recognized by a user belongs to the application mechanism. A component which realizes a more primitive function (commonly) used by the plural components belonging to the application mechanism belongs to the service mechanism. A component which controls the hardware of the multifunction peripheral  1  belongs to the device mechanism. 
         [0032]    Further, the multifunction peripheral  1  also includes a component as native code which is originally written in C language and the like and then converted through compiling and linking into a machine language. In  FIG. 2 , a native layer  12  is provided as an environment to execute such a component. 
         [0033]    In  FIG. 2 , a component A which is operated in the VM  11   a  belongs to the application mechanism. A component B which is operated in the VM  11   b  belongs to the service mechanism. A component C which is operated in the VM  11   c  and a component D which is operated in the native layer  12  belong to the device mechanism. It is not that each layer is determined to be managed by a specific VM  11 ; that is, a component belonging to any one of the application mechanism, the service mechanism, and the device mechanism may be executed in any of the VMs  11  and the native layer  12 . 
         [0034]    Each component shown in  FIG. 2  references cryptographic data. The cryptographic data include a cryptographic method used for SSL (Secure Socket Layer) communications, a location (storage place) of a CA (Certificate Authority) certificate, a password to access the CA certificate, and the like. The components A, B, and C are executed in different VMs  11 . The component D is in native code. That is, the components are executed in different program execution environments and process spaces. In these circumstances, consistency of cryptographic data is achieved throughout the program execution environments in the multifunction peripheral  1  of this embodiment. 
         [0035]      FIG. 3  shows a structure for achieving consistency of the cryptographic data. In a static state (where the multifunction peripheral  1  is not operated), the cryptographic data are stored (made persistent) in a data holding repository  21 . The data holding repository  21  is a predetermined storage area of a nonvolatile memory medium such as the HDD  633 . When the multifunction peripheral  1  is booted, the cryptographic data of the data holding repository  21  are loaded into a shared memory  22  (S 11 ). This loading is performed by any one of cryptographic providers  13   a ,  13   b , and  13   c  which are described below (hereinafter referred to collectively as a “cryptographic provider  13 ”). 
         [0036]    The shared memory  22  is a memory area (what is called a shared memory) that can be accessed (referenced and the like) by the program execution environments of VM  11   a , VM  11   b , VM  11   c , and the native layer  12 . The shared memory  22  is formed in the MEM-P  631 . The cryptographic data loaded in the shared memory  22  are set as property values of each VM  11  by the cryptographic provider  13  serving as a program module programmed (plugged-in) in the corresponding VM  11  (S 12 ). 
         [0037]    Here, the property values of the VM  11  are attribute values to define operational environments and the like in one VM in a Java standard system. The property values are stored in a memory so that a program executed in the VM can reference the property values.  FIG. 4  is a diagram for describing the property values of the VM. 
         [0038]      FIG. 4  shows an SSL cipher suites list p 1 , a CA certificate location p 2 , a CA certificate access password p 3 , and the like as property values for holding the cryptographic data. These values are Java standard property values. 
         [0039]    The SSL cipher suites list p 1  shows recommended values corresponding to a type of encryption (cryptographic strength) in performing the SSL (Secure Socket Layer) communications. The CA certificate location p 2  shows a location where the CA certificate is stored. The CA certificate access password p 3  shows a password required to access the CA certificate. Note that the property values can be set and obtained by a setProperty method or a getProperty method as Java standard methods. 
         [0040]    Therefore, by using the setproperty method, the cryptographic provider  13  sets the three property values shown in  FIG. 4  in the VM  11  to which the cryptographic provider  13  belongs. Each component which uses the cryptographic data obtains the property values by using the getProperty method (S 13 ). Here, for example, the components A, B, and C obtain the property values set in the different VMs  11 . Since the property values set in the VMs  11  come from the same shared memory  22 , the same property values are referenced by the components. As a result, there is no inconsistency among the VMs  11 . 
         [0041]    On the other hand, a data obtain library  14  is implemented in the native layer  12 , where the VM  11  is not provided. The data obtain library  14  includes an interface (function) to obtain cryptographic data set in the shared memory  22 . For example, the component D in the native layer  12  obtains the cryptographic data through the data obtain library  14 . As a result, consistency of the cryptographic data is achieved among the environments in VMs  11  (VM environments) and the native layer  12 . 
         [0042]    A relationship between the VM environment and the native layer  12  is further briefly described.  FIG. 5  is a schematic diagram showing the relationship between the VM environment and the native layer  12 . 
         [0043]    As shown in  FIG. 5 , the cryptographic provider  13  in the VM environment registers cryptographic data into the shared memory  22 , and at the same time, obtains the cryptographic data from the shared memory  22 . Further, the data obtain library  14  in the native layer  12  obtains the cryptographic data registered by the cryptographic provider  13  from the shared memory  22 . 
         [0044]      FIG. 6  is a diagram showing a software configuration example for realizing a relationship among the shared memory, the cryptographic provider, and the data obtain library of this embodiment. 
         [0045]    The shared memory  22  is accessed through a shared memory operation library  221  in the native layer  12 . The data obtain library  14  in the native layer  12  can directly use the shared memory operation library  221 . The cryptographic provider  13  serving as a component of the VM environment, on the other hand, uses the shared memory operation library  221  through a JNI (Java Native Interface) library  15 . The cryptographic provider  13  uses both a write function and a read function of the shared memory operation library  221 . The data obtain library  14  uses only the read function of the shared memory operation library  221 . 
         [0046]    The cryptographic provider  13  is preferably implemented as a provider (plug-in) of the Java standard system. In this embodiment, the cryptographic provider  13  is implemented as a provider of a Java cryptographic extension (JCE (Java cryptography Extension)) function. The JCE function provides frameworks and implementations of encryption, generation of a key, and the like of the Java standard. A part of the implementations can be extended by the provider (JCE provider). 
         [0047]      FIG. 7  is a diagram for describing an outline of the JCE. As shown in  FIG. 7 , the JCE provider is required to have implementation for an interface defined in a JCE SPI (Service Provider Interface). As a result, a request to use a service made through the interface of the JCE is sent to the JCE provider. As a result, implementation unique to the JCE provider is executed. 
         [0048]      FIG. 7  also shows JSSE (Java Secure Socket Extension). The JSSE provides frameworks and implementations of SSL and the like of a Java version. A part of the implementations can be extended by a provider (JSSE provider). 
         [0049]    In the JSSE provider, implementation of the JCE provider is used for a process such as encryption (shaded area). Therefore, by implementing the cryptographic provider  13  as the JCE provider, the cryptographic provider  13  can be called for a cryptographic process in the SSL communication. 
         [0050]    Hereinafter, a process order of the multifunction peripheral  1  is described.  FIG. 8  is a sequence diagram for describing a process order to share data among the VM environments and the native layer. In  FIG. 8 , the VM  11   c  is omitted for convenience. The data holding repository  21  is included in a rectangle of the VM  11   a , however, this does not mean that the data holding repository  21  is implemented in the VM  11   a . The data holding repository  21  is independent of the program execution environments. 
         [0051]    For example, when cryptographic data are inputted by an operator through a cryptographic data setting display shown on the operations panel  602 , an UI unit  16  updates the cryptographic data stored in the data holding repository  21  by the inputted data (S 101 ). Note that the UI unit  16  is a component for controlling the display shown on the operations panel  602  and the like in the multifunction peripheral  1 . In the example of  FIG. 8 , the UI unit  16  is operated in the VM  11   a.    
         [0052]      FIG. 9  shows an example of the cryptographic data setting display. In  FIG. 9 , there is shown an example of a display to allow the operator to select at least one cryptographic strength (cipher suites). When the cryptographic strength is selected and an “OK” button is pressed in the cryptographic data setting display, the UI unit  16  shows a confirmation display. 
         [0053]      FIG. 10  shows an example of the confirmation display. This confirmation display shows a message asking whether a rebooting can be performed. When an “OK” button is pressed in the confirmation display, step S 101  is executed. 
         [0054]    Subsequently, the UI unit  16  reboots the multifunction peripheral  1  (S 102 ). In this rebooting, the power of the multifunction peripheral  1  is not necessarily required to be turned off. For example, each VM  11  may be rebooted in a software manner. Alternatively, the rebooting of the multifunction peripheral  1  and the VM  11  may be performed manually by an operator. 
         [0055]    For example, when a method related to the cryptographic function of the cryptographic provider  13   a  in the VM  11   a  is called by another component in the rebooting process, the cryptographic provider  13   a  obtains cryptographic data from the data holding repository  21  (S 103 ) and writes the cryptographic data into the memory  22  (S 104 ). Note that the method of the cryptographic provider  13   a  serving as the JCE provider is necessarily called in the booting process (in initialization). 
         [0056]    Next, when a method related to a cryptographic function of the cryptographic provider  13   b  in the VM  11   b  is called by another component, the cryptographic provider  13   b  obtains the cryptographic data from the shared memory  22  (S 105 ) and sets the cryptographic data as a property value (see  FIG. 4 ) of the VM  11   b  (S 106 ). After that, when the component B in the VM  11   b  performs an SSL communication and the like, the property value is referenced by an instance of a class for Java standard SSL communications and the like (S 107 ). 
         [0057]    When the component D in the native layer  12  performs a process related to encryption such as SSL communication, the component D obtains the cryptographic data written in the shared memory  22  by using the data obtain library  14  (S 108  to S 110 ). 
         [0058]    As described above, consistency of the cryptographic strength to be used and the like is achieved between the components B and D. 
         [0059]    In  FIG. 8 , the cryptographic provider  13   a  of the VM  11   a  writes the cryptographic data into the shared memory  22 , however, the cryptographic provider  13  of the cryptographic function that is called first may write the cryptographic data. For example, when the cryptographic provider  13   b  is called first, the cryptographic provider  13   b  obtains the cryptographic data from the data holding repository  21  and writes the cryptographic data into the shared memory  22 . Specifically, the cryptographic provider  13  whose method is called first checks the contents of the shared memory  22 . When the cryptographic data have not been written in the shared memory  22 , the cryptographic provider  13  registers the cryptographic data in the shared memory  22 . When the cryptographic data have already been written in the shared memory  22 , the cryptographic provider  13  obtains the cryptographic data from the shared memory  22 . 
         [0060]    Data sharing among VMs  11 , which is simplified in  FIG. 8 , is described.  FIG. 11  is a sequence diagram for describing a process order to share data among VM environments. In  FIG. 11 , details of the process performed in the “booting” in  FIG. 8  are shown. In  FIG. 11 , the cryptographic data have already been written into the shared memory  22  by any one of the cryptographic provider  13 . 
         [0061]    When a method related to the cryptographic function of the cryptographic provider  13   a  of the VM  11   a  is called by, for example, the component A in the rebooting process (S 201 ), the cryptographic provider  13   a  obtains the cryptographic data from the shared memory  22  (S 202 ) and sets the cryptographic data as a property value (see  FIG. 4 ) of the VM  11   a  (S 203 ). After that, when the component A performs SSL communications and the like, the property value is referenced by an instance of a class such as SSL communication of the Java standard (S 204 ). 
         [0062]    Subsequently, when a method related to the cryptographic function of the cryptographic provider  13   c  of the VM  11   c  is called by, for example, the component C (S 211 ), the cryptographic provider  13   c  obtains the cryptographic data from the shared memory  22  (S 212 ) and sets the cryptographic data as a property value (see  FIG. 4 ) of the VM  11   c  (S 213 ). After that, when the component C performs SSL communications and the like, the property value is referenced by an instance of a class such as SSL communication of the Java standard (S 214 ). 
         [0063]    Next, when a method related to a cryptographic function of the cryptographic provider  13   b  of the VM  11   b  is called by, for example, the component B (S 221 ), the cryptographic provider  13   b  obtains the cryptographic data from the shared memory  22  (S 222 ) and sets the cryptographic data as a property value (see  FIG. 4 ) of the VM  11   b  (S 223 ). After that, when the component B performs SSL communications and the like, the property value is referenced by an instance of a class such as SSL communications of the Java standard (S 224 ). 
         [0064]    On the cryptographic data setting display shown in  FIG. 9 , there is a list of the cryptographic strengths. The list of the cryptographic strengths basically usable in the multifunction peripheral  1  are set and shown on the cryptographic data setting display. The cryptographic strengths stored in the HDD  633  and the like are to be displayed. However, there is a problem in exporting techniques related to encryption to specific countries (export control). In view of this circumstance, the list of selectable cryptographic strengths may be dynamically changed depending on a place (country) where the multifunction peripheral  1  is located. 
         [0065]      FIG. 12  shows a sequence diagram for describing a process order to display the cryptographic data setting display by reflecting a country where the multifunction peripheral  1  is located. 
         [0066]    The UI unit  16  requests the cryptographic provider  13  in the same VM  11  as the UI unit  16  to provide the list of cryptographic strengths (S 301 ) before displaying the cryptographic data setting display. For example, the cryptographic provider  13  obtains present location data of the multifunction peripheral  1  by a GPS (Global Positioning System) device  50  connected via USB to the multifunction peripheral  1  (S 302 ). Then, the cryptographic provider  13  determines the country where the multifunction peripheral  1  is located, based on the location data (S 303 ). The determination of the country by the location data may be performed by a known technique. Further, the location data obtained by the GPS device  50  may include country data. 
         [0067]    Subsequently, the cryptographic provider  13  determines cryptographic strengths that can be exported to the determined country, and generates a list of the cryptographic strengths that are determined exportable (S 304 ). However, when the GPS device  50  fails to obtain location data or the country cannot be determined, the cryptographic provider  13  does not generate a list of cryptographic strengths. Data of exportable cryptographic strengths (hereinafter called “export control data”) of each country subject to export control may be registered in advance in the HDD  633 , a ROM, or the like of the multifunction peripheral  1 . Based on the export control data, the cryptographic provider  13  may determine the cryptographic strengths that can be exported to the country where the multifunction peripheral  1  is located. 
         [0068]    Next, the cryptographic provider  13  returns the generated list of cryptographic strengths to the UI unit  16  (S 305 ). The UI unit  16  displays the returned list of the cryptographic strengths on the cryptographic data setting display (S 306 ). In this manner, selectable cryptographic strengths for the country of location are displayed. After that, when settings are made through the cryptographic data setting display, steps after S 102  (rebooting of the multifunction peripheral  1 ) in  FIG. 8  are executed. Note that the GPS device  50  may be incorporated in the multifunction peripheral  1 . 
         [0069]    The cryptographic data set in the multifunction peripheral  1  are uniformly applied to subjects which use the cryptographic function, such as a user and a component. However, it is convenient in some cases if usable cryptographic strengths can be changed for each subject. Subsequently, an example of realizing this function is described.  FIG. 13  is a diagram showing a structure for changing usable cryptographic strengths for each user in the multifunction peripheral of this embodiment. 
         [0070]    First, cryptographic strength lists  62  authorized to be used for each user (user name) are registered in a user data DB  61  built in the HDD  633  of the multifunction peripheral  1  and the like. When the user logs in to the multifunction peripheral  1 , a cryptographic strength list  64  of authorized strengths for the user who has logged in (login user) is extracted from the cryptographic strength lists  62  based on login data  63  (user name and the like) specified by an identification unit which is not shown. A list of cryptographic strengths resulting from logical multiplication of the extracted cryptographic strength list  64  and the SSL cipher suites list p 1  as the property value of the VM  11  of the multifunction peripheral  1  is used as a cryptographic strength list  65  of strengths that can be used by the login user. 
         [0071]      FIG. 14  is a sequence diagram for describing a process order to change the usable cryptographic strengths for each user. In  FIG. 14 , a user has already logged in to the multifunction peripheral  1 . 
         [0072]    For example, when the user who has logged in (login user) requests the component A for a process using a cryptographic function (S 401 ), the component A obtains the cryptographic strength list  64  set for the login user from the cryptographic strength lists  62  set for each user in the user data DB  61  based on the login data  63  (S 402  and S 403 ). Subsequently, the component A reports the obtained cryptographic strength list  64  to the cryptographic provider  13  (S 404 ). The cryptographic provider  13  obtains logical multiplication of the reported cryptographic strength list  64  and the SSL cipher suites list p 1 . The cryptographic provider  13  then sets the logical multiplication results as the cryptographic strength list  65  that can be used by the login user (S 405 ). Next, the cryptographic provider  13  returns the cryptographic strength list  65  to the component A (S 406 ). 
         [0073]    The component A informs the login user of the cryptographic strength list  65  by displaying the cryptographic strength list  65  on the operations panel  602  (S 407 ). Accordingly, the login user can check the usable cryptographic strengths. When the login user selects the cryptographic strength to use (S 408 ), the component A executes a cryptographic process based on the selected cryptographic strength (S 409 ). 
         [0074]      FIG. 15  is a diagram for describing a structure for changing usable cryptographic strengths for each component in the multifunction peripheral of this embodiment. 
         [0075]    For the component A, for example, a logical multiplication of a cryptographic strength list  71   a  authorized for the component A and the SSL cipher suites list p 1  is obtained and used as a cryptographic strength list  72   a  that can be used by the component A. 
         [0076]    For the component B, similarly, a logical multiplication of a cryptographic strength list  71   b  authorized for the component B and the SSL cipher suites list p 1  is obtained and used as a cryptographic strength list  72   b  that can be used by the component B. 
         [0077]    Note that cryptographic strength lists authorized for the components may be registered in advance in the HDD  633  and the like of the multifunction peripheral  1 . By these data, the cryptographic strength list  71   a  authorized for the component A and the cryptographic strength list  71   b  authorized for the component B are obtained. 
         [0078]    A process order to realize this structure may be substantially similar to that of  FIG. 14 . When the component A is taken as an example, the cryptographic strength list  71   a  authorized for the component A is to be reported to the cryptographic provider  13  in step S 404  instead of the cryptographic strength list  64  set for the login user. 
         [0079]    Note that the structures shown in  FIGS. 13 and 15  may be used in combination with the structure shown in  FIG. 12 . Specifically, a logical multiplication of the cryptographic strength list  65  shown in  FIG. 13 , the cryptographic strength list  72   a , or  72   b  shown in  FIG. 15 , and a cryptographic strength list authorized for a determined country may be obtained, and a cryptographic strength list based on the logical multiplication may be used as a usable cryptographic strength list. 
         [0080]    According to one embodiment, in an image forming apparatus, a usable cryptographic strength can be flexibly changed in accordance with a subject that uses a cryptographic function. 
         [0081]    According to one embodiment, there are provided an image forming apparatus, a data processing method, and a computer readable recording medium, in which a usable cryptographic strength can be flexibly changed in accordance with a subject that uses a cryptographic function. 
         [0082]    Although the present invention has been described with respect to a specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art that fairly fall within the basic teachings herein set forth. 
         [0083]    This patent application is based on Japanese Priority Patent Application No. 2008-040217 filed on Feb. 21, 2008, the entire contents of which are hereby incorporated herein by reference.