Abstract:
A wireless communication device, comprising: a wireless communication unit which communicates with other communication device located at a prescribed range; a first identification information generator which generates first identification information including a service name of available service and inherent information; an encryption unit configured to encrypt said first identification information by using a prescribed encryption key to generate encryption data; a second identification information generator which generates second identification information including the service name, the inherent information and the encryption data; and an inherent information transmitter which transmits the second identification information for an other communication device which has requested transmission of the inherent information.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims benefit of priority under 35USC § 119 to Japanese Patent Application No. 2002-321348, filed on Nov. 5, 2002, the entire contents of which are incorporated by reference herein. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to a wireless communication device for communicating at a relatively narrow range such as Bluetooth, a portable terminal for communicating with such kind of wireless communication device, a communication control program and a communication system. 
         [0004]    2. Related Background Art 
         [0005]    As disclosed in Japanese patent Laid-open No. 152196/2002, a short-range wireless communication system in which a transmission distance is about 10 m is recently paid attention. An effective transmission distance range of a conventional wireless LAN is not less than 100 m. Although transmission range in the short-range wireless communication system is narrow, power consumption is low. Because of this, the short-range wireless communication system is suitable for information processing devices having a limited battery capacity such as a portable information processing device (hereinafter, called as a portable terminal). The portable terminals are, for example, a portable telephone or a PDA. 
         [0006]    Bluetooth™ is one type of such kind of short-range wireless communication systems, as disclosed in Member Web Site, “Specifications”, URL: http://www.bluetooth.org. Recently, the portable terminal having the Bluetooth communication function is going to become widespread. 
         [0007]    Because a unit price of devices is low and the devices can be downsized, it is predicted that devices having Bluetooth communication function becomes widespread at various places. If Bluetooth becomes widespread, it is possible to provide service and information suitable for each of various places. 
         [0008]    For example, in convenience stores, supermarkets, retailing stores and so on, it is possible to provide services for customers, such as an electric coupon service, an electric point service, an electric payment, and a receipt issuance. Furthermore, there may be applications such as control of gate-open/close by using an electric ticket, payment and discount service in vending machines, and payments at parking lots, gasoline stands and drive-through. Besides, Bluetooth is also applicable to Internet access, information distribution and provision of location information. Especially, it is predicted that a lot of devices having the Bluetooth communication function are provided to stations and meeting spots where a lot of people gather. 
         [0009]    Hereinafter, a conventional technique will be described based on one example in which connection of Bluetooth is established between the portable terminal having the Bluetooth communication function (hereinafter, called a Bluetooth terminal), and an information processing device having the Bluetooth communication function which provides various services (hereinafter, called a Bluetooth device), and the Bluetooth device provides various services to users having the Bluetooth terminal. 
         [0010]    First of all, procedure in which the Bluetooth terminal receives services from arbitrary other device at an arbitrary location will be described. First, an application for receiving services is started up. Next, the Bluetooth terminal performs inquiry and tries to find other terminals capable of communicating. 
         [0011]    Next, the Bluetooth terminal acquires the remote name of the found terminal. Next, when a constant time is passed and the inquiry is finished, the Bluetooth terminal indicates to user a list of the remote names of the devices found by the inquiry. 
         [0012]    Next, the Bluetooth terminal performs an ACL connection request for the Bluetooth device selected by user. After the ACL connection is finished, the Bluetooth terminal transmits a service information acquisition command. 
         [0013]    Next, the Bluetooth terminal acquires service information, and detects whether or not a profile used by the application is supported. If the profile is supported, the Bluetooth terminal acquires the connection information relating to the profile. 
         [0014]    The Bluetooth terminal performs connection request for the profile by using the acquired information. After the connection of the profile is finished, the Bluetooth terminal performs server certification at application level. 
         [0015]    By the above-mentioned procedure, users can receive a desirable service by using the Bluetooth terminal. 
         [0016]    Hereinafter, a state in which the services using the Bluetooth and information providing devices prevail, and a lot of Bluetooth devices are arranged at places such as stations and spots where a lot of people gather is assumed. Especially, at a place where a lot of people gather, it is easy to assume situations in which information useless to a lot of people, such as loan, adult information and gamble are distributed. 
         [0017]    In such situations, when trying to find the Bluetooth devices capable of communicating from the Bluetooth terminal in order to acquire the services and the information, a lot of Bluetooth devices are found, regardless of whether or not they are useful. 
         [0018]    In the present circumstances, when a COD (Class of Device) in which information relating to the kind of the Bluetooth devices is described is used, it is possible to narrow down only the Bluetooth device which provides desirable services. 
         [0019]    However, the COD discriminates the kinds of the devices, but does not discriminate the service as it is. For example, even if there is a category of the information providing device in the COD, it is impossible to discriminate which information the device discriminates. The device is identified only after its name is acquired by a remote name. 
         [0020]    However, the remote name can be easily set. Therefore, in order to know the kinds of services and information that the device provides, connection is performed by the profile for the information service, for example, connection of FTP (File Transfer Protocol) is performed, and the information has to be actually acquired. 
         [0021]    When a dedicated application is used for acquiring certain information, for example, when bar information is necessary, a common key is given to devices for providing bar information in advance. It is possible to prevent connection with false devices by using a link certification function of the Bluetooth or certification function of other communication devices by OBEX (Object Exchange). 
         [0022]    In both of the Bluetooth link certification and the OBEX certification, whether or not to be a correct device cannot be confirmed until when user connects to the device. Therefore, when a lot of devices for providing useless information exist, it takes much time to acquire the service and the information that user needs truly. 
         [0023]    When an only advertising statement which grabs user&#39;s attention is embedded in the remote name, and user searches the device capable of communicating, user sees the advertising statement, and may go wrong selection of the terminal desired by user. 
         [0024]    Because the remote name can be easily set, whether or not the device supports the services or information desired by user has to be confirmed by connecting actually. Accordingly, it takes too much time and work for user. 
         [0025]    When the device in which the advertising statement is set to the remote name exists, user may go wrong the selection of the device which user wants connection. 
         [0026]    Furthermore, recently, a method of directly communicating and performing data exchange between the portable terminals without the server is also realized. For example, services searching users having the same purpose and exchanging mail addresses and telephone numbers are being provided. In such services, when identity of the other communication device is not assured, it is anxious to perform data exchange with the other communication device. Even in P2P communication, it is desirable to promptly communicate with the other communication device that identity is assured. 
       SUMMARY OF THE INVENTION 
       [0027]    An object of the present invention is to provide a wireless communication device, a portable terminal, a communication control program and a program which controls the portable terminal. 
         [0028]    A wireless communication device according one embodiment of the present invention, comprising: 
         [0029]    a wireless communication unit which communicates with other communication device located at a prescribed range; 
         [0030]    a first identification information generator which generates first identification information including a service name of available service and inherent information; 
         [0031]    an encryption unit configured to encrypt said first identification information by using a prescribed encryption key to generate encryption data; 
         [0032]    a second identification information generator which generates second identification information including the service name, the inherent information and the encryption data; and 
         [0033]    an inherent information transmitter which transmits the second identification information for an other communication device which has requested transmission of the inherent information. 
         [0034]    A portable terminal according to one embodiment of the present invention, comprising: 
         [0035]    a wireless communication unit which communicates with other communication devices located at a prescribed range; 
         [0036]    a search unit configured to search the other communication devices capable of communicating; 
         [0037]    an identification information acquisition unit configured to acquire first identification information transmitted from the searched communication device; 
         [0038]    an information extracting unit configured to extract a service name, inherent information and encryption data from the acquired first identification information; 
         [0039]    a decryption unit configured to decrypt the encryption data by using a prescribed decryption key; 
         [0040]    a comparison unit configured to compare the decrypted data with the service name and the inherent information extracted by said information extracting unit, and 
         [0041]    determines whether or not the other communication device searched by said search unit is reliable; and 
         [0042]    a communication controller which inhibits communication with the communication device determined to be unreliable by said comparison unit. 
         [0043]    Furthermore, a program which controls a wireless communication device according to one embodiment of the present invention, comprising: 
         [0044]    communicating with other communication devices located at a prescribed range; 
         [0045]    generating first identification information including a service name of available information and inherent information; 
         [0046]    generating second identification information including the service name, the inherent information and the encryption data; and 
         [0047]    transmitting the second identification information for the other communication device which has requested transmission of the inherent information. 
         [0048]    Furthermore, a program which controls a portable terminal according to one embodiment of the present invention, comprising: 
         [0049]    communicating with other communication devices located at a prescribed range; 
         [0050]    searching a communication device capable of communicating; 
         [0051]    acquiring first identification information transmitted from the searched communication device; 
         [0052]    extracting a service name, inherent information and encryption data from the acquired first identification information; 
         [0053]    decrypting the encryption data by using a prescribed decryption key; 
         [0054]    comparing the decoded data with the extracted service name and inherent information, and determining whether or not the communication device searched by the searching unit is reliable based on the comparison result; and 
         [0055]    inhibiting communication with the communication device determined to be unreliable by the comparison result. 
         [0056]    Furthermore, a communication system comprising a portable terminal and a wireless communication unit capable of communicating with said portable terminal located at a prescribed range, 
         [0057]    wherein said portable terminal includes: 
         [0058]    a searching unit configured to search a communication device capable of communicating; 
         [0059]    an identification information acquisition unit configured to acquire first identification information transmitted from the searched communication device; 
         [0060]    an information extracting unit configured to extract a service name, inherent information and encryption data from the acquired first identification information; 
         [0061]    a decryption unit configured to decrypt the encryption data by using a decryption key prescribed in advance; 
         [0062]    a comparison unit configured to compare the decrypted data with the service name and the inherent information extracted by said information extraction unit, and determines whether or not the communication device searched by said searching unit is reliable; and 
         [0063]    a communication controller which inhibits communication with the communication device determined to be unreliable by said comparison unit, said wireless communication unit includes: 
         [0064]    an inherent information acquisition unit configured to acquire the inherent information; 
         [0065]    a first identification information generator which generates first identification information including the service name and the inherent information; 
         [0066]    an encryption unit configured to encrypt the first identification information by using the encryption key prescribed in advance, and generates the encryption data; 
         [0067]    a second identification information generator which generates second identification information including the service name, the inherent information and the encryption data; and 
         [0068]    an inherent information transmitter which transmits the second identification information for the other communication device which has requested transmission of the inherent information. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0069]      FIG. 1  is a diagram showing internal configurations of the Bluetooth device according to one embodiment of the information providing device of the present invention. 
           [0070]      FIG. 2  is a block diagram showing one example of internal configurations of the Bluetooth terminal. 
           [0071]      FIG. 3  is a flowchart showing a information acquisition method of the Bluetooth terminal. 
           [0072]      FIG. 4  is a flowchart showing preparation works of the Bluetooth device before providing services. 
           [0073]      FIG. 5  is a flowchart showing processing procedure at time of providing service in the Bluetooth device. 
           [0074]      FIG. 6  is a flowchart showing processing procedure of the Bluetooth terminal. 
           [0075]      FIG. 7  is a detailed flowchart showing processing procedure of the Bluetooth terminal. 
           [0076]      FIG. 8  is a flowchart showing processing procedure found by the other Bluetooth terminal. 
           [0077]      FIG. 9  is a flowchart showing a detailed processing procedure of step S 135 . 
           [0078]      FIG. 10  is a flowchart showing processing procedure to find the other Bluetooth terminal. 
           [0079]      FIG. 11  is a flowchart showing a detailed processing procedure of terminal certification processings of step S 170 . 
           [0080]      FIG. 12  is a flowchart following to  FIG. 11 . 
       
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0081]    Hereinafter, a wireless communication device, a portable terminal, a communication control program and a program which controls the portable terminal will be more specifically described with reference to drawings. Hereinafter, examples in which connection of Bluetooth is established between the Bluetooth terminal and the Bluetooth device, and the Bluetooth device provides information to user having the Bluetooth terminal will be described hereinafter. 
       First Embodiment 
       [0082]      FIG. 1  is a diagram showing internal configurations of a Bluetooth device which is a first embodiment of an information providing device according to the present invention. The Bluetooth device  10  has a CPU  2 , a memory  3 , a ROM  4 , a storage  5 , an RS-232C controller  6  and a wired/wireless communication unit  7  which are connected to a bus  1 , and a Bluetooth transmitter/receiver (hereinafter, called a Bluetooth transmitter/receiver)  8  connected to the RS-232C controller  6 . 
         [0083]    The Bluetooth transmitter/receiver  8  communicates with the Bluetooth terminal  11  based on specifications of Bluetooth. Various information provided to the Bluetooth terminal  11  may be stored in the storage  5 , or may be stored in a server on an Internet  9  via the wired/wireless communication unit  7 . Information required from the Bluetooth terminal  11  may be acquired by accessing the server. 
         [0084]    Although concrete forms of the storage  5  are not limited, a hard disk drive, a DVD-RAM, a DVD-ROM, a semiconductor disk and so on are assumed. The wired/wireless communication unit  7  may perform wireless communication or wired communication. When performing wired communication, a combination of an Ethernet and an IP (Internet Protocol), or a combination of a telephone line, PPP and IP is assumed. When performing wireless communication, a wireless Internet may be used, or the portable phone or a packet communication of a PHS may be used. 
         [0085]    The Bluetooth transmitter/receiver  8  may be composed of only a Bluetooth transmitting/receiving module. Or a CPU and a memory besides the Bluetooth transmitter/receiver  8  are implemented, and processings of an upper protocol such as an L2CAP (Logical Link Control and Adaptation Layer Protocol) and an RFCOMM (RF+COMM) may be performed. 
         [0086]    In the case of having only the Bluetooth transmitting/receiving module, an HCI (Host Controller Interface) protocol defined by a specification is transmitted, and the result is received as an event. The Bluetooth protocol is loaded to the memory and executed by the CPU  2  with an application program for providing services and information to users. Besides, an OS, drivers and applications are stored in the memory  3 . In the case of performing processings of the upper protocol, commands and events depending on implementation are used, and control of the Bluetooth transmitter/receiver  8  and data transmission/reception are realized. 
         [0087]    It is necessarily unnecessary to connect the Bluetooth transmitter/receiver  8  to a host via the RS- 232 C. For example, the Bluetooth transmitter/receiver  8  may be directly connected to an internal bus, or may be connected via a USB (Universal Serial Bus). 
         [0088]      FIG. 2  is a block diagram showing one example of internal configurations of the Bluetooth terminal  11 . The Bluetooth terminal  11  of  FIG. 2  has a CPU  13 , a memory  14 , a ROM  15 , an A/D converter  16 , a D/A converter  17 , a vibrator  18 , a communication unit  19 , a display unit  20 , a key input unit  21 , an EEPROM  22 , a selection indicator  23 , and a Bluetooth transmitter/receiver, where are connected to a bus  12 . A microphone  25  is connected to the A/D converter  16 , and a speaker  26  is connected to the D/A converter  17 . The communication unit  19  communicates with a base station  27  by a wired line or a wireless line. 
         [0089]    The Bluetooth transmitter/receiver  24  establishes a wireless communication path for e.g. the Bluetooth device  10 , and transmits an information transmission request command for a server on the Internet, or acquires information responding to the command. 
         [0090]    The Bluetooth transmitter/receiver  24  may have the same configuration as that of the Bluetooth transmitter/receiver  8  in the Bluetooth device  10 , or have the configuration different from that of the Bluetooth transmitter/receiver  8 . 
         [0091]    A sound call function of the Bluetooth terminal  11  is the same as that of the conventional portable telephones. For example, the communication unit  19  performs positional registration for the base station  27 , and call control of call-in and call-out to perform data transmission and reception. The communication unit  19  performs call control for disconnection after the communication is finished, and performs hand-over during communication. 
         [0092]    The communication unit  19  outputs a call signal from the speaker  26  when connection request from the base station  27  is received. Or the communication unit  19  vibrates a casing of the Bluetooth terminal  11  by driving the vibrator  18 , and grabs user&#39;s attention. When connection acknowledge response from user is received, carrier connects a line between two locations and communication is started. 
         [0093]    The Bluetooth terminal  11  converts sound inputted from the microphone  25 , from an analog signal into a digital signal by the A/D converter  16 . The Bluetooth terminal  11  performs compression processing of the digital data under control of the CPU  13 , and transmits the compressed digital data to a neighboring base station  27  via the communication unit  19 . The signal received by the communication unit  19  is decompressed to retrieve the original signal. The decompressed digital data is converted into the analog signal by the D/A converter  17 , and the analog signal is outputted from the speaker  26 . 
         [0094]    The CPU  13 , the memory  14 , the ROM  15 , the display unit  20 , the key input unit  21 , the EEPROM  22  and the selection indicating unit  23  are provided to perform various information processings. For example, the CPU  13  executes a control program and application programs. The memory  14  stores, for example, temporary parameters and working data. The ROM  15  stores, for example, programs and dictionary data. The display unit  20  displays, for example, menus and data. The key input unit  21  inputs, for example, telephone numbers, numerals and characters. The EEPROM  22  stores, for example, personal registration information. The selection indicating unit  23  selects, for example, menus. 
         [0095]    The information acquired from the Bluetooth transmitter/receiver  24  is displayed to the display unit  20  as it is or after converted into format for display. 
         [0096]      FIG. 3  is a flowchart showing a information acquisition method of the Bluetooth terminal  11 . First of all, an inquiry for finding other devices capable of communicating is carried out (step S 21 ). Side for performing the inquiry (in this case, the Bluetooth terminal  11 ) is called as a master, and side for performing the inquiry scan (in this case, the Bluetooth device  10 ) is called as a slave. Only the Bluetooth device  10  set at a state of the inquiry scan replies to the inquiry from the Bluetooth terminal  11 . 
         [0097]    The Bluetooth terminal  11  broadcasts the IQ (Inquiry) packet in a periphery for ordinarily 10 seconds in order to perform the inquiry. (step S 22 ). An IAC (Inquiry Access Code) is included in the IQ packet. All the devices or a certain device (the Bluetooth device  10 ) is found by using this code. The Bluetooth device  10  which has received the IQ packet including the IAC relating to itself replies properties such as the Bluetooth address of itself, a clock and a device class, to the Bluetooth terminal  11 , after waiting time decided at random, when the IQ packet is again received. 
         [0098]    When the Bluetooth terminal  11  receives the reply from the Bluetooth devices  10  (step S 23 ), the Bluetooth address, the clock and COD of the Bluetooth device  10  including an FHS packet are acquired (step S 24 ). If the COD is designated in advance, only the Bluetooth address having the designated COD is temporarily registered to a list of the memory  14  (step S 25  and S 26 ). 
         [0099]    After the inquiry is performed for the decided period, an inquiry completion event is received. When this event is received, it is determined whether or not the Bluetooth device  10  is found (step S 27 ), and the fact that the device  10  has not been found is displayed (step S 28 ). When the Bluetooth device has been found, a remote name acquisition command which is useful to a device discrimination of user is transmitted to the Bluetooth device  10  having the Bluetooth address recorded to the list of the memory  14 . At this time, it is possible to shorten an acquisition time by using clock information of the Bluetooth device  10  acquired previously. 
         [0100]    When response for the request of the remote name from the Bluetooth device  10  recorded to the list is received (step S 29 ), the response is recorded in combination with the Bluetooth address, the clock and the device class acquired previously (step S 30 ), and the recorded contents are displayed to the display unit  20  (step S 31  and S 32 ). 
         [0101]    The user selects a desirable device from contents displayed to the display unit  20 , acquires the corresponding Bluetooth address, and requests connection for the device (steps S 33  and S 34 ). When security is requested, input of a link key for certification or input of a PIN code for generating the link key is requested. When an appropriate value is set, a link for data communication is established between a master and a slave (step S 35 ). After the link is established, connection between the relating profiles is performed, and communication is allowed. If the link is not established, connection error is displayed (step S 36 ). 
         [0102]    When the link is established, connection is performed with an upper protocol (step S 37 ). When acquisition request of information is transmitted (step S 38 ), the information is acquired (step S 39 ), and the information is displayed (step S 40 ). 
         [0103]    When the Bluetooth device  10  provides the information stored in the storage  5  in its own device, an object push profile or a file transfer profile is used, and an L2CAP, an RFCOMM and an FTP are used. When accessing information on the Internet by using the wired/wireless communication unit  7 , a dial-up profile or a PAN (Personal Area Networking) profile is used. The L2CAP, the RFCOMM, a PPP, an IP and a HTTP (Hyper Text Transfer Protocol) profile are used for the dial-up profile. The L2CAP, an Ethernet emulation, the IP and the HTTP protocol are used for the PAN profile. The information acquired from the Bluetooth device  10  by the FTP and the information acquired from the server on the Internet by the HTTP is displayed itself or at a display form. 
         [0104]    Hereinafter, processing procedure of the Bluetooth device  10  which provides information will be described. First, an embodiment in which connection information is recorded in its own device at assembly time of the Bluetooth device  10  will be described. 
         [0105]      FIG. 4  is a flowchart showing preparation work of the Bluetooth device  10  before service provision. It is assumed that the Bluetooth address of 6 bytes in the Bluetooth device  10  is expressed by 12 characters of “012345ABCDEF”, and a service name expressing service or information provided by the Bluetooth device  10  is expressed by 10 characters of “Tokyo station periphery guide information” (step S 51 ). The former is defined by the Bluetooth address characters, and the latter is defined by the service name characters. 
         [0106]    Because data of 22 characters which combines two strings is expressed by two bytes data per one character, the entire size is 44 bytes, i.e. 352 bits. Theses characters are defined as a service name string with Bluetooth address (step S 52 ). 
         [0107]    A Hash operation is performed for data of 352 bits to obtain a Hash value with 128 bits (step S 53 ). The encrypted data with 128 bits are calculated from the encrypted data with 128 bits by using a secret key prepared in advance (step S 54 ). MD 5  is used for the calculation of Hash value, and Linedale method can be used for encryption. This method is one example. It is possible to obtain the same effect even in the other method which can deal with data with 128 bits. It is possible to use the encryption key except for 128 bits. Calculation time and security strength are traded off by length of the key. 
         [0108]    The encrypted Data with 16 bytes and 128 bits is converted into data of 32 characters, for example, “0A4F5G . . . 59EF”. Combination of the service name string with Bluetooth address and the converted data are defined as a certification string (step S 55 ). In this example, the certification string is “Tokyo station periphery guide information 012345ABCDEF5G . . . 59EF”. 
         [0109]    Next, a character length of the service name is expressed by three characters “010”, and defined as a service name length string (step S 56 ). 45 characters obtained by combining the service name length string consisted of three characters, the service name string consisted of 10 characters and the certification string consisted of 32 characters are defined as a service name string with certification (step S 57 ). In this example, the service name string with certification is “010 Tokyo station periphery guide information 012345ABCDEF5G . . . 59EF”. 
         [0110]    A string obtained by attaching two identification string “!!” indicative of performing the processings at high speed to a head of the string are defined as a device identification information (step S 58 ). In this case, the string obtained by step S 58  is “!!010 Tokyo station periphery guide information 012345ABCDEF5G . . . 59EF”. 
         [0111]    Arrangement of the characters in the above-mentioned identification string is only one example, and the same effect will be obtained even when other arrangement of the characters has been adopted. Although conversion of binary character data is performed by only two byte data, it is possible to limit the character size after conversion to about ¾ of original size, according to a conversion method called as UUENCODE. 
         [0112]    When it is necessary to securely perform the above-mentioned processings by managing the secret key, the device identification information of the Bluetooth device  10  is calculated for each of the Bluetooth devices  10  by using a device having high security, and the generated device identification information of the Bluetooth device  10  is registered in the storage  5  of the Bluetooth devices  10  (step S 59 ). The values of the secret key and the COD are generated as initial data of information acquisition JAVA application (step S 60 ). The values are distributed to users via the server on the Internet with the JAVA program (step S 61 ). The user who wants information acquisition accesses a certain server via a public network (step S 62 ), and receives download request of the JAVA application. The JAVA application is stored in its own terminal, and used when the information is acquired (step S 63 ). 
         [0113]    The secret key may be distributed with the JAVA application. Or as described later, when it is possible to securely manage the secret key by the Bluetooth device  10 , the JAVA application may be updated by periodically acquiring the secret key from a dedicated server. 
         [0114]    Hereinafter, processings in the case where the Bluetooth device  10  provides services will be described.  FIG. 5  is a flowchart showing processing procedure in the case where the Bluetooth device  10  provides services. A desired program is read from the storage  5  into the memory  3  when the Bluetooth device  10  providing information is powered on, and operation of an application for realizing information service is begun (step S 71 ). The application controls the Bluetooth transmitter/receiver  8  and executes a stack for realizing the Bluetooth protocol in order to connect with the Bluetooth terminal  11  held by user (step S 72 ). 
         [0115]    First, the application transmits a reset command for the Bluetooth transmitter/receiver  8  (step S 73 ). Therefore, the Bluetooth transmitting/receiving unit is resetted. Next, the application sets the device identification information of the Bluetooth device  10  to a local name of its own device which can be acquired by a remote name acquisition command from the other device (step S 74 ). Next, the application sets the COD device as an object transmission system or an information system (step S 75 ). 
         [0116]    After then, inquiry scan and page scan become enable (step S 76 ), and connection waiting state of the Bluetooth terminal  11  is set (step S 77 ). When connection of the Bluetooth terminal  11  is established (step S 78 ), the inquiry scan and the page scan are disenabled (step S 79 ), and service is offered for the connected Bluetooth terminal  11  (step S 80 ). When provision of the service is finished, connection is cut off (step S 81 ). 
         [0117]    Next, operations of the Bluetooth terminal  11  will be described.  FIG. 6  is a flowchart showing processing procedure of the Bluetooth terminal  11 . User who wants acquisition of information indicates start-up of a dedicated JAVA application and search of the Bluetooth device  10  (step S 91 ). The JAVA application requests the inquiry command transmission for the Bluetooth transmitter/receiver  24 . The search is performed for a prescribed time (for example, 10 seconds) (step S 92 ). 
         [0118]    The Bluetooth transmitter/receiver  24  notifies the JAVA application of the address and the COD of the found Bluetooth device  10  as an event (step S 93 ). The JAVA application calls a certain function by the notification, and performs inspection of the COD (step S 94 ). The Bluetooth transmitter/receiver  24  compares the notified COD with the COD prescribed in advance (step S 95 ). Only when both CODs coincide, the Bluetooth address of the Bluetooth device  10  is added to an inspection object list (step S 96 ). 
         [0119]    The Bluetooth transmitter/receiver  24  stops the inquiry after being passed for a constant period, and notifies the application of the inquiry completion event. When the inquiry completion event is received, the application determines whether or not the Bluetooth device  10  registered to the inspection object list exists (step S 97 ). If the Bluetooth device  10  does not exist, “no terminal” is displayed (step S 98 ). 
         [0120]    If the Bluetooth device  10  registered to the inspection object list exists, the Bluetooth transmitter/receiver  24  is indicated so as to sequentially transmit the remote name acquisition command for the devices  10  registered to the list (step S 99 ). It is validated whether or not the Bluetooth device  10  is valid. The validated result is recorded as a flag (step S 100  and S 101 ). The acquisition and validation of the remote name are repeated by the number of the terminals registered to the list (step S 102 ). Whether or not the devices are reliable is separately determined. 
         [0121]    The flag which determines whether or not the Bluetooth devices of all the inspection objects are reliable is inspected. In the case of reliable device, the service name is displayed to the screen as a candidate of the service providing device (step S 103 ). In the case of unreliable device, the service name is not displayed on the screen, or is displayed on a form distinct from the reliable device. User can arbitrarily set whether or not to display an unreliable device. As the distinct method, display by different color, italic font and a certain mark are assumed. 
         [0122]    When user requests the connection to an unreliable Bluetooth device  10 , user is informed that it is the unreliable device, and confirmation of the connection is performed (step S 104 ). 
         [0123]    Next, validation procedure of step S 100  in  FIG. 6  is more specifically described by using the flowchart of  FIG. 7 . First of all, a method of data acquisition for validation and a method of validation using the acquired data will be described. 
         [0124]    The Bluetooth transmitter/receiver  24  reads out the Bluetooth address of the Bluetooth device  10  of the other communication device (step S 111 ). When the remote name is acquired (step S 112 ), the acquisition is notified to the JAVA application. The JAVA application inspects data of the acquired remote name. 
         [0125]    The JAVA application determines whether or not headmost several characters of the remote name acquired first is the identification string (step S 113 ). In this case, the identification string is “!!”. When the headmost several characters does not coincide with the identification character, a flag which indicates not to coincide with the Bluetooth address of the Bluetooth device  10  being inspection object is stored in the memory  14  in pairs, and the next remote name of the Bluetooth device  10  is acquired. 
         [0126]    When the headmost several characters coincide with the identification character, three characters from third character (six bytes when calculated by binary data), i.e. “010” is extracted. The data is acknowledged as the service name length character, and character numeral data conversion is performed to obtain the length of the service name (step S 114 ). 
         [0127]    When error occurs at conversion time, the Bluetooth address of the Bluetooth device  10  being inspection object and a flag which indicates discord are stored in the memory  14  in pairs, and the remote name of the subsequent Bluetooth device  10  is acquired. 
         [0128]    When conversion to numeral can be performed, ten characters from sixth character of the acquired length, for example, a string of ten characters “Tokyo station periphery guide information” is acquired as a service name (step S 115 ) Six characters+a length of the service name string+1, (in this case, 12 characters from 6th character) are acquired as the Bluetooth address string. The Bluetooth address string is converted into the Bluetooth address of six bytes (step S 116 ). The Bluetooth address string is compared with the address of the Bluetooth device  10  which has acquired the remote name (step S 117 ). 
         [0129]    When the addresses do not coincide with each other, the Bluetooth address of the Bluetooth device  10  being inspection object and the flag which indicates discord are stored in the memory  14 , and the remote name of the next Bluetooth device  10  is acquired. 
         [0130]    When the addresses coincide with each other in step S 117 , it is inspected whether or not length of the remaining string from 28th character is 32 characters (step S 118 ). If 32 characters, the string is acquired as data for certification, and the acquired character data is converted into binary data of 16 byte (step S 119 ). 
         [0131]    When it is impossible to acquire the service name with a length of the service name, it is impossible to convert the Bluetooth address string into the Bluetooth address of 6 bytes, length of the remaining characters is different from 32 characters, or it is impossible to convert certificate data into numeral, the Bluetooth address of the Bluetooth device  10  being inspection object and the flag which indicates discord are stored in the memory  14  in pairs, and the remote name of the next Bluetooth device  10  is acquired. 
         [0132]    In the case of being able to convert the string into binary data in step S 119 , the terminal is certificated by using the service name and the certification data acquired from the remote name by the above-mentioned procedure. 
         [0133]    The Bluetooth address of the Bluetooth device  10  which has acquired the remote name is converted into character data of 12 string “012345ABCDEF” (step S 120 ). Data of 22 characters with the service name string is expressed by one character two byte data, and becomes 44 bytes and 352 bits in total (step S 121 ). The Hash operation is performed for the data with 352 bits, and the Hash value with 128 bits is obtained (step S 122 ). 
         [0134]    The acquired data for certification is decoded by using the secret key prepared in advance, and the Hash value with 128 bits is calculated. The value is compared with the Hash value calculated previously (step S 123 ). If the other communication device holds a correct secret key, both values coincide, and the flag indicative of coincidence is set (step S 124 ). If the secret key is different, the decoded data is different, and the Hash value does not coincide. When both values do not coincide, the Bluetooth device  10  under inspection sets the flag indicative of discord (step S 125 ), and the remote name of the next device is acquired. 
         [0135]    Even if an illegal device copies the device identification information of the Bluetooth device  10  set to a correct device, the Bluetooth address of the correct device is different from that of the illegal device, and the Hash value does not coincide. Therefore, it is possible to detect the illegal device. 
         [0136]    Although the key has been commonly used in both sides in the present embodiment, the same effect is also obtained by using a public key. The device identification information of the Bluetooth device  10  is generated, the secret key is used, and the same effect is obtained by distributing the JAVA application including the public key corresponding to the secret key. 
         [0137]    In the above embodiment, the device identification information of the Bluetooth device  10  is recorded to the Bluetooth device  10  in advance. When the Bluetooth device  10  has an other communication means, the device identification information of the Bluetooth device  10  generated by a different secret key is acquired periodically or if necessary, and the device identification information of the Bluetooth device  10  is updated. The JAVA application periodically may access a server, and security may be strengthened by updating a common secret key. Or if the Bluetooth device  10  can securely store the secret key, the Bluetooth device  10  in itself may update the device identification information of the Bluetooth device  10  periodically or if necessary. 
         [0138]    When the Hash value is generated, the security may be strengthened by generating data secret to both sides. 
         [0139]    When the Bluetooth device  10  updates the device identification information of the Bluetooth device  10  by using the public key, the same effect is obtained by using the information such as time, instead of the Bluetooth address of the Bluetooth device  10 . 
         [0140]    Or an expiration date of the identification information is included in the device identification information of the Bluetooth device  10 , and the portable terminal inspects the expiration date, thereby strengthening security. 
         [0141]    Or in order to connect with an upper protocol such as OBEX, the service information acquisition protocol is executed, and the information necessary for connection is acquired. It is possible to omit the communication for the service information acquisition by including the connection information in the device identification information of the Bluetooth device  10 , thereby shortening the processing time. 
         [0142]    In the Bluetooth terminal  11 , in order to speed up the processings, the address of the Bluetooth device  10  determined to be unreliable is stored in the memory  14  as a list of the unreliable devices, and then after the inquiry is finished, the Bluetooth address of the found Bluetooth device  10  is compared with the list of the unreliable device. If determined that the device is unreliable, the device is not included in the list of the inspection objects, thereby improving the entire processing speed. 
         [0143]    Thus, according to the present embodiment, because the device identification information of the Bluetooth device  10  is composed of the service name, the Bluetooth address and the encryption data, the Bluetooth terminal  11  which has received the device identification information can exactly determine whether or not the Bluetooth device  10  trying to connect is reliable, thereby avoiding communication with the illegal device and improving security. 
         [0144]    Furthermore, according to the present embodiment, the Bluetooth device  10  which performs information service may have the secret key with expiration date, and may allow the Bluetooth terminal  11  to periodically update the key, thereby improving the security. In this case, the Bluetooth terminal  11  uses its own inherent identifier, and connects with the Bluetooth device  10  (server) in order to update the encryption key. Therefore, the Bluetooth device  10  can provide membership service to the Bluetooth terminal  11 . 
       Second Embodiment 
       [0145]    In a second embodiment, data communication is directly performed with P2P (Point to Point) between a plurality of Bluetooth terminals. 
         [0146]    Hereinafter, a Bluetooth terminal having a function found to other devices by setting a certain keyword, and a Bluetooth terminal having a function which finds the other devices by inputting the keyword will be described. 
         [0147]    The Bluetooth terminals access a certain server via the Internet, register the information relating to its own terminal (for example, an identifier for short-range wireless communication), and download a program executing information exchange. The program has a function found from the other communication device and a function for finding the other communication device. A certain function to be used is selected from the menu. Or two applications having the respective functions may be provided. With the program, an encryption key to identify the communication device for information exchange, for example, a common secret key with 128 bits length is downloaded from the server, and is recorded to the Bluetooth terminal with the program. 
         [0148]      FIG. 8  is a flowchart showing processing procedure to be found to the other Bluetooth terminal. 
         [0149]    First, power is on and a service providing program is loaded (step S 131 ). After then operation of the Bluetooth protocol stack program is started (step S 132 ). Next, the Bluetooth transmitting/receiving unit is reset (step S 133 ). The keyword is inputted by user, and stored in the memory (step S 134 ). The number of the keywords is not limited, and may be one or more, if the character length of the keyword is less than a certain data amount. In the present embodiment, as one example, three words of “bar”, “karaoke” and “game” are registered as the keywords. 
         [0150]    Next, a identification character generating process for generating the Bluetooth device identification string is performed by using the keywords (step S 135 ). The detailed processing procedure of step S 135  is shown in  FIG. 9 . First, one string is generated by coupling the keywords. The keyword lengths of two characters are added before the respective keywords so as to be able separate them afterward, thereby generating one string (step S 151 ). In the present embodiment, the characters “04”, “04” and “03” are attached, and the keyword string “03bar04karaoke03game” is generated. 
         [0151]    Next, the Bluetooth address of the Bluetooth terminal is generated. (step S 152 ). The Bluetooth address is assumed as “012345ABCDEF”. Next, a keyword string with Bluetooth address is generated by coupling the Bluetooth address with the keyword string (step S 153 ). The keyword string with Bluetooth address is “03bar04karaoke03game012345ABCDEF”. 
         [0152]    Next, the Hash value with 128 bits corresponding to the string generated by step S 153  is calculated (step S 154 ). Encryption is performed with a common encryption key stored relating to the program (step S 155 ). Therefore, the encryption data is converted into a string of 32 characters. A certification string is generated by coupling the data with the keyword string with Bluetooth address (step S 156 ). 
         [0153]    Next, the string of three characters indicative of a length of the keyword string is generated (step S 157 ). The string is coupled with a string for certification (for example, “016”) to generate a service name string with certification (step S 158 ). Finally, an identification characters (for example, “!!”) for determining at high speed whether or not to be a certified other communication device are added to generate the Bluetooth device identification string (step S 159 ). 
         [0154]    In  FIG. 8 , the Bluetooth device identification string generated by the above-mentioned is set to the Bluetooth module as a local name. The Bluetooth module is set to a state capable of being found and connected from the other communication device (step S 136 ), and waits connection request for the discovery and the connection request from the other communication devices (step S 137 ). 
         [0155]    After then, connection allowance is given to the connection request from the Bluetooth terminal of the other communication device (step S 138 ). After connection of a link layer, connection using the protocol of the upper layer for data exchange is performed. For example, OPP (Object Push Profile) is used in the present example, and electric business card data called as a vcard in which personal mail addresses, telephone numbers and the other additional information are described is exchanged (step S 139  and S 140 ). After exchanging data, if a cutoff event of link is detected, the acquired data is recorded with time, and execution of data exchange is indicated to user. The user determines whether or not to continue the processings, and selects from the menu commands indicative of continuation of the processings, keyword change or end of the processings (steps S 141  and S 142 ). 
         [0156]    When the processings are continued, a receiving event of the connection request is waited without performing any processing. When the keyword is changed, the keyword stored in the memory is deleted, and input procedure of the keyword is executed again. When the end is selected, the program is finished. 
         [0157]      FIG. 10  is a flowchart showing processing procedure to find the other Bluetooth terminal. First, the program is started-up, the operation mode having a function for finding the Bluetooth terminal from the menu is designated, and user is requested to input the keyword (step S 161 ). The number of the keyword is not limited, and may be one or more, If a plurality of keywords are inputted, it is possible to perform complicated designations by logic operation such as AND, OR and NOT of the keyword. In this example, the inputted keyword is assumed as “karaoke”. 
         [0158]    After inputting the keyword, the Bluetooth module is indicated by a search command so as to find the other communication device (step S 162 ). The Bluetooth module transmits a search message for a constant period (the period is normally 10.24 sec, but may be arbitrary period). Every time when the Bluetooth module receives a response packet, the Bluetooth module records the identifier of the responded device and the connection information. At this time, the COD indicative of a type of the responded Bluetooth terminal is inspected, and only the information of the Bluetooth terminal having a desirable COD is recorded (step S 163 -S 167 ). 
         [0159]    After search for a constant period, the Bluetooth module inspects the number of desirable Bluetooth terminals (step S 168 ). If no Bluetooth terminal is found, “no terminal” is displayed (step S 169 ). Next, the remote name is acquired (step S 170 ). If one or more Bluetooth terminal is found, terminal certification processings of the respective Bluetooth terminals are performed (step S 171 ). 
         [0160]      FIG. 11  and  FIG. 12  are flowcharts showing detailed processing procedure of the terminal certification processings in step S 171 . First, the Bluetooth address is read out (step S 181 ), the Bluetooth modules of the Bluetooth terminals are indicated so as to acquire the remote name (step S 182 ). When the Bluetooth module succeeds acquisition of the remote name, the information is delivered to the program. 
         [0161]    The program inspects the acquired remote name by the following procedures, and determines whether or not the Bluetooth terminal of the other communication device is reliable. First, it is inspected whether or not there are the identification characters capable of being determined at high speed (step S 183 ). If there are the identification characters, the string indicative of the length of the keyword is acquired (step S 184 ). In this example, the string is “016”. 
         [0162]    Next, a string corresponding to the string indicative of the length of the keyword is extracted (step S 185 ). In this example, the string is “03bar04karaoke03game”. Next, the headmost two characters are inspected, a string indicative of length of the keyword is acquired, the string is cut off based on the character indicative of length of the keyword, and the cut-off string is stored in the memory as the keyword (step S 186 ). In this example, the keyword of the other communication device is “bar karaoke game”. 
         [0163]    Next, the acquired keyword is compared with the keyword inputted by user in advance. When determined that the keyword coincides, certification procedure of  FIG. 11B  is executed. 
         [0164]    When determination of the keyword is succeeded, the Bluetooth address is converted (step S 187 ). It is determined whether or not the Bluetooth address of the found other communication device is coincided (step S 188 ). It is inspected whether or not the remaining string is 32 characters (step S 189 ). If 32 characters, the string is converted into the binary data with 128 bits (step S 190 ). The data is decoded by using an encryption key which has been stored with the program (step S 191 ). 
         [0165]    The keyword string with Bluetooth address is generated (step S 192 ), and the Hash value with 128 bits is generated (step S 193 ). This value is compared with the previously decoded value (step S 194 ). If both values coincide, the flag indicative of what the other communication device is reliable is set. The flag is stored in the memory with the keyword and the Bluetooth address (step S 195 ). When the determination is missed, the keyword and the Bluetooth address are recorded as the unreliable device (step S 196 ). The above-mentioned processings are repeated for the number of the found devices. 
         [0166]    After all the Bluetooth terminals are determined, as shown in  FIG. 10 , the flags of the Bluetooth terminals are inspected, the keyword string is displayed, and the keyword string is proposed to user (step S 172 ). When it is impossible to display the keyword string on one line of the screen, user brings a cursor on the line and indicates a detailed command. Therefore, a different dialog is displayed, and all the keywords are displayed in order to wait connection request by user (step S 173 ). 
         [0167]    When user indicates a connection command by bringing the cursor on a certain line of the list, the Bluetooth address corresponding to the line is acquired, and connection for the Bluetooth module is requested (step S 174 ). When succeeding to link connection, connection is performed by using the protocol of the upper layer, data exchange is performed (step S 175 ), and the link is cut off (step S 176 ). 
         [0168]    When cut-off of the link is succeeded, the next Bluetooth terminal is selected from the list. Or the Bluetooth terminal capable of connecting again is searched. Or the search is performed by changing the keyword. Or any command is selected to end the program. 
         [0169]    By the above-mentioned method, its own information is registered to a certain server in advance, and only when encryption key is acquired, it is possible to connect with only a reliable communication device. 
         [0170]    On the other hand, it is assumed that a side for finding the other communication device requests connection by ignoring the keyword. In this case, when the found side is set to be the certification mode, input of a common link key is requested at link connection processing time. Only when both sides input correct keywords, the link is established. A processing module for generating a common link key is added to the program, the program responds by generating the link key at input request time of the link key. In such a method, it is impossible to perform connection as long as there is no module for generating a correct link key. As one example of the method of generating the link key, the string is generated by using the Bluetooth identifier of the other communication device, its own Bluetooth identifier and a secret keyword, and the Hash value with 128 bits is generated by using the string. 
         [0171]    Processings of  FIGS. 4-7  described in the above-mentioned embodiments may be composed of hardware or software. In the case of being composed of the software, the program which executes the processings of  FIGS. 4-7  is stored in the recording medium such as a floppy-disc or a CD-ROM, and may be executed by being read in a computer. The recording medium is not limited to a medium portable such as a magnetic disc and an optical disc, and may be a fixed type recording medium. 
         [0172]    The programs for executing processings of  FIGS. 4-7  may be distributed via a communication line (including a wireless line) such as the Internet. Furthermore, the program may be distributed via the wired line or the wireless line such as the Internet at a state of being encrypted, modulated or compressed. Or the program may be distributed at a state of being contained on the recording medium. 
         [0173]    The present invention is not limited to the above-mentioned embodiments, and can be variously modified at ranges of not deviating features of the present invention when being implemented. The above-mentioned embodiments include various stages of the inventions, and various inventions can be extracted by arbitrarily combining constituents of these embodiments. For example, even if some constituents among all the constituents described in the embodiments are deleted, it may be possible to overcome at least one of the problems to be overcome by the present invention. When the advantageous effect is obtained even if some constituents are deleted, constituents which omit some constituents are extracted as the present invention.