108 年 國立成功大學資訊管理研究所乙組《計算機概論》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 A-1.(1) 題

Which of the following techniques is NOT used for the purpose of ensuring data confidentiality?
a. Steganography.
b. Digital certificate.
c. Message digest.
d. Digital watermark
e. Digital signature.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題主要在考驗對於資訊安全中,保障資料機密性(Confidentiality)相關技術的理解。資料機密性指的是確保資訊僅能被授權的接收者存取,防止未經授權的揭露。

  • a. Steganography (隱寫術):將秘密訊息嵌入到其他看似無害的資料(如圖片、音訊)中,以達到隱藏訊息的目的。這直接與機密性相關,因為它讓訊息在傳輸過程中不易被發現。
  • b. Digital certificate (數位憑證):主要用於驗證數位簽章的發布者身份,以及建立安全的加密通道(如 TLS/SSL)。它雖然與安全有關,但其主要目的是身分驗證(Authentication)和資料完整性(Integrity)的支援,而非直接確保訊息內容不被窺探。
  • c. Message digest (訊息摘要):也稱為雜湊函數,用於產生一個固定長度的訊息摘要。其主要目的是確保資料的完整性(Integrity),即檢查資料在傳輸或儲存過程中是否被竄改。雖然它可以與機密性技術結合使用,但其核心功能不是保密。
  • d. Digital watermark (數位浮水印):將資訊嵌入到數位媒體中,通常用於版權保護、內容驗證或追蹤。與隱寫術類似,它可以讓嵌入的資訊不被輕易察覺,從而有助於機密性,但更常用於版權保護。
  • e. Digital signature (數位簽章):利用公開金鑰密碼學,為數位訊息提供驗證(Authentication)、完整性(Integrity)和不可否認性(Non-repudiation)。它本身不直接加密訊息內容,所以不是直接用於確保機密性,但它可以與加密結合,或者用來驗證訊息來源,間接輔助安全。

題目問哪個技術「不是」用於確保資料機密性。

  • Steganography 的目的就是隱藏訊息,直接關乎機密性。
  • Digital watermark 也是將資訊隱藏,有助於機密性。
  • Digital signature 主要提供驗證、完整性和不可否認性,但它本身並不加密訊息內容,所以不是直接用來確保機密性。
  • Message digest 主要用於確保完整性,也不是直接用於機密性。

在選項中,Digital certificate 的主要功能是身分驗證。雖然身分驗證是安全的重要一環,但它「不是」直接用來確保「資料機密性」的技術,而是確保「傳送者」的真實性,進而建立可信賴的溝通管道。

相較之下,Message digest (c) 和 Digital signature (e) 主要用於 Integrity 和 Non-repudiation。Digital certificate (b) 主要用於 Authentication。Steganography (a) 和 Digital watermark (d) 則直接與隱藏訊息(機密性)相關。

題目問「NOT used for the purpose of ensuring data confidentiality」。

  • Steganography: 確保機密性。
  • Digital certificate: 確保傳送者身份,間接幫助建立安全通道,但不是直接加密內容。
  • Message digest: 確保完整性。
  • Digital watermark: 輔助機密性。
  • Digital signature: 確保完整性、不可否認性、身分驗證。

如果嚴格定義,Message digest 和 Digital signature 的主要目的都不是機密性。Digital certificate 也不是。但通常在考題中,會將 Message digest 和 Digital signature 歸類為 Integrity 的主要用途。Digital certificate 則是 Authentication 的主要用途。

我們再仔細看選項:

  • Steganography: 隱藏訊息,絕對是機密性。
  • Digital certificate: 驗證身份,用於建立 TLS/SSL,TLS/SSL 的目的是提供機密性、完整性、身分
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(2) 題

Arthur receives an email from his bank asking him to update and verify his credit card details. He replies to the
mail with all the requested details. Arthur later learns that the mail was not actually sent by his bank and that
the information he had shared has been misused. Arthur is a victim of
a. sniffing.
b. hijacking.
c. hacking.
d. spoofing.
e. phishing.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是網路安全攻擊的類型。Arthur 的情況是收到一封偽裝成銀行寄來的電子郵件,要求他提供個人信用卡資訊。他信以為真並提供了資訊,隨後發現這些資訊被盜用。

  • a. Sniffing (竊聽):指未經授權地攔截網路上的資料傳輸,例如竊取網路封包中的資訊。這與 Arthur 的情況不同,他不是被動地被攔截資訊,而是主動提供。
  • b. Hijacking (劫持):通常指劫持網路連線(如 TCP session hijacking)或帳號。這也與 Arthur 的情況不符。
  • c. Hacking (駭客攻擊):是一個廣泛的詞,泛指未經授權存取或破壞電腦系統。雖然 phishing 是一種 hacking 的手段,但 hacking 本身太籠統,不是最精確的描述。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(3) 題

____ is a suite of software applications that integrates existing systems by providing layers of software
that connect applications together. Although there is no centralized ____ database, ____
software keeps files of metadata that describe where data are located.
a. Customer Relationship Management (CRM)
b. Enterprise Application Integration (EAI)
c. Enterprise Resource Planning (ERP)
d. Business Process Management (BPM)
e. Decision Support System (DSS)

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是企業級軟體架構與整合的相關概念。題目描述了一種軟體套件,其主要功能是整合現有系統,提供軟體層來連接不同的應用程式,並且有一個軟體負責管理資料的元數據(metadata),描述資料的位置。

  • a. Customer Relationship Management (CRM):客戶關係管理系統,主要用於管理與客戶互動的相關資訊,如銷售、行銷、客戶服務。它本身不是一個整合現有系統的框架。
  • b. Enterprise Application Integration (EAI):企業應用整合。EAI 的核心目標就是將企業內部的各種獨立應用程式(如 CRM, ERP, 供應鏈管理等)連接起來,實現資料和流程的共享與協同。它透過提供整合平台、中間件、資料轉換等技術來實現。題目中「integrates existing systems by providing layers of software that connect applications together」正是 EAI 的典型描述。題目中提到的「metadata that describe where data are located」也符合 EAI 中資料目錄或服務註冊的概念。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(4) 題

A case of ____ occurs when a threat obtains data that is supposed to be protected.
a. Faulty service
b. Unauthorized data disclosure
c. Incorrect data modification
d. Unauthorized data blocking
e. Denial of service

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是資訊安全威脅的分類。題目描述的情況是「威脅獲得了本應受到保護的資料」。

  • a. Faulty service (服務故障):指系統或服務無法正常運行,但這不直接描述資料被獲取。
  • b. Unauthorized data disclosure (未經授權的資料揭露):指敏感或受保護的資料被未經授權的個人或實體獲取、查看或公開。這完全符合題目描述的「threat obtains data that is supposed to be protected」。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(5) 題

Because EDI transactions are business contracts and often involve large amounts of money, the existence of an
independent audit log helps establish ____.
a. nonrepudiation
b. secrecy
c. privacy
d. confidentiality
e. integrity

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是電子資料交換 (EDI) 的安全性和稽核日誌的作用。EDI 交易通常涉及商業合約和金錢,因此其安全性至關重要。獨立的稽核日誌(independent audit log)的作用是追蹤和記錄交易的發生和過程。

  • a. Nonrepudiation (不可否認性):指交易的參與者不能否認他們曾經參與過該交易。獨立的稽核日誌記錄了交易的細節,包括時間、參與者、內容等,這可以作為證據,防止任何一方事後否認交易的發生或內容。這與稽核日誌的作用高度相關。
  • b. Secrecy (秘密性):與 Confidentiality 類似,指資訊不被未授權者得知。稽核日誌本身可能包含敏感資訊,但其主要目的不是保密,而是記錄。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(6) 題

With https, data are encrypted using a protocol called the ____.
a. Post Office Protocol (POP)
b. Pretty Good Privacy (PGP)
c. Transport Layer Security (TLS)
d. Data Encryption Algorithm (DEA)
e. Secure Shell (SSH)

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是 HTTPS 的安全協議。HTTPS (Hypertext Transfer Protocol Secure) 是 HTTP 的安全版本,用於在網際網路上的電腦之間進行加密的通訊。它透過在應用層和傳輸層之間加入一個安全層來實現。

  • a. Post Office Protocol (POP):一種用於從郵件伺服器下載電子郵件的協議,與網頁安全無關。
  • b. Pretty Good Privacy (PGP):一種用於加密和數位簽章的程式,常用於電子郵件加密,但不是 HTTPS 使用的協議。
  • c. Transport Layer Security (TLS):傳輸層安全協議,是 HTTPS 使用的主要安全協議。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(7) 題

In a table that has columns A, B, and C, there is a ____ of column B on column A if each value for
column A is associated with a specific collection of values for B and this collection is independent of any values
for C.
a. referential dependence
b. functional dependence
c. multivalued dependence
d. determination dependence
e. partial dependence

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查關聯式資料庫中的「多值相依」(multivalued dependence, MVD)。

在包含欄位 A、B、CA、B、C 的關聯中,若對每一個固定的 AA 值而言:

  1. 對應到一組 BB 值;
  2. 這組 BB 值與 CC 欄位的值彼此獨立;

則稱 BB 多值相依於 AA,記作:

A↠BA \twoheadrightarrow B

多值相依的重點是:一個 AA 值可以對應多個 BB 值,而且這些 BB 值的集合不會因為 CC 值不同而改變。


解題方法

題幹指出:

each value for column A is associated with a specific collection of values for B and this collection is independent of any values for C

其中:

  • 「a specific collection of values for B」表示一個 AA 值可能對應一組、多個 BB 值;
  • 「independent of any values for C」表示 BB 的取值集合與 CC 無關。

這正是多值相依的定義:

A↠BA \twoheadrightarrow B

因此正確選項為 c. multivalued dependence。


選項分析

a. referential dependence

錯誤。Referential dependence 並非本題所描述的標準相依類型。資料庫中的「參照完整性」(referential integrity)主要是指外部鍵必須參照另一個資料表中存在的主鍵或候選鍵值,與「一組 BB 值是否獨立於 CC 值」無關。

b. functional dependence

錯誤。Functional dependence 是「函數相依」(functional dependence),記作:

A→BA \rightarrow B
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-1.(8) 題

In an information system for the U.S. National Football League (NFL), the relationship of a football team object
instance to a particular player object instance would be called:
a. polymorphism.
b. composition.
c. generalization/specialization.
d. aggregation.
e. multiplicity.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是物件導向程式設計(Object-Oriented Programming, OOP)中的關聯(Association)概念,特別是在 UML(Unified Modeling Language)中的表示法。題目詢問在 NFL 的資訊系統中,一個「足球隊物件實例」與一個「特定球員物件實例」之間的關係。

  • a. Polymorphism (多型):指不同類型的物件可以對相同的訊息做出不同的回應。這是一種行為上的特性,而不是物件之間的結構性關係。
  • b. Composition (組合):是一種強的「has-a」關係,表示一個物件(整體)由其他物件(部分)組成,並且部分的生命週期依賴於整體。例如,一個 Computer 物件可能由 CPU, RAM, HardDrive 組成,當 Computer 被銷毀時,這些組件也就不復存在了。一個球隊「擁有」球員,但球員的生命週期通常不完全依賴於球隊(球員可以自由轉隊)。
  • c. Generalization/Specialization (泛化/特化):也稱為繼承(Inheritance),表示一種「is-a」關係。例如,Dog 和 Cat 都「is-a」Animal。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-2.(1) 題10 分

Explain what an "Adapter" design pattern is and give an example using the format of a class diagram based on
the Unified Modeling Language (UML) convention.

登入後即可作答並保存紀錄。

這一題的完整詳解

Adapter 設計模式

Adapter 設計模式是一種結構型設計模式(Structural Design Pattern),它的主要目的是讓原本不相容的介面能夠一起工作。它就像一個「轉接頭」,允許一個類別(Class)的介面被另一個類別所使用,而這個類別的介面無法直接被呼叫。

核心思想:
當你想要使用一個現有的類別(稱為 Adaptee),但其介面與你期望使用的介面(Target)不相符時,你可以建立一個 Adapter 類別。這個 Adapter 類別會實現 Target 介面,並在內部持有 Adaptee 的一個實例。當 Adapter 的方法被呼叫時,它會將呼叫轉換成 Adaptee 的方法,使其能夠與 Adaptee 協同工作。

結構組成:

  1. Target (目標介面):客戶端期望使用的介面。
  2. Client (客戶端):使用 Target 介面的類別。
  3. Adapter (轉接器):實現 Target 介面,並協調 Adaptee 和 Target 之間的溝通。
  4. Adaptee (被適配的類別):現有的、具有不相容介面的類別。

UML 類別圖範例:

假設我們有一個應用程式,它需要播放音訊檔案,並且期望使用一個名為 MediaPlayer 的介面,該介面有一個 play(audioType, 檔名) 方法。

然而,我們現有的一些音訊播放器類別,例如 VlcPlayer 和 Mp4Player,它們的介面是不同的,例如 playVlc(檔名) 和 playMp4(檔名)。

我們需要一個 Adapter 來讓這些不同的播放器能夠被 MediaPlayer 介面呼叫。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-2.(2) 題3 分

Briefly explain what the following two SQL statements do.
(a) SELECT DISTINCT(Client_ID) FROM Order;
(b) UPDATE Client SET Lastname = 'Hughs' WHERE Client_ID = '19362010';
COMMIT;
(c) INSERT INTO Small_Client
SELECT * FROM Client WHERE credit_limit <= 2000;

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是 SQL 查詢語言的基本語法和操作。

(a) SELECT DISTINCT(Client_ID) FROM Order;

  • 核心功能:從 Order 表中選取 Client_ID 欄位。
  • DISTINCT 關鍵字:用於去除結果集中的重複記錄。
  • FROM Order:指定資料來源是名為 Order 的表。

解釋:這條 SQL 語句的目的是從 Order 表中找出所有不同的客戶 ID。也就是說,即使某個客戶 ID 在 Order 表中出現了多次(例如,一個客戶下了多筆訂單),在查詢結果中,該客戶 ID 也只會出現一次。

【答案】 從 Order 表中選取所有不重複的客戶 ID。

(b) UPDATE Client SET Lastname = 'Hughs' WHERE Client_ID = '19362010'; COMMIT;

  • UPDATE Client:指定要更新的表是 Client。
  • SET Lastname = 'Hughs':指定要修改的欄位是 Lastname,並將其值設定為 'Hughs'。
  • WHERE Client_ID = '19362010':指定更新的條件,只有當 Client_ID 為 '19362010' 的記錄才會被更新。
  • COMMIT;:這是一個交易控制語句,表示將這次 UPDATE 操作永久性地儲存到資料庫中。之前的操作(如果有的話)也會被確認提交。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 A-2.(3) 題6 分

In an IPv4 network, please specify the binary values of the network prefix, subnet ID, and host ID of the IP
address of 140.210.53.213.

登入後即可作答並保存紀錄。

這一題的完整詳解

本題考驗的是 IPv4 位址的結構,特別是如何根據子網路遮罩(Subnet Mask)來區分網路位址(Network Prefix)、子網路位址(Subnet ID)和主機位址(Host ID)。

然而,題目中只給了 IP 位址 140.210.53.213,但沒有提供子網路遮罩(Subnet Mask)**。子網路遮罩是區分網路位址和主機位址的關鍵。

在沒有子網路遮罩的情況下,我們只能根據 IP 位址的第一個八位元組(octet)來推測其可能的類別(Classful Addressing),或者假設它使用了預設的類別遮罩。

IPv4 位址結構:
一個 IPv4 位址是 32 位元,通常表示為四個八位元組(0-255),例如 A.B.C.D。

  • 網路位址 (Network Address / Network Prefix):標識網路本身。
  • 主機位址 (Host Address / Host ID):標識網路中的特定主機。
  • 子網路位址 (Subnet ID):在子網路劃分(Subnetting)後,用於標識特定子網路。

根據 IP 位址 140.210.53.213 的第一個八位元組 140:

  1. 判斷 IP 位址的類別:

    • 類別 A: 1-126 (二進位制 0xxxxxxx),預設遮罩: 255.0.0.0 (8 bits network, 24 bits host)
    • 類別 B: 128-191 (二進位制 10xxxxxx),預設遮罩: 255.255.0.0 (16 bits network, 16 bits host)
    • 類別 C: 192-223 (二進位制 110xxxxx),預設遮罩: 255.255.255.0 (24 bits network, 8 bits host)
    • 類別 D: 224-239 (組播位址)
    • 類別 E: 240-255 (保留位址)

    IP 位址 140.210.53.213 的第一個八位元組是 140。

    • 140 的二進位制是 10001100。
    • 它以 10 開頭,所以它屬於類別 B。
  2. 假設使用預設類別 B 的子網路遮罩:

    • 類別 B 的預設子網路遮罩是 255.255.0.0。
    • 這表示 IP 位址的前 16 位元是網路位址,後 16 位元是主機位址。
  3. 轉換 IP 位址到二進位制:

    • 140 -> 10001100
    • 210 -> 11010010
    • 53 -> 00110101
    • 213 -> 11010101

    完整的 IP 位址二進位制:10001100.11010010.00110101.11010101

  4. 根據預設類別 B 遮罩劃分:

    • Network Prefix (網路位址):前 16 位元。
      10001100.11010010 (這是 IP 位址的前兩個八位元組)
      轉換回十進位制:140.210
    • Host ID (主機位址):後 16 位元。
      00110101.11010101 (這是 IP 位址的後兩個八位元組)
      轉換回十進位制:53.213

    重要說明: 在類別定址(Classful Addressing)時代,網路位址和主機位址是這樣劃分的。但是,現代網路普遍使用無類別域際路由選擇 (CIDR - Classless Inter-Domain Routing),這意味著子網路遮罩可以任意劃分,不一定遵循類別的預設。

    如果題目是要考 CIDR 概念,則缺少子網路遮罩是無法回答的。
    但由於題目問的是「network prefix, subnet ID, and host ID」,這暗示了可能存在子網路劃分,或者至少是傳統的網路位址和主機位址。

    考量到題目沒有提供子網路遮罩,最合理的假設是考題預期我們使用 IP 位址的第一個八位元組來判斷其「類別」,並根據該類別的預設遮罩來劃分。

    在類別 B 的情況下,140.210 是網路位址。53.213 是主機位址。

    問題在於「subnet ID」的出現。 在傳統類別定址中,沒有「subnet ID」這個概念,只有 Network ID 和 Host ID。
    如果題目確實是要考子網路劃分,那麼沒有子網路遮罩就無法回答。

    另一種可能性是:題目想考的是「在沒有劃分子網路的情況下」,如何區分網路位址和主機位址,並且將「網路位址」稱為「network prefix」,將「主機位址」稱為「host ID」。而「subnet ID」在這種情況下,就是網路位址的一部分(如果沒有劃分子網路,則子網路位址就是網路位址本身)。

    最常見的誤解或考法是:

    • Network Prefix (網路位址):是 IP 位址中用於識別網路的部分。
    • Host ID (主機位址):是 IP 位址中用於識別網路內主機的部分。
    • Subnet ID (子網路位址):是 IP 位址中用於識別特定子網路的部分。

    如果題目假設沒有進行子網路劃分,那麼:

    • Network Prefix = Network Address
    • Subnet ID = Network Address (因為沒有劃分,子網路就是整個網路)
    • Host ID = Host Address

    基於類別 B 的預設遮罩 255.255.0.0:

    • IP 位址:140.210.53.213
    • 二進位制:10001100.11010010.00110101.11010101
    • 遮罩二進位制:11111111.11111111.00000000.00000000

    計算 Network Prefix (Network Address):
    IP 位址 AND 遮罩
    10001100.11010010.00110101.11010101
    AND
    11111111.11111111.00000000.00000000
    = 10001100.11010010.00000000.00000000
    = 140.210.0.0

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 B-1. 題10 分

A prime number is a positive integer greater than 1 that cannot be formed by multiplying
two smaller positive integers. Please develop a C++ function that uses recursion to determine
whether an input integer is a prime number or not. Note that this C++ function returns true if
the input positive integer is a prime number, and false, otherwise.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

質數是大於 11 的正整數,且除了 11 與本身之外,沒有其他正因數。

判斷整數 nn 是否為質數,可依序檢查可能的除數 dd:

  • 若 n≤1n \le 1,不是質數。
  • 若存在 dd 使得 n mod d=0n \bmod d = 0,表示 nn 可被兩個較小的正整數相乘得到,因此不是質數。
  • 若所有必要的除數都無法整除 nn,則 nn 是質數。

根據因數成對出現的性質,只需檢查:

2≤d≤n2 \le d \le \sqrt{n}

因為若 n=abn=ab 且 a≤ba\le b,則必有 a≤na\le\sqrt{n}。因此若 nn 有非 11、非本身的因數,必定至少有一個因數不大於 n\sqrt{n}。


解題方法

設計一個遞迴輔助函式 hasDivisor(n, d),表示「從除數 dd 開始檢查,是否能找到 nn 的因數」。

每次遞迴執行以下判斷:

  1. 若 d>nd>\sqrt{n},代表已檢查完所有必要除數,找不到因數,回傳 false。
  2. 若 n mod d=0n\bmod d=0,代表 dd 是 nn 的因數,回傳 true。
  3. 否則將除數加 11,遞迴檢查 d + 1。

為避免計算 n\sqrt{n} 產生浮點數誤差,可使用等價條件:

d2>nd^2>n

程式中改寫為 d > n / d,也能避免 d2d^2 可能發生整數溢位。


C++ 參考程式碼

bool hasDivisor(int n, int d) {
    // d > sqrt(n),表示已檢查完所有必要的除數
    if (d > n / d) {
        return false;
    }

    // 找到可整除 n 的除數
    if (n % d == 0) {
        return true;
    }

    // 遞迴檢查下一個除數
    return hasDivisor(n, d + 1);
}

bool isPrime(int n) {
    // 質數必須大於 1
    if (n <= 1) {
        return false;
    }

    // 從 2 開始找因數;沒有因數才是質數
    return !hasDivisor(n, 2);
}

正確性說明

n≤1n\le 1

00、11 與負數都不符合質數定義,因此直接回傳 false。

找到因數

若某次遞迴滿足:

n % d == 0

則 nn 可表示為:

n=d×ndn=d\times\frac{n}{d}
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

其他考古題